== C == class C() { val a: Int = 1 class object { val x : Int { $x = 1 } fun foo() { val b : Int = 1 doSmth(b) } } } --------------------- 1 : Int NEW: r(1) -> ===================== == doSmth == fun doSmth(i: Int) {} --------------------- : Int NEW: magic[FAKE_INITIALIZER](i: Int) -> ===================== == test1 == fun test1() { val a = object { val x : Int { $x = 1 } } } --------------------- : NEW: magic[IMPLICIT_RECEIVER]($x) -> 1 : Int NEW: r(1) -> $x = 1 !: * { $x = 1 } !: * COPY object { val x : Int { $x = 1 } } : NEW: r(object { val x : Int { $x = 1 } }) -> ===================== == O == object O { val x : Int { $x = 1 } } --------------------- : O NEW: magic[IMPLICIT_RECEIVER]($x) -> 1 : Int NEW: r(1) -> $x = 1 !: * { $x = 1 } !: * COPY ===================== == test2 == fun test2() { val b = 1 val a = object { val x = b } } --------------------- 1 : Int NEW: r(1) -> b : Int NEW: r(b) -> object { val x = b } : NEW: r(object { val x = b }) -> ===================== == test3 == fun test3() { val a = object { val y : Int fun inner_bar() { y = 10 } } } --------------------- object { val y : Int fun inner_bar() { y = 10 } } : NEW: r(object { val y : Int fun inner_bar() { y = 10 } }) -> ===================== == inner_bar == fun inner_bar() { y = 10 } --------------------- : NEW: magic[IMPLICIT_RECEIVER](y) -> 10 : Int NEW: r(10) -> y = 10 !: * { y = 10 } !: * COPY ===================== == test4 == fun test4() { val a = object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } } } --------------------- : NEW: magic[IMPLICIT_RECEIVER]($x) -> 1 : Int NEW: r(1) -> $x = 1 !: * { $x = 1 } !: * COPY object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } } : NEW: r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> ===================== == ggg == fun ggg() { y = 10 } --------------------- : NEW: magic[IMPLICIT_RECEIVER](y) -> 10 : Int NEW: r(10) -> y = 10 !: * { y = 10 } !: * COPY ===================== == test5 == fun test5() { val a = object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } } } --------------------- : NEW: magic[IMPLICIT_RECEIVER]($x) -> 1 : Int NEW: r(1) -> 2 : Int NEW: r(2) -> $x = 2 !: * { $x = 2 } !: * COPY object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } } : NEW: r(object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } }) -> ===================== == foo == fun foo() { x = 3 } --------------------- : NEW: magic[IMPLICIT_RECEIVER](x) -> 3 : Int NEW: r(3) -> x = 3 !: * { x = 3 } !: * COPY ===================== == bar == fun bar() { x = 4 } --------------------- : NEW: magic[IMPLICIT_RECEIVER](x) -> 4 : Int NEW: r(4) -> x = 4 !: * { x = 4 } !: * COPY =====================