185b5013fe
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
35 lines
553 B
Kotlin
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"
|
|
} |