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