JVM: preserve call site markers when inlining lambdas

and default functions into their own stubs.

Fixes #KT-35006
This commit is contained in:
pyos
2020-03-25 16:41:47 +01:00
committed by max-kammerer
parent 9d21800d8f
commit e98bdc6f8e
18 changed files with 250 additions and 81 deletions
@@ -0,0 +1,63 @@
// FILE: 1.kt
// IGNORE_BACKEND_MULTI_MODULE: JVM_IR
package test
inline fun inlineFun2(param: String): String {
return param
}
inline fun inlineFun(param: String = "OK"): String {
// The Kotlin stratum should only contain 1 out-of-range line, and
// KotlinDebug should point it to this line:
return inlineFun2(param)
}
// FILE: 2.kt
import test.*
fun box(): String {
return inlineFun()
}
// FILE: 1.smap
SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt
*L
1#1,14:1
5#1:15
*E
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt
*L
11#1:15
*E
// FILE: 2.smap
SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
*L
1#1,8:1
8#2,4:9
5#2:13
*E
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
5#1,4:9
5#1:13
*E
@@ -102,7 +102,7 @@ test/_1Kt$lParams$1
+ 1 2.kt
_2Kt
*L
5#1,5:11
5#1:17
5#1:16
6#1,5:11
6#1:17
6#1:16
*E
@@ -140,9 +140,9 @@ test/_1Kt$lParams$1
+ 1 2.kt
_2Kt
*L
5#1:11
5#1,2:12
5#1:15
5#1:14
5#1:16
6#1:11
6#1,2:12
6#1:15
6#1:14
6#1:16
*E
@@ -128,9 +128,9 @@ test/_1Kt$lParams$1
+ 1 2.kt
_2Kt
*L
5#1,5:11
5#1:17
5#1:16
6#1,5:11
6#1:17
6#1:16
*E
// FILE: 2.smap-separate-compilation
@@ -156,9 +156,9 @@ test/_1Kt$lParams$1
+ 1 2.kt
_2Kt
*L
5#1,5:11
5#1:17
5#1:16
6#1,5:11
6#1:17
6#1:16
*E
SMAP
@@ -90,6 +90,6 @@ test/_1Kt$lParams$1
+ 1 2.kt
_2Kt
*L
5#1,5:11
5#1:16
6#1,5:11
6#1:16
*E
+44
View File
@@ -0,0 +1,44 @@
// FILE: 1.kt
package test
inline fun f() {}
inline fun g(x: () -> String) = x()
// FILE: 2.kt
import test.*
fun box(): String { // KotlinDebug:
return g { // 2.kt:N -> 2.kt:5
f() // 2.kt:N+1 -> 2.kt:6, NOT 2.kt:5
f() // 2.kt:N+2 -> 2.kt:7, NOT 2.kt:N+1 or 2.kt:5
"OK"
}
}
// FILE: 1.smap
// FILE: 2.smap
SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
*L
1#1,12:1
5#2:13
4#2:14
4#2:15
*E
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
5#1:13
6#1:14
7#1:15
*E
+30 -24
View File
@@ -80,36 +80,42 @@ _2Kt
builders/_1Kt
*L
1#1,25:1
7#1,3:36
10#1:41
11#1,2:45
13#1:48
15#1:50
7#1,3:33
10#1:38
11#1,2:42
13#1:45
15#1:47
19#2:26
7#2,9:27
19#2:39
7#2:40
15#2:42
11#2,2:43
13#2:47
8#2:49
7#2:27
15#2:28
11#2,3:29
8#2:32
19#2:36
7#2:37
15#2:39
11#2,2:40
13#2:44
8#2:46
*E
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
20#1,3:36
20#1:41
20#1,2:45
20#1:48
20#1:50
9#1:26
9#1,9:27
20#1:39
20#1:40
20#1:42
20#1,2:43
20#1,3:33
20#1:38
20#1,2:42
20#1:45
20#1:47
20#1:49
9#1:26
9#1:27
10#1:28
10#1,3:29
9#1:32
20#1:36
20#1:37
20#1:39
20#1,2:40
20#1:44
20#1:46
*E