== O == object O { val y = 1 } --------------------- L0: 1 v(val y = 1) r(1) -> w(y|) L1: NEXT:[] error: PREV:[] sink: PREV:[, ] ===================== == E == enum class E(val x: Int) { E1(0) } --------------------- L0: 1 v(val x: Int) magic[FAKE_INITIALIZER](val x: Int) -> w(x|) v(E1(0)) magic[FAKE_INITIALIZER](E1(0)) -> w(E1|) r(0) -> mark((0)) call((0), |) -> L1: NEXT:[] error: PREV:[] sink: PREV:[, ] ===================== == C == class C { companion object { val z = 2 } } --------------------- L0: 1 L1: NEXT:[] error: PREV:[] sink: PREV:[, ] ===================== == foo == fun foo() = E1.x + O.y + C.z --------------------- L0: 1 mark(E1.x) mark(E1) r(E1) -> r(x|) -> mark(O.y) mark(O) r(O) -> r(y|) -> mark(E1.x + O.y) call(E1.x + O.y, plus|, ) -> mark(C.z) mark(C) r(C, Companion) -> r(z|) -> mark(E1.x + O.y + C.z) call(E1.x + O.y + C.z, plus|, ) -> ret(*|) L1 L1: NEXT:[] error: PREV:[] sink: PREV:[, ] =====================