[PSI2IR] Sync start and end offsets on PSI and FIR for an implicit return inside lambdas

This commit is contained in:
Artem Kobzar
2024-02-27 19:25:24 +00:00
committed by Space Team
parent a582bf22e3
commit 02a78051aa
39 changed files with 20 additions and 2865 deletions
@@ -69,6 +69,7 @@ internal class BodyGenerator(
context.irBuiltIns.nothingType,
ktBody::class.java.simpleName
)
// For implicit returns, use the expression endOffset to generate the expected line number for debugging.
irBlockBody.statements.add(generateReturnExpression(irBody.endOffset, irBody.endOffset, irBody))
return irBlockBody
}
@@ -81,6 +82,7 @@ internal class BodyGenerator(
val irBody = statementGenerator.generateStatement(ktBody)
irBlockBody.statements.add(
if (ktBody.isUsedAsExpression(context.bindingContext) && irBody is IrExpression)
// For implicit returns, use the expression endOffset to generate the expected line number for debugging.
generateReturnExpression(irBody.endOffset, irBody.endOffset, irBody)
else
irBody
@@ -128,7 +130,8 @@ internal class BodyGenerator(
irReturnedValue is IrExpression &&
irReturnedValue !is IrReturn && irReturnedValue !is IrThrow
) {
generateReturnExpression(irReturnedValue.startOffset, irReturnedValue.endOffset, irReturnedValue)
// For implicit returns, use the expression endOffset to generate the expected line number for debugging.
generateReturnExpression(irReturnedValue.endOffset, irReturnedValue.endOffset, irReturnedValue)
} else {
irReturnedValue
}
File diff suppressed because it is too large Load Diff
-2
View File
@@ -1,8 +1,6 @@
// WITH_STDLIB
// IGNORE_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-62464
import kotlin.coroutines.*
interface Flow<out T> {
@@ -1,33 +0,0 @@
MODULE main
CLASS _2Kt$box$$inlined$foo$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$foo$1
+ 2 2.kt
_2Kt
*L
1#1,26:1
33#2:27
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$foo$1
+ 2 2.kt
_2Kt
*L
1#1,26:1
33#2,5:27
*E
} )
@@ -3,7 +3,6 @@
// WITH_STDLIB
// IGNORE_BACKEND: JVM
// IGNORE_BACKEND_MULTI_MODULE: JVM, JVM_MULTI_MODULE_OLD_AGAINST_IR
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
@@ -1,85 +0,0 @@
MODULE main
CLASS TestKt.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
test.kt
Kotlin
*S Kotlin
*F
+ 1 test.kt
TestKt
*L
1#1,44:1
23#1,9:45
*S KotlinDebug
*F
+ 1 test.kt
TestKt
*L
14#1:45,9
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
test.kt
Kotlin
*S Kotlin
*F
+ 1 test.kt
TestKt
*L
1#1,44:1
23#1,18:45
*S KotlinDebug
*F
+ 1 test.kt
TestKt
*L
14#1:45,18
*E
} )
CLASS BoxKt.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
box.kt
Kotlin
*S Kotlin
*F
+ 1 box.kt
BoxKt
+ 2 test.kt
TestKt
*L
1#1,56:1
14#2,18:57
*S KotlinDebug
*F
+ 1 box.kt
BoxKt
*L
51#1:57,18
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
box.kt
Kotlin
*S Kotlin
*F
+ 1 box.kt
BoxKt
+ 2 test.kt
TestKt
*L
1#1,56:1
14#2,27:57
*S KotlinDebug
*F
+ 1 box.kt
BoxKt
*L
51#1:57,27
*E
} )
@@ -1,6 +1,5 @@
// WITH_COROUTINES
// WITH_STDLIB
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: test.kt
@@ -1,65 +0,0 @@
MODULE main
CLASS _1Kt$transformMessage$$inlined$decorate$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
_1Kt$decorate$1
+ 2 1.kt
_1Kt
*L
1#1,19:1
13#2:20
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
_1Kt$decorate$1
+ 2 1.kt
_1Kt
*L
1#1,19:1
13#2,4:20
*E
} )
CLASS _2Kt$append$$inlined$transformMessage$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
_1Kt$decorate$1
+ 2 1.kt
_1Kt
*L
1#1,19:1
13#2:20
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
_1Kt$decorate$1
+ 2 1.kt
_1Kt
*L
1#1,19:1
13#2,4:20
*E
} )
@@ -1,4 +1,3 @@
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
interface Service {
@@ -1,60 +0,0 @@
MODULE main
CLASS _2Kt$box$$inlined$switchMapOnce$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$switchMapOnce$2
+ 2 2.kt
_2Kt
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,17:1
24#2:18
14#3,2:19
1#4:21
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
24#1:19,2
24#1:21
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$switchMapOnce$2
+ 2 2.kt
_2Kt
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,17:1
24#2:18
26#2:22
14#3,2:19
1#4:21
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
24#1:19,2
24#1:21
*E
} )
@@ -1,6 +1,5 @@
// FULL_JDK
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
@@ -1,101 +0,0 @@
MODULE main
CLASS test/_1Kt.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt
+ 2 1.kt
test/_1Kt$test$1
*L
1#1,19:1
11#1,5:20
12#2:25
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt
*L
17#1:20,5
17#1:25
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt
+ 2 1.kt
test/_1Kt$test$1
*L
1#1,19:1
11#1,5:20
12#2,3:25
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt
*L
17#1:20,5
17#1:25,3
*E
} )
CLASS _2Kt.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
+ 3 1.kt
test/_1Kt$test$1
*L
1#1,27:1
11#2,5:28
12#3:33
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
24#1:28,5
24#1:33
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
+ 3 1.kt
test/_1Kt$test$1
*L
1#1,27:1
11#2,5:28
12#3,3:33
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
24#1:28,5
24#1:33,3
*E
} )
@@ -1,5 +1,4 @@
// NO_CHECK_LAMBDA_INLINING
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
package test
@@ -1,101 +0,0 @@
MODULE main
CLASS test/_1Kt.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt
+ 2 1.kt
test/_1Kt$test$1
*L
1#1,19:1
11#1,5:20
12#2:25
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt
*L
17#1:20,5
17#1:25
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt
+ 2 1.kt
test/_1Kt$test$1
*L
1#1,19:1
11#1,5:20
12#2,3:25
*S KotlinDebug
*F
+ 1 1.kt
test/_1Kt
*L
17#1:20,5
17#1:25,3
*E
} )
CLASS _2Kt.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
+ 3 1.kt
test/_1Kt$test$1
*L
1#1,28:1
11#2,5:29
12#3:34
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
24#1:29,5
24#1:34
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
+ 3 1.kt
test/_1Kt$test$1
*L
1#1,28:1
11#2,5:29
12#3,3:34
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
24#1:29,5
24#1:34,3
*E
} )
@@ -1,5 +1,4 @@
// NO_CHECK_LAMBDA_INLINING
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
package test
@@ -1,53 +0,0 @@
MODULE main
CLASS _2Kt.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
+ 3 1.kt
test/_1Kt$test$1
*L
1#1,23:1
11#2,5:24
12#3:29
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
21#1:24,5
21#1:29
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
2.kt
Kotlin
*S Kotlin
*F
+ 1 2.kt
_2Kt
+ 2 1.kt
test/_1Kt
+ 3 1.kt
test/_1Kt$test$1
*L
1#1,23:1
11#2,5:24
12#3,3:29
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
21#1:24,5
21#1:29,3
*E
} )
@@ -1,5 +1,4 @@
// NO_CHECK_LAMBDA_INLINING
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
package test
@@ -1,60 +0,0 @@
MODULE main
CLASS _2Kt$box$$inlined$call$2.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$call$1
+ 2 2.kt
_2Kt
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,13:1
27#2:14
9#3:15
1#4:16
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
27#1:15
27#1:16
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$call$1
+ 2 2.kt
_2Kt
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,13:1
27#2:14
29#2:17
9#3:15
1#4:16
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
27#1:15
27#1:16
*E
} )
@@ -1,6 +1,5 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
@@ -1,45 +0,0 @@
MODULE main
CLASS InlineSiteKt$abc$$inlined$map$1$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
inlined.kt
Kotlin
*S Kotlin
*F
+ 1 inlined.kt
InlinedKt$collect$2
+ 2 inlined.kt
InlinedKt$transform$1
+ 3 inlined.kt
InlinedKt
+ 4 inlineSite.kt
InlineSiteKt
*L
1#1,41:1
25#2:42
30#3:43
46#4,4:44
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
inlined.kt
Kotlin
*S Kotlin
*F
+ 1 inlined.kt
InlinedKt$collect$2
+ 2 inlined.kt
InlinedKt$transform$1
+ 3 inlined.kt
InlinedKt
+ 4 inlineSite.kt
InlineSiteKt
*L
1#1,41:1
25#2:42
30#3:43
46#4,5:44
*E
} )
@@ -1,7 +1,6 @@
// WITH_COROUTINES
// NO_CHECK_LAMBDA_INLINING
// WITH_STDLIB
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: inlined.kt
@@ -1,64 +0,0 @@
MODULE main
CLASS A$test2$$inlined$call$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$call$1
+ 2 2.kt
A
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,14:1
31#2:15
11#3:16
9#3:18
1#4:17
*S KotlinDebug
*F
+ 1 2.kt
A
*L
31#1:16
31#1:18
31#1:17
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$call$1
+ 2 2.kt
A
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,14:1
31#2:15
33#2:19
11#3:16
9#3:18
1#4:17
*S KotlinDebug
*F
+ 1 2.kt
A
*L
31#1:16
31#1:18
31#1:17
*E
} )
@@ -1,5 +1,4 @@
// NO_CHECK_LAMBDA_INLINING
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
@@ -1,64 +0,0 @@
MODULE main
CLASS A$test2$$inlined$call$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$call$1
+ 2 2.kt
A
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,20:1
37#2:21
10#3:22
8#3:24
1#4:23
*S KotlinDebug
*F
+ 1 2.kt
A
*L
37#1:22
37#1:24
37#1:23
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$call$1
+ 2 2.kt
A
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,20:1
37#2:21
39#2:25
10#3:22
8#3:24
1#4:23
*S KotlinDebug
*F
+ 1 2.kt
A
*L
37#1:22
37#1:24
37#1:23
*E
} )
@@ -1,5 +1,4 @@
// NO_CHECK_LAMBDA_INLINING
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
package test
@@ -1,60 +0,0 @@
MODULE main
CLASS _2Kt$box$$inlined$call$2.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$call$1
+ 2 2.kt
_2Kt
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,11:1
21#2:12
7#3:13
1#4:14
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
21#1:13
21#1:14
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
1.kt
Kotlin
*S Kotlin
*F
+ 1 1.kt
test/_1Kt$call$1
+ 2 2.kt
_2Kt
+ 3 1.kt
test/_1Kt
+ 4 fake.kt
kotlin/jvm/internal/FakeKt
*L
1#1,11:1
21#2:12
23#2:15
7#3:13
1#4:14
*S KotlinDebug
*F
+ 1 2.kt
_2Kt
*L
21#1:13
21#1:14
*E
} )
@@ -1,4 +1,3 @@
// JVM_ABI_K1_K2_DIFF: KT-62464
// FILE: 1.kt
@@ -1,65 +0,0 @@
MODULE main
CLASS FinallyMarkersKt$box$$inlined$test$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
finallyMarkers.kt
Kotlin
*S Kotlin
*F
+ 1 finallyMarkers.kt
FinallyMarkersKt$test$1
+ 2 finallyMarkers.kt
FinallyMarkersKt
*L
1#1,28:1
17#2,3:29
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
finallyMarkers.kt
Kotlin
*S Kotlin
*F
+ 1 finallyMarkers.kt
FinallyMarkersKt$test$1
+ 2 finallyMarkers.kt
FinallyMarkersKt
*L
1#1,28:1
17#2,4:29
*E
} )
CLASS FinallyMarkersKt$box$$inlined$test$2.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
finallyMarkers.kt
Kotlin
*S Kotlin
*F
+ 1 finallyMarkers.kt
FinallyMarkersKt$test$3
+ 2 finallyMarkers.kt
FinallyMarkersKt
*L
1#1,28:1
17#2,3:29
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
finallyMarkers.kt
Kotlin
*S Kotlin
*F
+ 1 finallyMarkers.kt
FinallyMarkersKt$test$3
+ 2 finallyMarkers.kt
FinallyMarkersKt
*L
1#1,28:1
17#2,4:29
*E
} )
@@ -1,4 +1,3 @@
// JVM_ABI_K1_K2_DIFF: KT-62464
inline fun test(crossinline l: () -> String) {
{
@@ -1,33 +0,0 @@
MODULE main
CLASS Kt48367Kt$flaf$$inlined$bar$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
kt48367.kt
Kotlin
*S Kotlin
*F
+ 1 kt48367.kt
Kt48367Kt$bar$1
+ 2 kt48367.kt
Kt48367Kt
*L
1#1,23:1
9#2,2:24
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
kt48367.kt
Kotlin
*S Kotlin
*F
+ 1 kt48367.kt
Kt48367Kt$bar$1
+ 2 kt48367.kt
Kt48367Kt
*L
1#1,23:1
9#2,3:24
*E
} )
-1
View File
@@ -1,4 +1,3 @@
// JVM_ABI_K1_K2_DIFF: KT-62464
fun foo(block: () -> String): String = block()
inline fun bar(crossinline f: () -> String) = foo { f() }
+2 -2
View File
@@ -1,4 +1,4 @@
// IGNORE_BACKEND_K2: WASM
// FILE: test.kt
fun <T> eval(f: () -> T) = f()
@@ -31,7 +31,7 @@ fun box() {
// test.kt:1 $box
// test.kt:7 $box
// test.kt:4 $eval (27, 30)
// test.kt:8 $box$lambda.invoke (8, 8, 8, 8)
// test.kt:8 $box$lambda.invoke (8, 8, 8, 8, 12)
// String.kt:141 $kotlin.stringLiteral (17, 28, 17)
// Array.kt:59 $kotlin.Array.get (19, 26, 34, 8)
// ThrowHelpers.kt:29 $kotlin.wasm.internal.rangeCheck (6, 14, 6, 19, 28, 19, 6, 14, 6, 19, 28, 19)
@@ -1,4 +1,4 @@
// IGNORE_BACKEND_K2: WASM
// FILE: test.kt
fun box() {
@@ -19,7 +19,7 @@ fun box() {
// EXPECTATIONS WASM
// test.kt:1 $box
// test.kt:5 $box
// test.kt:6 $box$lambda.invoke (8, 8, 8, 8)
// test.kt:6 $box$lambda.invoke (8, 8, 8, 8, 12)
// String.kt:141 $kotlin.stringLiteral (17, 28, 17)
// Array.kt:59 $kotlin.Array.get (19, 26, 34, 8)
// ThrowHelpers.kt:29 $kotlin.wasm.internal.rangeCheck (6, 14, 6, 19, 28, 19, 6, 14, 6, 19, 28, 19)
+3 -3
View File
@@ -1,4 +1,4 @@
// IGNORE_BACKEND_K2: WASM
// FILE: test.kt
inline fun foo(stringMaker: () -> String): String {
@@ -30,7 +30,7 @@ fun box(): String {
// EXPECTATIONS WASM
// test.kt:1 $box__JsExportAdapter
// test.kt:9 $box (4, 10, 10, 10, 10)
// test.kt:9 $box (4, 10, 10, 10, 10, 15)
// test.kt:5 $box (11, 11, 4, 11, 11, 4)
// String.kt:141 $kotlin.stringLiteral (17, 28, 17, 17, 28, 17, 17, 28, 17)
// Array.kt:59 $kotlin.Array.get (19, 26, 34, 8, 19, 26, 34, 8, 19, 26, 34, 8)
@@ -46,7 +46,7 @@ fun box(): String {
// Array.kt:76 $kotlin.Array.set (5, 5)
// String.kt:149 $kotlin.stringLiteral (11, 4, 11, 4)
// test.kt:10 $box
// test.kt:11 $box (8, 8, 8, 8)
// test.kt:11 $box (8, 8, 8, 8, 12)
// test.kt:14 $box (11, 11, 11, 11, 4)
// String.kt:143 $kotlin.stringLiteral (15, 8)
// ExternalWrapper.kt:200 $kotlin.wasm.internal.kotlinToJsStringAdapter
@@ -1,4 +1,4 @@
// IGNORE_BACKEND_K2: WASM
// FILE: test.kt
inline fun foo(stringMaker: () -> String = { "OK" }): String {
return stringMaker()
@@ -37,7 +37,7 @@ fun box(): String {
// test.kt:1 $box__JsExportAdapter
// test.kt:15 $box
// test.kt:4 $box (11, 11, 4)
// test.kt:3 $box (45, 45, 45, 45)
// test.kt:3 $box (45, 45, 45, 45, 49)
// String.kt:141 $kotlin.stringLiteral (17, 28, 17, 17, 28, 17, 17, 28, 17)
// Array.kt:59 $kotlin.Array.get (19, 26, 34, 8, 19, 26, 34, 8, 19, 26, 34, 8)
// ThrowHelpers.kt:29 $kotlin.wasm.internal.rangeCheck (6, 14, 6, 19, 28, 19, 6, 14, 6, 19, 28, 19, 6, 14, 6, 19, 28, 19, 6, 14, 6, 19, 28, 19)
@@ -53,7 +53,7 @@ fun box(): String {
// String.kt:149 $kotlin.stringLiteral (11, 4)
// test.kt:16 $box
// test.kt:11 $box (11, 11, 4)
// test.kt:8 $box (4, 4, 4, 4)
// test.kt:8 $box (4, 4, 4, 4, 8)
// String.kt:143 $kotlin.stringLiteral (15, 8, 15, 8)
// test.kt:17 $box (11, 11, 11, 11, 4)
// ExternalWrapper.kt:200 $kotlin.wasm.internal.kotlinToJsStringAdapter
@@ -1,4 +1,4 @@
// IGNORE_BACKEND_K2: WASM
// FILE: test.kt
@@ -32,5 +32,5 @@ inline fun lookAtMe(f: () -> Int) {
// test.kt:6 $box
// test.kt:12 $box
// test.kt:13 $box (4, 8, 4, 4)
// test.kt:7 $box (8, 8)
// test.kt:7 $box (8, 10)
// test.kt:9 $box
+2 -3
View File
@@ -1,4 +1,4 @@
// IGNORE_BACKEND_K2: WASM
// FILE: test.kt
fun box(): String {
@@ -26,7 +26,7 @@ fun box(): String {
// test.kt:5 $box
// Standard.kt:41 $box (4, 4)
// Standard.kt:44 $box (11, 11, 11, 4, 11, 11, 11, 4)
// Standard.kt:2 $box (72, 72, 72, 72)
// Standard.kt:2 $box (46, 46, 46, 46, 55, 76, 76, 76, 76, 85)
// String.kt:141 $kotlin.stringLiteral (17, 28, 17, 17, 28, 17, 17, 28, 17)
// Array.kt:59 $kotlin.Array.get (19, 26, 34, 8, 19, 26, 34, 8, 19, 26, 34, 8)
// ThrowHelpers.kt:29 $kotlin.wasm.internal.rangeCheck (6, 14, 6, 19, 28, 19, 6, 14, 6, 19, 28, 19, 6, 14, 6, 19, 28, 19, 6, 14, 6, 19, 28, 19)
@@ -41,7 +41,6 @@ fun box(): String {
// Array.kt:76 $kotlin.Array.set
// String.kt:149 $kotlin.stringLiteral (11, 4)
// test.kt:6 $box
// Standard.kt:3 $box (16, 16, 16, 16)
// String.kt:143 $kotlin.stringLiteral (15, 8, 15, 8)
// test.kt:9 $box (11, 11, 11, 11, 4)
// ExternalWrapper.kt:200 $kotlin.wasm.internal.kotlinToJsStringAdapter
@@ -11,7 +11,7 @@
@6:25..8:5 FUN_EXPR type=kotlin.Function0<kotlin.Int> origin=LAMBDA
@6:25..8:5 FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Int
@7:8..9 BLOCK_BODY
@7:8..9 RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.MyClass.lazyProp$delegate'
@7:9..9 RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.MyClass.lazyProp$delegate'
@7:8..9 CONST Int type=kotlin.Int value=5
@6:17..8:5 FUN DELEGATED_PROPERTY_ACCESSOR name:<get-lazyProp> visibility:public modality:FINAL <> ($this:<root>.MyClass) returnType:kotlin.Int
@6:4..8:5 VALUE_PARAMETER name:<this> type:<root>.MyClass
+1 -1
View File
@@ -6,7 +6,7 @@
@3:35..53 FUN_EXPR type=kotlin.Function0<@[FlexibleNullability] kotlin.String?> origin=LAMBDA
@3:35..53 FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:@[FlexibleNullability] kotlin.String?
@3:37..51 BLOCK_BODY
@3:39..51 RETURN type=kotlin.Nothing from='local final fun <anonymous> (): @[FlexibleNullability] kotlin.String? declared in <root>.lazyNullString$delegate'
@3:51..51 RETURN type=kotlin.Nothing from='local final fun <anonymous> (): @[FlexibleNullability] kotlin.String? declared in <root>.lazyNullString$delegate'
@3:39..51 CALL 'public open fun nullString (): @[FlexibleNullability] kotlin.String? declared in <root>.J' type=@[FlexibleNullability] kotlin.String? origin=null
@3:27..53 FUN DELEGATED_PROPERTY_ACCESSOR name:<get-lazyNullString> visibility:public modality:FINAL <> () returnType:kotlin.String
@3:30..53 BLOCK_BODY