== test == fun test() { while (true) { class LocalClass(val x: Int) { init { break } constructor() : this(42) { break } fun foo() { break } } } } --------------------- L0: 1 2 mark({ while (true) { class LocalClass(val x: Int) { init { break } constructor() : this(42) { break } fun foo() { break } } } }) L2 [loop entry point]: L6 [condition entry point]: r(true) -> PREV:[mark({ while (true) { class LocalClass(val x: Int) { init { break } constructor() : this(42) { break } fun foo() { break } } } }), jmp(L2)] mark(while (true) { class LocalClass(val x: Int) { init { break } constructor() : this(42) { break } fun foo() { break } } }) magic[VALUE_CONSUMER](true|) -> L4 [body entry point]: 3 mark({ class LocalClass(val x: Int) { init { break } constructor() : this(42) { break } fun foo() { break } } }) jmp?(L7) NEXT:[jmp(L2), v(val x: Int)] v(val x: Int) magic[FAKE_INITIALIZER](val x: Int) -> w(x|) 4 mark({ break }) 3 jmp?(L8) NEXT:[jmp(L2), d(fun foo() { break })] d(fun foo() { break }) NEXT:[] L7 [after local class]: L8 [after local declaration]: 2 jmp(L2) NEXT:[r(true) -> ] PREV:[jmp?(L7), jmp?(L8)] L3 [loop exit point]: L5 [body exit point]: - read (Unit) PREV:[] L1: 1 NEXT:[] PREV:[] error: PREV:[] sink: PREV:[, , d(fun foo() { break })] ===================== == foo == fun foo() { break } --------------------- L9: 4 5 mark({ break }) L10: 4 NEXT:[] error: PREV:[] sink: PREV:[, ] =====================