FILE: arraySetWithPlusAssign.kt public final class A : R|kotlin/Any| { public constructor(): R|A| { super() } public final operator fun get(i: R|kotlin/Int|): R|A| { ^get this@R|/A| } public final operator fun plusAssign(v: R|() -> kotlin/Unit|): R|kotlin/Unit| { } } public final fun test_1(x: R|A|): R|kotlin/Unit| { R|/x|.R|/A.get|(Int(1)).R|/A.plusAssign|(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() R|/x|.R|/A.get|(Int(1)).R|/A.plusAssign|(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() Q|kotlin/Unit| } ) Unit } ) Unit } public final class B : R|kotlin/Any| { public constructor(): R|B| { super() } public final operator fun get(i: R|kotlin/Int|): R|B| { ^get this@R|/B| } public final operator fun plusAssign(a: R|() -> kotlin/Unit|): R|kotlin/Unit| { } public final operator fun plus(x: R|kotlin/String|): R|kotlin/Unit| { } } public final fun test_2(x: R|B|): R|kotlin/Unit| { R|/x|.R|/B.get|(Int(1)).R|/B.plusAssign|(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() R|/x|.R|/B.get|(Int(1)).R|/B.plusAssign|(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() Q|kotlin/Unit| } ) Unit } ) Unit } public final class C : R|kotlin/Any| { public constructor(): R|C| { super() } public final operator fun get(i: R|kotlin/Int|): R|C| { ^get this@R|/C| } public final operator fun set(i: R|kotlin/Int|, v: R|kotlin/String|): R|kotlin/Unit| { } public final operator fun plusAssign(a: R|() -> kotlin/Unit|): R|kotlin/Unit| { } public final operator fun plus(v: R|() -> kotlin/Unit|): R|kotlin/Unit| { } } public final fun test_3(x: R|C|): R|kotlin/Unit| { R|/x|.R|/C.get|(Int(1)).R|/C.plusAssign|(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() R|/x|.R|/C.get|(Int(1)).R|/C.plusAssign|(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() Q|kotlin/Unit| } ) Unit } ) Unit } public final class D : R|kotlin/Any| { public constructor(): R|D| { super() } public final operator fun set(i: R|kotlin/Int|, x: R|D|): R|kotlin/Unit| { } public final operator fun get(i: R|kotlin/Int|): R|D| { ^get this@R|/D| } public final operator fun plusAssign(x: R|() -> kotlin/Unit|): R|kotlin/Unit| { } public final operator fun plus(v: R|() -> kotlin/Unit|): R|D| { ^plus this@R|/D| } } public final fun test_4(x: R|D|): R|kotlin/Unit| { R|/x|.R|/D.get|(Int(1)).#(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() R|/x|.R|/D.get|(Int(1)).#(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() Q|kotlin/Unit| } ) Unit } ) Unit } public final class E : R|kotlin/Any| { public constructor(): R|E| { super() } } public final fun test_5(x: R|E|): R|kotlin/Unit| { R|/x|.#(Int(1)).#(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() R|/x|.#(Int(1)).#(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() Q|kotlin/Unit| } ) Unit } ) Unit } public final class F : R|kotlin/Any| { public constructor(): R|F| { super() } public final operator fun set(i: R|kotlin/Int|, x: R|F|): R|kotlin/Unit| { } public final operator fun get(i: R|kotlin/Int|): R|F| { ^get this@R|/F| } public final operator fun plusAssign(x: R|() -> kotlin/String|): R|kotlin/Unit| { } public final operator fun plus(v: R|() -> kotlin/Int|): R|F| { ^plus this@R|/F| } } public final fun test_6(x: R|F|): R|kotlin/Unit| { R|/x|.R|/F.get|(Int(1)).#(fun (): R|kotlin/String| { R|/someCallInsideLambda|() ^ String(please choose String) } ) Unit } public final class G : R|kotlin/Any| { public constructor(): R|G| { super() } public final operator fun get(i: R|kotlin/Int|, j: R|kotlin/Int|, k: R|kotlin/Int|): R|G| { ^get this@R|/G| } public final operator fun set(i: R|kotlin/Int|, j: R|kotlin/Int|, k: R|kotlin/Int|, x: R|G|): R|kotlin/Unit| { } public final operator fun plus(v: R|() -> kotlin/Unit|): R|G| { ^plus this@R|/G| } } public final fun test_7(x: R|G|): R|kotlin/Unit| { { lval : R|G| = R|/x| lval : R|kotlin/Int| = Int(1) lval : R|kotlin/Int| = Int(2) lval : R|kotlin/Int| = Int(3) R|/|.R|/G.set|(R|/|, R|/|, R|/|, R|/|.R|/G.get|(R|/|, R|/|, R|/|).R|/G.plus|(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() { lval : R|G| = R|/x| lval : R|kotlin/Int| = Int(1) lval : R|kotlin/Int| = Int(2) lval : R|kotlin/Int| = Int(3) R|/|.R|/G.set|(R|/|, R|/|, R|/|, R|/|.R|/G.get|(R|/|, R|/|, R|/|).R|/G.plus|(fun (): R|kotlin/Unit| { R|/someCallInsideLambda|() Q|kotlin/Unit| } )) } Unit } )) } Unit } public final fun someCallInsideLambda(): R|kotlin/Unit| { }