== 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 }) INIT: in: {a=ID} out: {a=ID} v(var a = 2) r(2) -> w(a|) L5 [body exit point]: L6 [condition entry point]: r(a) -> r(0) -> mark(a > 0) call(a > 0, compareTo|, ) -> jt(L2|) USE: in: {a=READ} out: {a=READ} L3 [loop exit point]: read (Unit) 2 mark("after") INIT: in: {} out: {} r("after") -> L1: 1 error: sink: USE: in: {} out: {} =====================