== t1 == fun t1() { for (i in 1..2) { doSmth(i) } } --------------------- L0: mark({ for (i in 1..2) { doSmth(i) } }) mark(for (i in 1..2) { doSmth(i) }) mark(1..2) r(1) r(2) call(.., rangeTo) v(i) w(i) L3: jmp?(L2) NEXT:[read (Unit), mark({ doSmth(i) })] L4 [loop entry point]: L5 [body entry point]: mark({ doSmth(i) }) PREV:[jmp?(L2), jmp?(L4 [loop entry point])] mark(doSmth(i)) r(i) call(doSmth, doSmth) jmp?(L4 [loop entry point]) NEXT:[mark({ doSmth(i) }), read (Unit)] L2: read (Unit) PREV:[jmp?(L2), jmp?(L4 [loop entry point])] L1: NEXT:[] error: PREV:[] sink: PREV:[, ] ===================== == doSmth == fun doSmth(i: Int) {} --------------------- L0: v(i: Int) w(i) mark({}) read (Unit) L1: NEXT:[] error: PREV:[] sink: PREV:[, ] =====================