Files
kotlin-fork/compiler/testData/codegen/box/finally/kt3874.kt
T
Mikhael Bogdanov 185b5013fe Properly process nested try and loop blocks
KT-3894: Loops and finally: finally block executed twice when break and return exists in try/finally block
KT-3874: Compilation error on try catch block contains break and continue
KT-3869: Loops and finally: outer finally block not run

 #KT-3869 Fixed
 #KT-3894 Fixed
 #KT-3874 Fixed
2013-08-19 16:06:56 +04:00

35 lines
553 B
Kotlin

fun test1(): String {
var r = ""
for (i in 1..2) {
try {
r += "O"
continue
} finally {
r += "K"
break
}
}
return r
}
fun test2(): String {
var r = ""
for (i in 1..2) {
try {
r += "O"
break
} finally {
r += "K"
continue
}
}
return r
}
fun box(): String {
if (test1() != "OK") return "fail1: ${test1()}"
if (test2() != "OKOK") return "fail2: ${test2()}"
return "OK"
}