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