== foo == fun foo() { outer@while (true) { try { while (true) { continue@outer } } finally { break } } println("OK") } --------------------- : * NEW: magic[VALUE_CONSUMER](true|) -> : * NEW: magic[VALUE_CONSUMER](true|) -> true : Boolean NEW: r(true) -> true : Boolean NEW: r(true) -> continue@outer !: * { continue@outer } !: * COPY while (true) { continue@outer } !: * { while (true) { continue@outer } } !: * COPY break !: * { break } !: * COPY try { while (true) { continue@outer } } finally { break } : * NEW: merge(try { while (true) { continue@outer } } finally { break }|!) -> { try { while (true) { continue@outer } } finally { break } } : * COPY while (true) { try { while (true) { continue@outer } } finally { break } } !: * outer@while (true) { try { while (true) { continue@outer } } finally { break } } !: * COPY println !: * "OK" : * NEW: r("OK") -> println("OK") : * NEW: magic[UNRESOLVED_CALL](println("OK")|, !) -> { outer@while (true) { try { while (true) { continue@outer } } finally { break } } println("OK") } : * COPY ===================== == bar == fun bar(): String { outer@while (true) { try { while (true) { continue@outer } } finally { return "OK" } } } --------------------- : * NEW: magic[VALUE_CONSUMER](true|) -> : * NEW: magic[VALUE_CONSUMER](true|) -> true : Boolean NEW: r(true) -> true : Boolean NEW: r(true) -> continue@outer !: * { continue@outer } !: * COPY while (true) { continue@outer } !: * { while (true) { continue@outer } } !: * COPY "OK" : String NEW: r("OK") -> return "OK" !: * { return "OK" } !: * COPY try { while (true) { continue@outer } } finally { return "OK" } : * NEW: merge(try { while (true) { continue@outer } } finally { return "OK" }|!) -> { try { while (true) { continue@outer } } finally { return "OK" } } : * COPY while (true) { try { while (true) { continue@outer } } finally { return "OK" } } !: * outer@while (true) { try { while (true) { continue@outer } } finally { return "OK" } } !: * COPY { outer@while (true) { try { while (true) { continue@outer } } finally { return "OK" } } } !: * COPY ===================== == baz == fun baz(): String { outer@while (true) { try { inner@while (true) { continue@inner } } finally { return "OK" } } } --------------------- : * NEW: magic[VALUE_CONSUMER](true|) -> : * NEW: magic[VALUE_CONSUMER](true|) -> true : Boolean NEW: r(true) -> true : Boolean NEW: r(true) -> continue@inner !: * { continue@inner } !: * COPY while (true) { continue@inner } !: * inner@while (true) { continue@inner } !: * COPY { inner@while (true) { continue@inner } } !: * COPY "OK" : String NEW: r("OK") -> return "OK" !: * { return "OK" } !: * COPY try { inner@while (true) { continue@inner } } finally { return "OK" } : * NEW: merge(try { inner@while (true) { continue@inner } } finally { return "OK" }|!) -> { try { inner@while (true) { continue@inner } } finally { return "OK" } } : * COPY while (true) { try { inner@while (true) { continue@inner } } finally { return "OK" } } !: * outer@while (true) { try { inner@while (true) { continue@inner } } finally { return "OK" } } !: * COPY { outer@while (true) { try { inner@while (true) { continue@inner } } finally { return "OK" } } } !: * COPY =====================