== foo == fun foo() { "before" val b = 1 val f = { x: Int -> val a = x + b } "after" } --------------------- L0: 1 INIT: in: {} out: {} 2 mark({ "before" val b = 1 val f = { x: Int -> val a = x + b } "after" }) mark("before") r("before") -> v(val b = 1) INIT: in: {} out: {} r(1) -> INIT: in: {} out: {} w(b|) INIT: in: {} out: {} v(val f = { x: Int -> val a = x + b }) INIT: in: {} out: {} mark({ x: Int -> val a = x + b }) INIT: in: {} out: {} jmp?(L2) d({ x: Int -> val a = x + b }) INIT: in: {} out: {} L2 [after local declaration]: r({ x: Int -> val a = x + b }) -> w(f|) INIT: in: {} out: {} mark("after") INIT: in: {} out: {} r("after") -> L1: 1 error: sink: USE: in: {} out: {} ===================== == anonymous_0 == { x: Int -> val a = x + b } --------------------- L3: 3 INIT: in: {} out: {} v(x: Int) INIT: in: {} out: {} magic[FAKE_INITIALIZER](x: Int) -> INIT: in: {} out: {} w(x|) INIT: in: {} out: {} 4 mark(val a = x + b) INIT: in: {} out: {} v(val a = x + b) INIT: in: {} out: {} r(x) -> INIT: in: {} out: {} r(b) -> mark(x + b) call(x + b, plus|, ) -> w(a|) INIT: in: {} out: {} L4: 3 INIT: in: {} out: {} error: sink: USE: in: {} out: {} =====================