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