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 tmp0_array: Any = a val tmp1_index0: Function0 = local fun () { return Unit } tmp0_array.set(index = tmp1_index0, value = tmp0_array.get(index = tmp1_index0).plus(other = 42)) } } fun test3(a: Any) { { // BLOCK val tmp0_array: Any = a val tmp1_index0: Function0 = local fun () { return Unit } val tmp2: Int = tmp0_array.get(index = tmp1_index0) tmp0_array.set(index = tmp1_index0, value = tmp2.inc()) tmp2 } /*~> Unit */ }