operator fun Any.plusAssign(lambda: Function0) { } operator fun Any.get(index: Function0): Int { return 42 } operator fun Any.set(index: Function0, value: Int) { } fun test1(a: Any) { a.plusAssign(lambda = local fun () { return Unit } ) } fun test2(a: Any) { { // BLOCK val <>: Any = a val <>: Function0 = local fun () { return Unit } <>.set(index = <>, value = <>.get(index = <>).plus(other = 42)) } } fun test3(a: Any) { val : Any = a val : Function0 = local fun () { return Unit } val : Int = .get(index = ) .set(index = , value = .inc()) /*~> Unit */ }