[JVM_IR]: Improve stepping for when.
Additionally, use the line number of the class for default interface dispatch methods.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
// FILE: test.kt
|
||||
|
||||
fun foo(x: Int) {
|
||||
when (val y =
|
||||
when {
|
||||
x == 0 -> 1
|
||||
x == 1 -> 2
|
||||
else -> 0
|
||||
}) {
|
||||
0 -> 3
|
||||
1 -> 4
|
||||
}
|
||||
}
|
||||
|
||||
fun box() {
|
||||
foo(0)
|
||||
foo(1)
|
||||
foo(2)
|
||||
}
|
||||
|
||||
// The JVM_IR backend optimizes the inner when to a switch and therefore goes directly to the
|
||||
// right case without stepping through evaluation of each condition.
|
||||
|
||||
// LINENUMBERS
|
||||
// test.kt:16 box
|
||||
// test.kt:5 foo
|
||||
// test.kt:6 foo
|
||||
// test.kt:4 foo
|
||||
// test.kt:11 foo
|
||||
// test.kt:13 foo
|
||||
// test.kt:17 box
|
||||
// test.kt:5 foo
|
||||
// LINENUMBERS JVM
|
||||
// test.kt:6 foo
|
||||
// LINENUMBERS
|
||||
// test.kt:7 foo
|
||||
// test.kt:4 foo
|
||||
// test.kt:13 foo
|
||||
// test.kt:18 box
|
||||
// test.kt:5 foo
|
||||
// LINENUMBERS JVM
|
||||
// test.kt:6 foo
|
||||
// test.kt:7 foo
|
||||
// LINENUMBERS
|
||||
// test.kt:8 foo
|
||||
// test.kt:4 foo
|
||||
// test.kt:10 foo
|
||||
// test.kt:13 foo
|
||||
// test.kt:19 box
|
||||
Reference in New Issue
Block a user