== O == object O { val y = 1 } --------------------- 1 : Int NEW: r(1) -> ===================== == E == enum class E(val x: Int) { E1(0) } --------------------- : Int NEW: magic[FAKE_INITIALIZER](val x: Int) -> : {<: E} NEW: magic[FAKE_INITIALIZER](E1(0)) -> 0 : Int NEW: r(0) -> (0) : * NEW: call((0), |) -> ===================== == C == class C { companion object { val z = 2 } } --------------------- ===================== == foo == fun foo() = E1.x + O.y + C.z --------------------- E1 : {<: E} NEW: r(E1) -> x : Int NEW: r(x|) -> E1.x : Int COPY O : O NEW: r(O) -> y : Int NEW: r(y|) -> O.y : Int COPY E1.x + O.y : Int NEW: call(E1.x + O.y, plus|, ) -> C : C.Companion NEW: r(C, Companion) -> z : Int NEW: r(z|) -> C.z : Int COPY E1.x + O.y + C.z : Int NEW: call(E1.x + O.y + C.z, plus|, ) -> =====================