JVM IR: Avoid direct lambda invokes in inline tests

This commit is contained in:
Steven Schäfer
2022-06-13 15:13:04 +02:00
committed by Alexander Udalov
parent f0760e0550
commit 2acfb3a41f
117 changed files with 211 additions and 210 deletions
@@ -28,10 +28,10 @@ package test
//A lot of blank lines [Don't delete]
//A lot of blank lines [Don't delete]
inline fun kValue(crossinline s: () -> String) = { s() + "K" }()
inline fun kValue(crossinline s: () -> String): String { val lambda = { s() + "K" }; return lambda() }
inline fun lParams(initParams: () -> String = {
{ "" + kValue { "O" } }()
val lambda = { "" + kValue { "O" } }; lambda()
}): String {
val z = "body"
return initParams()
@@ -16,7 +16,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
+ 2 1.kt
test/_1Kt
*L
@@ -25,7 +25,7 @@ test/_1Kt
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
*L
34#1:41
*E
@@ -36,9 +36,9 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
*L
1#1,40:1
34#2:41
@@ -50,7 +50,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
*L
1#1,40:1
*E
@@ -16,7 +16,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
+ 2 1.kt
test/_1Kt
*L
@@ -25,7 +25,7 @@ test/_1Kt
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
*L
34#1:41
*E
@@ -36,9 +36,9 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
*L
1#1,40:1
34#2:41
@@ -50,7 +50,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
*L
1#1,40:1
*E
@@ -86,7 +86,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
+ 2 1.kt
test/_1Kt
*L
@@ -95,7 +95,7 @@ test/_1Kt
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
*L
34#1:41
*E
@@ -106,9 +106,9 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1$1
test/_1Kt$lParams$1$lambda$1
*L
1#1,40:1
34#2:41
@@ -29,7 +29,7 @@ package test
//A lot of blank lines [Don't delete]
//A lot of blank lines [Don't delete]
inline fun kValue(crossinline s: () -> String) = { s() + "K" }()
inline fun kValue(crossinline s: () -> String): String { val lambda = { s() + "K" }; return lambda() }
inline fun lParams(initParams: () -> String = {
"" + kValue { "O" }
@@ -25,7 +25,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1
*L
@@ -39,7 +39,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
*L
1#1,41:1
*E
@@ -25,7 +25,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1
*L
@@ -39,7 +39,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
*L
1#1,41:1
*E
@@ -77,7 +77,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1
*L
@@ -29,7 +29,7 @@ package test
//A lot of blank lines [Don't delete]
//A lot of blank lines [Don't delete]
inline fun kValue(crossinline s: () -> String) = { s() + "K" }()
inline fun kValue(crossinline s: () -> String): String { val lambda = { s() + "K" }; return lambda() }
inline fun lParams(initParams: () -> String = {
"" + kValue { "O" }
@@ -25,7 +25,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1
*L
@@ -39,7 +39,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
*L
1#1,41:1
*E
@@ -25,7 +25,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1
*L
@@ -39,7 +39,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
*L
1#1,41:1
*E
@@ -77,7 +77,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$kValue$1
test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1
*L
@@ -5,9 +5,9 @@
package test
inline fun inlineFun(capturedParam: String, crossinline lambda: () -> String = { capturedParam }): String {
return {
val lambda2 = {
lambda()
}()
}; return lambda2()
}
// FILE: 2.kt
@@ -5,7 +5,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$inlineFun$2
test/_1Kt$inlineFun$lambda2$1
*L
1#1,13:1
*E
@@ -33,13 +33,13 @@ _2Kt
test/_1Kt
*L
1#1,20:1
7#2,2:21
7#2,4:21
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
18#1:21,2
18#1:21,4
*E
SMAP
@@ -48,7 +48,7 @@ Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$inlineFun$2
test/_1Kt$inlineFun$lambda2$1
+ 2 1.kt
test/_1Kt$inlineFun$1
*L