Enable lightweight lambdas (aka invokedynamic) since 2.0

#KT-45375 Fixed
 #KT-58173 Open
This commit is contained in:
Alexander Udalov
2023-04-20 11:07:41 +02:00
committed by Space Team
parent b1b33475fa
commit 3f034e8b67
80 changed files with 4686 additions and 253 deletions
@@ -0,0 +1,27 @@
// FILE: 1.kt
// FILE: 2.kt
SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/B
+ 3 1.kt
test/A
*L
1#1,37:1
15#2,2:38
9#3,2:40
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
27#1:38,2
29#1:40,2
*E
@@ -1,5 +1,6 @@
// TARGET_BACKEND: JVM
// WITH_REFLECT
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package test
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
package test
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
package test
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package test
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package test
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
@@ -1,5 +1,6 @@
// WITH_REFLECT
// TARGET_BACKEND: JVM
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package test
@@ -1,4 +1,5 @@
// NO_CHECK_LAMBDA_INLINING
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package zzz
@@ -1,4 +1,5 @@
// NO_CHECK_LAMBDA_INLINING
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package test
@@ -1,5 +1,5 @@
// NO_CHECK_LAMBDA_INLINING
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package builders
@@ -1,8 +1,8 @@
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
// NO_SMAP_DUMP
package test
inline fun annotatedWith2(crossinline predicate: () -> Boolean)
{ val lambda = { any { predicate() } }; lambda() }
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// SEPARATE_SMAP_DUMPS
// SKIP_INLINE_CHECK_IN: lParams$default
@@ -7,7 +7,7 @@ Kotlin
+ 1 1.kt
test/_1Kt$lParams$1
*L
1#1,40:1
1#1,41:1
*E
SMAP
@@ -20,14 +20,14 @@ test/_1Kt$lParams$1$lambda$1
+ 2 1.kt
test/_1Kt
*L
1#1,40:1
31#2:41
1#1,41:1
32#2:42
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt$lParams$1$lambda$1
*L
34#1:41
35#1:42
*E
SMAP
@@ -40,8 +40,8 @@ test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1$lambda$1
*L
1#1,40:1
34#2:41
1#1,41:1
35#2:42
*E
SMAP
@@ -52,7 +52,7 @@ Kotlin
+ 1 1.kt
test/_1Kt$kValue$lambda$1
*L
1#1,40:1
1#1,41:1
*E
// FILE: 2.kt
@@ -68,15 +68,15 @@ test/_1Kt
+ 3 1.kt
test/_1Kt$lParams$1
*L
1#1,46:1
33#2,5:47
34#3:52
1#1,47:1
34#2,5:48
35#3:53
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
44#1:47,5
44#1:52
45#1:48,5
45#1:53
*E
@@ -7,7 +7,7 @@ Kotlin
+ 1 1.kt
test/_1Kt$lParams$1
*L
1#1,40:1
1#1,41:1
*E
SMAP
@@ -20,14 +20,14 @@ test/_1Kt$lParams$1$lambda$1
+ 2 1.kt
test/_1Kt
*L
1#1,40:1
31#2:41
1#1,41:1
32#2:42
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt$lParams$1$lambda$1
*L
34#1:41
35#1:42
*E
SMAP
@@ -40,8 +40,8 @@ test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1$lambda$1
*L
1#1,40:1
34#2:41
1#1,41:1
35#2:42
*E
SMAP
@@ -52,7 +52,7 @@ Kotlin
+ 1 1.kt
test/_1Kt$kValue$lambda$1
*L
1#1,40:1
1#1,41:1
*E
// FILE: 2.kt
@@ -68,16 +68,16 @@ test/_1Kt
+ 3 1.kt
test/_1Kt$lParams$1
*L
1#1,46:1
33#2,5:47
34#3:52
1#1,47:1
34#2,5:48
35#3:53
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
44#1:47,5
44#1:52
45#1:48,5
45#1:53
*E
SMAP
@@ -90,14 +90,14 @@ test/_1Kt$lParams$1$lambda$1
+ 2 1.kt
test/_1Kt
*L
1#1,40:1
31#2:41
1#1,41:1
32#2:42
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt$lParams$1$lambda$1
*L
34#1:41
35#1:42
*E
SMAP
@@ -110,7 +110,7 @@ test/_1Kt$kValue$lambda$1
+ 2 1.kt
test/_1Kt$lParams$1$lambda$1
*L
1#1,40:1
34#2:41
1#1,41:1
35#2:42
*E
@@ -1,7 +1,7 @@
// SEPARATE_SMAP_DUMPS
// SKIP_INLINE_CHECK_IN: lParams$default
// IGNORE_BACKEND: JS
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package test
@@ -1,7 +1,7 @@
// SEPARATE_SMAP_DUMPS
// SKIP_INLINE_CHECK_IN: lParams$default
// IGNORE_BACKEND: JS
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package test
@@ -1,5 +1,5 @@
// IGNORE_INLINER_K2: IR
// SKIP_INLINE_CHECK_IN: inlineFun$default
// FILE: 1.kt
@@ -1,3 +1,4 @@
// IGNORE_INLINER_K2: IR
// FILE: 1.kt
package test
@@ -9,14 +9,14 @@ test/_1Kt$test$lambda$1
+ 2 1.kt
test/_1Kt
*L
1#1,18:1
6#2,3:19
1#1,19:1
7#2,3:20
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt$test$lambda$1
*L
13#1:19,3
14#1:20,3
*E
// FILE: 2.kt
@@ -30,14 +30,14 @@ _2Kt
+ 2 1.kt
test/_1Kt
*L
1#1,31:1
11#2,6:32
1#1,32:1
12#2,6:33
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
25#1:32,6
26#1:33,6
*E
SMAP
@@ -52,16 +52,16 @@ test/_1Kt
+ 3 2.kt
_2Kt
*L
1#1,18:1
6#2,2:19
8#2:23
26#3,2:21
1#1,19:1
7#2,2:20
9#2:24
27#3,2:22
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt$test$lambda$1
*L
13#1:19,2
13#1:23
14#1:20,2
14#1:24
*E
@@ -0,0 +1,25 @@
// FILE: 1.kt
// FILE: 2.kt
SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
*L
1#1,36:1
6#2,4:37
12#2,3:41
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
26#1:37,4
28#1:41,3
*E
@@ -0,0 +1,25 @@
// FILE: 1.kt
// FILE: 2.kt
SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
*L
1#1,36:1
16#1,3:41
6#2,4:37
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
28#1:41,3
26#1:37,4
*E