Files
kotlin/compiler/testData/debug/localVariables/tryFinally.kt
Mads Ager d33b70af1a [JVM IR] Ensure an instruction for the line number for a break.
This ensures that the debugger always has a bytecode offset for
the line number of a break/continue so that you step there and
so that you can set breakpoints there.

The `nop` instruction is optimized out if it has no line number
information.

^KT-46450 Fixed
2021-08-19 15:40:44 +02:00

30 lines
1.2 KiB
Kotlin
Vendored

// FILE: test.kt
fun box() {
var result = ""
for (x in listOf("A", "B")) {
try {
val y = "y"
result += y
break
}
finally {
val z = "z"
result += z
}
}
}
// The old backend has the local y covering the finally block as well.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:3 box:
// test.kt:4 box: result:java.lang.String="":java.lang.String
// test.kt:5 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:6 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:7 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:8 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:11 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:12 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:15 box: result:java.lang.String="yz":java.lang.String