== f == fun f(a : Boolean) : Unit { 1 a 2.toLong() foo(a, 3) genfun() flfun {1} 3.equals(4) 3 equals 4 1 + 2 a && true a || false } --------------------- L0: NEXT:[v(a : Boolean)] PREV:[] v(a : Boolean) NEXT:[w(a)] PREV:[] w(a) NEXT:[r(1)] PREV:[v(a : Boolean)] r(1) NEXT:[r(a)] PREV:[w(a)] r(a) NEXT:[r(2)] PREV:[r(1)] r(2) NEXT:[call(toLong, toLong)] PREV:[r(a)] call(toLong, toLong) NEXT:[r(a)] PREV:[r(2)] r(a) NEXT:[r(3)] PREV:[call(toLong, toLong)] r(3) NEXT:[call(foo, foo)] PREV:[r(a)] call(foo, foo) NEXT:[call(genfun, genfun)] PREV:[r(3)] call(genfun, genfun) NEXT:[jmp?(L2)] PREV:[call(foo, foo)] jmp?(L2) NEXT:[r({1}), d({1})] PREV:[call(genfun, genfun)] d({1}) NEXT:[] PREV:[jmp?(L2)] L2: r({1}) NEXT:[call(flfun, flfun)] PREV:[jmp?(L2)] call(flfun, flfun) NEXT:[r(3)] PREV:[r({1})] r(3) NEXT:[r(4)] PREV:[call(flfun, flfun)] r(4) NEXT:[call(equals, equals)] PREV:[r(3)] call(equals, equals) NEXT:[r(3)] PREV:[r(4)] r(3) NEXT:[r(4)] PREV:[call(equals, equals)] r(4) NEXT:[call(equals, equals)] PREV:[r(3)] call(equals, equals) NEXT:[r(1)] PREV:[r(4)] r(1) NEXT:[r(2)] PREV:[call(equals, equals)] r(2) NEXT:[call(+, plus)] PREV:[r(1)] call(+, plus) NEXT:[r(a)] PREV:[r(2)] r(a) NEXT:[jf(L5)] PREV:[call(+, plus)] jf(L5) NEXT:[r(a && true), r(true)] PREV:[r(a)] r(true) NEXT:[r(a && true)] PREV:[jf(L5)] L5: r(a && true) NEXT:[r(a)] PREV:[jf(L5), r(true)] r(a) NEXT:[jt(L6)] PREV:[r(a && true)] jt(L6) NEXT:[r(false), r(a || false)] PREV:[r(a)] r(false) NEXT:[r(a || false)] PREV:[jt(L6)] L6: r(a || false) NEXT:[] PREV:[jt(L6), r(false)] L1: NEXT:[] PREV:[r(a || false)] error: NEXT:[] PREV:[] sink: NEXT:[] PREV:[, , d({1})] L3: NEXT:[r(1)] PREV:[] r(1) NEXT:[] PREV:[] L4: NEXT:[] PREV:[r(1)] error: NEXT:[] PREV:[] sink: NEXT:[] PREV:[, ] ===================== == anonymous_0 == {1} --------------------- L3: NEXT:[r(1)] PREV:[] r(1) NEXT:[] PREV:[] L4: NEXT:[] PREV:[r(1)] error: NEXT:[] PREV:[] sink: NEXT:[] PREV:[, ] ===================== == foo == fun foo(a : Boolean, b : Int) : Unit {} --------------------- L0: NEXT:[v(a : Boolean)] PREV:[] v(a : Boolean) NEXT:[w(a)] PREV:[] w(a) NEXT:[v(b : Int)] PREV:[v(a : Boolean)] v(b : Int) NEXT:[w(b)] PREV:[w(a)] w(b) NEXT:[read (Unit)] PREV:[v(b : Int)] read (Unit) NEXT:[] PREV:[w(b)] L1: NEXT:[] PREV:[read (Unit)] error: NEXT:[] PREV:[] sink: NEXT:[] PREV:[, ] ===================== == genfun == fun genfun() : Unit {} --------------------- L0: NEXT:[read (Unit)] PREV:[] read (Unit) NEXT:[] PREV:[] L1: NEXT:[] PREV:[read (Unit)] error: NEXT:[] PREV:[] sink: NEXT:[] PREV:[, ] ===================== == flfun == fun flfun(f : () -> Any) : Unit {} --------------------- L0: NEXT:[v(f : () -> Any)] PREV:[] v(f : () -> Any) NEXT:[w(f)] PREV:[] w(f) NEXT:[read (Unit)] PREV:[v(f : () -> Any)] read (Unit) NEXT:[] PREV:[w(f)] L1: NEXT:[] PREV:[read (Unit)] error: NEXT:[] PREV:[] sink: NEXT:[] PREV:[, ] =====================