== t1 == fun t1() { try { 1 } finally { 2 } } --------------------- 1 NEW() { 1 } COPY 2 NEW() { 2 } COPY try { 1 } finally { 2 } COPY { try { 1 } finally { 2 } } COPY ===================== == t2 == fun t2() { try { 1 if (2 > 3) { return } } finally { 2 } } --------------------- 1 NEW() 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY 2 NEW() { 2 } COPY ===================== == t3 == fun t3() { try { 1 @l{ () -> if (2 > 3) { return@l } } } finally { 2 } } --------------------- 1 NEW() { () -> if (2 > 3) { return@l } } NEW() @l{ () -> if (2 > 3) { return@l } } COPY { 1 @l{ () -> if (2 > 3) { return@l } } } COPY 2 NEW() { 2 } COPY try { 1 @l{ () -> if (2 > 3) { return@l } } } finally { 2 } COPY { try { 1 @l{ () -> if (2 > 3) { return@l } } } finally { 2 } } COPY ===================== == anonymous_0 == { () -> if (2 > 3) { return@l } } --------------------- 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY ===================== == t4 == fun t4() { @l{ () -> try { 1 if (2 > 3) { return@l } } finally { 2 } } } --------------------- { () -> try { 1 if (2 > 3) { return@l } } finally { 2 } } NEW() @l{ () -> try { 1 if (2 > 3) { return@l } } finally { 2 } } COPY { @l{ () -> try { 1 if (2 > 3) { return@l } } finally { 2 } } } COPY ===================== == anonymous_1 == { () -> try { 1 if (2 > 3) { return@l } } finally { 2 } } --------------------- 1 NEW() 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY 2 NEW() { 2 } COPY ===================== == t5 == fun t5() { @l while(true) { try { 1 if (2 > 3) { break @l } } finally { 2 } } } --------------------- true NEW() 1 NEW() 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY 2 NEW() { 2 } COPY ===================== == t6 == fun t6() { try { @l while(true) { 1 if (2 > 3) { break @l } } 5 } finally { 2 } } --------------------- true NEW() 1 NEW() 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY 5 NEW() { @l while(true) { 1 if (2 > 3) { break @l } } 5 } COPY 2 NEW() { 2 } COPY try { @l while(true) { 1 if (2 > 3) { break @l } } 5 } finally { 2 } COPY { try { @l while(true) { 1 if (2 > 3) { break @l } } 5 } finally { 2 } } COPY ===================== == t7 == fun t7() { try { @l while(true) { 1 if (2 > 3) { break @l } } } finally { 2 } } --------------------- true NEW() 1 NEW() 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY 2 NEW() { 2 } COPY ===================== == t8 == fun t8(a : Int) { @l for (i in 1..a) { try { 1 if (2 > 3) { continue @l } } finally { 2 } } } --------------------- 1 NEW() .. NEW(, ) a NEW() 1..a COPY 1 NEW() 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY 2 NEW() { 2 } COPY ===================== == t9 == fun t9(a : Int) { try { @l for (i in 1..a) { 1 if (2 > 3) { continue @l } } 5 } finally { 2 } } --------------------- 1 NEW() .. NEW(, ) a NEW() 1..a COPY 1 NEW() 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY 5 NEW() { @l for (i in 1..a) { 1 if (2 > 3) { continue @l } } 5 } COPY 2 NEW() { 2 } COPY try { @l for (i in 1..a) { 1 if (2 > 3) { continue @l } } 5 } finally { 2 } COPY { try { @l for (i in 1..a) { 1 if (2 > 3) { continue @l } } 5 } finally { 2 } } COPY ===================== == t10 == fun t10(a : Int) { try { @l for (i in 1..a) { 1 if (2 > 3) { continue @l } } } finally { 2 } } --------------------- 1 NEW() .. NEW(, ) a NEW() 1..a COPY 1 NEW() 2 NEW() > NEW(, ) 3 NEW() 2 > 3 COPY 2 NEW() { 2 } COPY ===================== == t11 == fun t11() { try { return 1 } finally { return 2 } } --------------------- 1 NEW() 2 NEW() ===================== == t12 == fun t12() : Int { try { return 1 } finally { doSmth(3) } } --------------------- 1 NEW() doSmth NEW() 3 NEW() doSmth(3) COPY { doSmth(3) } COPY ===================== == t13 == fun t13() : Int { try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) } } --------------------- 1 NEW() doSmth NEW() 2 NEW() doSmth(2) COPY { doSmth(2) } COPY doSmth NEW() 3 NEW() doSmth(3) COPY { doSmth(3) } COPY try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) } COPY { try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) } } COPY ===================== == t14 == fun t14() : Int { try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } } --------------------- 1 NEW() doSmth NEW() 2 NEW() doSmth(2) COPY { doSmth(2) } COPY try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } COPY { try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } } COPY ===================== == t15 == fun t15() : Int { try { return 1 } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } } --------------------- 1 NEW() 2 NEW() doSmth NEW() 3 NEW() doSmth(3) COPY { doSmth(3) } COPY ===================== == t16 == fun t16() : Int { try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } } --------------------- doSmth NEW() 1 NEW() doSmth(1) COPY { doSmth(1) } COPY 2 NEW() doSmth NEW() 3 NEW() doSmth(3) COPY { doSmth(3) } COPY try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } COPY { try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } } COPY ===================== == doSmth == fun doSmth(i: Int) { } --------------------- =====================