[JVM_IR] Rebase inline function and defaults args stepping test.
This commit is contained in:
committed by
Alexander Udalov
parent
7b315a8b52
commit
617279310e
+21
-1
@@ -1,5 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// FILE: test.kt
|
// FILE: test.kt
|
||||||
|
|
||||||
inline fun alsoInline() = "OK"
|
inline fun alsoInline() = "OK"
|
||||||
|
|
||||||
inline fun ifoo(s: String = alsoInline()): String {
|
inline fun ifoo(s: String = alsoInline()): String {
|
||||||
@@ -10,9 +10,29 @@ fun box(): String {
|
|||||||
return ifoo()
|
return ifoo()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// `alsoInline` is inlined in the `ifoo$default` stub. When exiting the inline
|
||||||
|
// codegen, the line number is reset. Therefore any code generated with line
|
||||||
|
// number information will emit a new line number so that stepping continues
|
||||||
|
// in the caller.
|
||||||
|
//
|
||||||
|
// For JVM none of the code after `alsoInline` leads to line number generation.
|
||||||
|
// This seems problematic as the line number for the inline function is then
|
||||||
|
// in effect for instructions outside the scope of the `$i$f$alsoInline`
|
||||||
|
// variable life time.
|
||||||
|
//
|
||||||
|
// For JVM_IR a line number is generated for the code following `alsoInline`.
|
||||||
|
// Therefore, we stop on line 5 before entering `alsoInline`
|
||||||
|
// and we step back to line 5 after `alsoInline` and before the body of
|
||||||
|
// `ifoo`. This seems reasonable and also help ensure that line numbers
|
||||||
|
// for the inline function are only used for instructions covered by
|
||||||
|
// the `$i$f$alsoInline` variable life time.
|
||||||
|
|
||||||
// LINENUMBERS
|
// LINENUMBERS
|
||||||
// test.kt:10 box
|
// test.kt:10 box
|
||||||
// test.kt:5 box
|
// test.kt:5 box
|
||||||
// test.kt:3 box
|
// test.kt:3 box
|
||||||
|
// LINENUMBERS JVM_IR
|
||||||
|
// test.kt:5 box
|
||||||
|
// LINENUMBERS
|
||||||
// test.kt:6 box
|
// test.kt:6 box
|
||||||
// test.kt:10 box
|
// test.kt:10 box
|
||||||
Reference in New Issue
Block a user