== foo == fun foo() { "before" do { var a = 2 } while (a > 0) "after" } --------------------- L0: 1 INIT: in: {} out: {} 2 mark({ "before" do { var a = 2 } while (a > 0) "after" }) mark("before") r("before") -> USE: in: {} out: {} 3 mark(do { var a = 2 } while (a > 0)) L2 [loop entry point]: L4 [body entry point]: mark({ var a = 2 }) v(var a = 2) INIT: in: {} out: {a=D} r(2) -> INIT: in: {a=D} out: {a=D} w(a|) INIT: in: {a=D} out: {a=ID} USE: in: {a=READ} out: {a=READ} L5 [body exit point]: L6 [condition entry point]: r(a) -> INIT: in: {a=ID} out: {a=ID} USE: in: {} out: {a=READ} r(0) -> mark(a > 0) call(a > 0, compareTo|, ) -> 2 jt(L2|) INIT: in: {} out: {} L3 [loop exit point]: read (Unit) mark("after") r("after") -> L1: 1 error: sink: USE: in: {} out: {} =====================