diff --git a/compiler/testData/checkLocalVariablesTable/destructuringInSuspendLambda/inline.kt b/compiler/testData/checkLocalVariablesTable/destructuringInSuspendLambda/inline.kt index 5b6b92b2891..34db8db6e87 100644 --- a/compiler/testData/checkLocalVariablesTable/destructuringInSuspendLambda/inline.kt +++ b/compiler/testData/checkLocalVariablesTable/destructuringInSuspendLambda/inline.kt @@ -7,11 +7,11 @@ suspend inline fun foo(a: A, block: suspend (A) -> String): String = block(a) suspend fun test() = foo(A("O", "K")) { (x_param, y_param) -> x_param + y_param } // METHOD : InlineKt.test(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME= TYPE=LA; INDEX=3 -// VARIABLE : NAME=continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=2 -// VARIABLE : NAME=$x_param_y_param TYPE=LA; INDEX=5 -// VARIABLE : NAME=x_param TYPE=Ljava/lang/String; INDEX=6 -// VARIABLE : NAME=y_param TYPE=Ljava/lang/String; INDEX=7 -// VARIABLE : NAME=$i$a$-foo-InlineKt$test$2 TYPE=I INDEX=2 +// VARIABLE : NAME= TYPE=LA; INDEX=4 +// VARIABLE : NAME=continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=3 +// VARIABLE : NAME=$x_param_y_param TYPE=LA; INDEX=6 +// VARIABLE : NAME=x_param TYPE=Ljava/lang/String; INDEX=7 +// VARIABLE : NAME=y_param TYPE=Ljava/lang/String; INDEX=8 +// VARIABLE : NAME=$i$a$-foo-InlineKt$test$2 TYPE=I INDEX=5 // VARIABLE : NAME=a$iv TYPE=LA; INDEX=1 -// VARIABLE : NAME=$i$f$foo TYPE=I INDEX=8 +// VARIABLE : NAME=$i$f$foo TYPE=I INDEX=2 \ No newline at end of file diff --git a/compiler/testData/checkLocalVariablesTable/destructuringInlineLambda.kt b/compiler/testData/checkLocalVariablesTable/destructuringInlineLambda.kt index 1b4f0eb2699..590af4f6739 100644 --- a/compiler/testData/checkLocalVariablesTable/destructuringInlineLambda.kt +++ b/compiler/testData/checkLocalVariablesTable/destructuringInlineLambda.kt @@ -14,10 +14,10 @@ fun box(): String { } // METHOD : DestructuringInlineLambdaKt.box()Ljava/lang/String; -// VARIABLE : NAME=i TYPE=I INDEX=1 -// VARIABLE : NAME=$a1_a2_a3 TYPE=LStation; INDEX=0 -// VARIABLE : NAME=a1 TYPE=Ljava/lang/String; INDEX=2 -// VARIABLE : NAME=a2 TYPE=Ljava/lang/String; INDEX=3 -// VARIABLE : NAME=a3 TYPE=I INDEX=4 -// VARIABLE : NAME=$i$a$-foo-DestructuringInlineLambdaKt$box$1 TYPE=I INDEX=5 -// VARIABLE : NAME=$i$f$foo TYPE=I INDEX=6 +// VARIABLE : NAME=i TYPE=I INDEX=2 +// VARIABLE : NAME=$a1_a2_a3 TYPE=LStation; INDEX=1 +// VARIABLE : NAME=a1 TYPE=Ljava/lang/String; INDEX=4 +// VARIABLE : NAME=a2 TYPE=Ljava/lang/String; INDEX=5 +// VARIABLE : NAME=a3 TYPE=I INDEX=6 +// VARIABLE : NAME=$i$a$-foo-DestructuringInlineLambdaKt$box$1 TYPE=I INDEX=3 +// VARIABLE : NAME=$i$f$foo TYPE=I INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/inlineLambdaWithItParam.kt b/compiler/testData/checkLocalVariablesTable/inlineLambdaWithItParam.kt index 8d7dd5c6113..37fdc9ee33c 100644 --- a/compiler/testData/checkLocalVariablesTable/inlineLambdaWithItParam.kt +++ b/compiler/testData/checkLocalVariablesTable/inlineLambdaWithItParam.kt @@ -12,9 +12,9 @@ class A { } // METHOD : A.foo()V -// VARIABLE : NAME=zzz TYPE=I INDEX=3 -// VARIABLE : NAME=it TYPE=I INDEX=2 +// VARIABLE : NAME=zzz TYPE=I INDEX=5 +// VARIABLE : NAME=it TYPE=I INDEX=3 // VARIABLE : NAME=$i$a$-inlineFun-A$foo$1 TYPE=I INDEX=4 // VARIABLE : NAME=this_$iv TYPE=LA; INDEX=1 -// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=5 +// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=2 // VARIABLE : NAME=this TYPE=LA; INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/inlineLambdaWithParam.kt b/compiler/testData/checkLocalVariablesTable/inlineLambdaWithParam.kt index 179c6d416ee..66bfd0166ab 100644 --- a/compiler/testData/checkLocalVariablesTable/inlineLambdaWithParam.kt +++ b/compiler/testData/checkLocalVariablesTable/inlineLambdaWithParam.kt @@ -14,13 +14,13 @@ class A { } // METHOD : A.foo()V -// VARIABLE : NAME=zzz TYPE=I INDEX=4 -// VARIABLE : NAME=l TYPE=I INDEX=3 +// VARIABLE : NAME=zzz TYPE=I INDEX=6 +// VARIABLE : NAME=l TYPE=I INDEX=4 // VARIABLE : NAME=$i$a$-inlineFun-A$foo$1 TYPE=I INDEX=5 -// VARIABLE : NAME=zzz TYPE=I INDEX=4 -// VARIABLE : NAME=l TYPE=I INDEX=3 +// VARIABLE : NAME=zzz TYPE=I INDEX=6 +// VARIABLE : NAME=l TYPE=I INDEX=4 // VARIABLE : NAME=$i$a$-inlineFun-A$foo$1 TYPE=I INDEX=5 // VARIABLE : NAME=this_$iv TYPE=LA; INDEX=1 // VARIABLE : NAME=p$iv TYPE=I INDEX=2 -// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=6 +// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=3 // VARIABLE : NAME=this TYPE=LA; INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/inlineSimple.kt b/compiler/testData/checkLocalVariablesTable/inlineSimple.kt index 14279d56186..f785efd54d8 100644 --- a/compiler/testData/checkLocalVariablesTable/inlineSimple.kt +++ b/compiler/testData/checkLocalVariablesTable/inlineSimple.kt @@ -13,9 +13,9 @@ class A { } // METHOD : A.foo()V -// VARIABLE : NAME=zzz TYPE=I INDEX=3 +// VARIABLE : NAME=zzz TYPE=I INDEX=5 // VARIABLE : NAME=$i$a$-inlineFun-A$foo$1 TYPE=I INDEX=4 // VARIABLE : NAME=this_$iv TYPE=LA; INDEX=2 -// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=5 +// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=3 // VARIABLE : NAME=s TYPE=I INDEX=1 // VARIABLE : NAME=this TYPE=LA; INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/inlineSimpleChain.kt b/compiler/testData/checkLocalVariablesTable/inlineSimpleChain.kt index fdee4f1eef3..9215b96c13e 100644 --- a/compiler/testData/checkLocalVariablesTable/inlineSimpleChain.kt +++ b/compiler/testData/checkLocalVariablesTable/inlineSimpleChain.kt @@ -18,13 +18,13 @@ class A { } // METHOD : A.foo()V -// VARIABLE : NAME=zz2 TYPE=I INDEX=5 -// VARIABLE : NAME=$i$a$-inlineFun-A$foo$1$1 TYPE=I INDEX=6 -// VARIABLE : NAME=this_$iv TYPE=LA; INDEX=4 +// VARIABLE : NAME=zz2 TYPE=I INDEX=9 +// VARIABLE : NAME=$i$a$-inlineFun-A$foo$1$1 TYPE=I INDEX=8 +// VARIABLE : NAME=this_$iv TYPE=LA; INDEX=6 // VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=7 -// VARIABLE : NAME=z TYPE=I INDEX=3 -// VARIABLE : NAME=$i$a$-inlineFun-A$foo$1 TYPE=I INDEX=8 +// VARIABLE : NAME=z TYPE=I INDEX=5 +// VARIABLE : NAME=$i$a$-inlineFun-A$foo$1 TYPE=I INDEX=4 // VARIABLE : NAME=this_$iv TYPE=LA; INDEX=2 -// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=9 +// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=3 // VARIABLE : NAME=s TYPE=I INDEX=1 // VARIABLE : NAME=this TYPE=LA; INDEX=0 diff --git a/compiler/testData/codegen/asmLike/receiverMangling/deepInline.txt b/compiler/testData/codegen/asmLike/receiverMangling/deepInline.txt index 97858e7e99c..db713da764d 100644 --- a/compiler/testData/codegen/asmLike/receiverMangling/deepInline.txt +++ b/compiler/testData/codegen/asmLike/receiverMangling/deepInline.txt @@ -7,17 +7,17 @@ public final class DeepInlineKt : java/lang/Object { public final static void foo(java.lang.String $receiver, int $i$a$-block-DeepInlineKt$foo$1$1$1) { Local variables: + 14 $receiver: J + 16 $i$a$-block-DeepInlineKt$foo$1$1$1: I + 13 $i$f$block: I + 12 z: Z 9 $receiver: J - 11 $i$a$-block-DeepInlineKt$foo$1$1$1: I - 12 $i$f$block: I - 8 z: Z - 6 $receiver: J - 13 $i$a$-block-DeepInlineKt$foo$1$1: I - 14 $i$f$block: I - 5 y: Z - 3 $receiver: J - 15 $i$a$-block-DeepInlineKt$foo$1: I - 16 $i$f$block: I + 11 $i$a$-block-DeepInlineKt$foo$1$1: I + 8 $i$f$block: I + 7 y: Z + 4 $receiver: J + 6 $i$a$-block-DeepInlineKt$foo$1: I + 3 $i$f$block: I 2 x: Z 0 $receiver: Ljava/lang/String; 1 count: I diff --git a/compiler/testData/codegen/asmLike/receiverMangling/deepInlineWithLabels.txt b/compiler/testData/codegen/asmLike/receiverMangling/deepInlineWithLabels.txt index 39085a79839..8d1aef0a8fc 100644 --- a/compiler/testData/codegen/asmLike/receiverMangling/deepInlineWithLabels.txt +++ b/compiler/testData/codegen/asmLike/receiverMangling/deepInlineWithLabels.txt @@ -7,17 +7,17 @@ public final class DeepInlineWithLabelsKt : java/lang/Object { public final static void foo(java.lang.String $receiver, int $i$a$-block-DeepInlineWithLabelsKt$foo$1$1$1) { Local variables: + 14 $receiver: J + 16 $i$a$-block-DeepInlineWithLabelsKt$foo$1$1$1: I + 13 $i$f$block: I + 12 z: Z 9 $receiver: J - 11 $i$a$-block-DeepInlineWithLabelsKt$foo$1$1$1: I - 12 $i$f$block: I - 8 z: Z - 6 $receiver: J - 13 $i$a$-block-DeepInlineWithLabelsKt$foo$1$1: I - 14 $i$f$block: I - 5 y: Z - 3 $receiver: J - 15 $i$a$-block-DeepInlineWithLabelsKt$foo$1: I - 16 $i$f$block: I + 11 $i$a$-block-DeepInlineWithLabelsKt$foo$1$1: I + 8 $i$f$block: I + 7 y: Z + 4 $receiver: J + 6 $i$a$-block-DeepInlineWithLabelsKt$foo$1: I + 3 $i$f$block: I 2 x: Z 0 $receiver: Ljava/lang/String; 1 count: I diff --git a/compiler/testData/codegen/asmLike/receiverMangling/inlineClassCapture.txt b/compiler/testData/codegen/asmLike/receiverMangling/inlineClassCapture.txt index 875e73e9dec..4fbcd1efe4d 100644 --- a/compiler/testData/codegen/asmLike/receiverMangling/inlineClassCapture.txt +++ b/compiler/testData/codegen/asmLike/receiverMangling/inlineClassCapture.txt @@ -9,10 +9,10 @@ public final class Foo$Bar : java/lang/Object { public final void bar() { Local variables: - 1 $i$a$-block-Foo$Bar$bar$1$1: I - 2 $i$f$block: I - 3 $i$a$-block-Foo$Bar$bar$1: I - 4 $i$f$block: I + 4 $i$a$-block-Foo$Bar$bar$1$1: I + 3 $i$f$block: I + 2 $i$a$-block-Foo$Bar$bar$1: I + 1 $i$f$block: I 0 this: LFoo$Bar; } } @@ -25,8 +25,8 @@ public final class Foo : java/lang/Object { public final void foo() { Local variables: - 1 $i$a$-block-Foo$foo$1: I - 2 $i$f$block: I + 2 $i$a$-block-Foo$foo$1: I + 1 $i$f$block: I 0 this: LFoo; } } diff --git a/compiler/testData/codegen/asmLike/receiverMangling/inlineReceivers.txt b/compiler/testData/codegen/asmLike/receiverMangling/inlineReceivers.txt index 7b1cd81fee5..24d62742731 100644 --- a/compiler/testData/codegen/asmLike/receiverMangling/inlineReceivers.txt +++ b/compiler/testData/codegen/asmLike/receiverMangling/inlineReceivers.txt @@ -7,9 +7,9 @@ public final class InlineReceiversKt : java/lang/Object { public final static void foo(java.lang.String $receiver, int $i$a$-block-InlineReceiversKt$foo$1) { Local variables: - 3 $receiver: J - 5 $i$a$-block-InlineReceiversKt$foo$1: I - 6 $i$f$block: I + 4 $receiver: J + 6 $i$a$-block-InlineReceiversKt$foo$1: I + 3 $i$f$block: I 2 x: Z 0 $receiver: Ljava/lang/String; 1 count: I diff --git a/compiler/testData/codegen/bytecodeText/boxingOptimization/maxMinBy.kt b/compiler/testData/codegen/bytecodeText/boxingOptimization/maxMinBy.kt index 0f32bddd2cd..bf55f7f6d84 100644 --- a/compiler/testData/codegen/bytecodeText/boxingOptimization/maxMinBy.kt +++ b/compiler/testData/codegen/bytecodeText/boxingOptimization/maxMinBy.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // FILE: list.kt val intList = listOf(1, 2, 3) @@ -28,7 +27,8 @@ fun box(): String { // -- no compareTo // 0 compareTo // -- comparisons are properly fused with conditional jumps -// 0 ICONST_0 +// comparisons: 0 + fake inline variables: 8 +// 8 ICONST_0 // 1 IF_ICMPGE // 1 IF_ICMPLE // 4 LCMP diff --git a/compiler/testData/codegen/bytecodeText/boxingOptimization/severalInlines.kt b/compiler/testData/codegen/bytecodeText/boxingOptimization/severalInlines.kt index 53389d8e189..6fd8730aa37 100644 --- a/compiler/testData/codegen/bytecodeText/boxingOptimization/severalInlines.kt +++ b/compiler/testData/codegen/bytecodeText/boxingOptimization/severalInlines.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR inline fun foo(x : R, y : R, block : (R, R) -> T) : T { return block(x, y) @@ -16,19 +17,20 @@ fun bar() { // 0 valueOf // 0 Value\s\(\) -// 1 LOCALVARIABLE x I (.*) 5 -// 1 LOCALVARIABLE y I (.*) 4 -// 1 LOCALVARIABLE x J (.*) 6 -// 1 LOCALVARIABLE y J (.*) 4 -// 1 LOCALVARIABLE x F (.*) 5 -// 1 LOCALVARIABLE y F (.*) 4 -// 1 LOCALVARIABLE x D (.*) 6 -// 1 LOCALVARIABLE y D (.*) 4 -// 1 LOCALVARIABLE x B (.*) 5 -// 1 LOCALVARIABLE y B (.*) 4 -// 1 LOCALVARIABLE x S (.*) 5 -// 1 LOCALVARIABLE y S (.*) 4 -// 1 LOCALVARIABLE x C (.*) 5 -// 1 LOCALVARIABLE y C (.*) 4 -// 1 LOCALVARIABLE x Z (.*) 5 -// 1 LOCALVARIABLE y Z (.*) 4 +// 1 LOCALVARIABLE x I (.*) 6 +// 1 LOCALVARIABLE y I (.*) 5 +// 1 LOCALVARIABLE x J (.*) 7 +// 1 LOCALVARIABLE y J (.*) 5 +// 1 LOCALVARIABLE x F (.*) 6 +// 1 LOCALVARIABLE y F (.*) 5 +// 1 LOCALVARIABLE x D (.*) 7 +// 1 LOCALVARIABLE y D (.*) 5 +// 1 LOCALVARIABLE x B (.*) 6 +// 1 LOCALVARIABLE y B (.*) 5 +// 1 LOCALVARIABLE x S (.*) 6 +// 1 LOCALVARIABLE y S (.*) 5 +// 1 LOCALVARIABLE x C (.*) 6 +// 1 LOCALVARIABLE y C (.*) 5 +// 1 LOCALVARIABLE x Z (.*) 6 +// 1 LOCALVARIABLE y Z (.*) 5 + diff --git a/compiler/testData/codegen/bytecodeText/capturedVarsOptimization/sharedSlotsWithCapturedVars.kt b/compiler/testData/codegen/bytecodeText/capturedVarsOptimization/sharedSlotsWithCapturedVars.kt index c4e6d848871..2948c0e76d6 100644 --- a/compiler/testData/codegen/bytecodeText/capturedVarsOptimization/sharedSlotsWithCapturedVars.kt +++ b/compiler/testData/codegen/bytecodeText/capturedVarsOptimization/sharedSlotsWithCapturedVars.kt @@ -19,12 +19,12 @@ fun box(): String { // Shared variable slots (x1, x2): -// 4 ILOAD 0 -// 4 ISTORE 0 +// 4 ILOAD 2 +// 4 ISTORE 2 -// Temporary variable slots for 'x2++': +// Temporary variable slots for 'x2++' + store to fake index: // 0 ILOAD 1 -// 1 ISTORE 1 +// 2 ISTORE 1 // 0 NEW // 0 GETFIELD diff --git a/compiler/testData/codegen/bytecodeText/coercionToUnitOptimization/nopInlineFuns.kt b/compiler/testData/codegen/bytecodeText/coercionToUnitOptimization/nopInlineFuns.kt index a9c575a189d..d02d500e202 100644 --- a/compiler/testData/codegen/bytecodeText/coercionToUnitOptimization/nopInlineFuns.kt +++ b/compiler/testData/codegen/bytecodeText/coercionToUnitOptimization/nopInlineFuns.kt @@ -24,4 +24,4 @@ fun simpleFunVoid(f: () -> Unit): Unit { return f() } -// 7 NOP +// 3 NOP diff --git a/compiler/testData/codegen/bytecodeText/defaultArguments/maskAndArgumentElimination.kt b/compiler/testData/codegen/bytecodeText/defaultArguments/maskAndArgumentElimination.kt index 65bfa8fc1ea..16e565df207 100644 --- a/compiler/testData/codegen/bytecodeText/defaultArguments/maskAndArgumentElimination.kt +++ b/compiler/testData/codegen/bytecodeText/defaultArguments/maskAndArgumentElimination.kt @@ -17,5 +17,5 @@ fun box() : String { // 0 NULL //proper variable start label: after assignment -// 1 LOCALVARIABLE p\$iv Ljava/lang/String; L2 L3 0 +// 1 LOCALVARIABLE p\$iv Ljava/lang/String; L2 L4 0 // 1 LDC "OK"\s*ASTORE 0\s*L2 \ No newline at end of file diff --git a/compiler/testData/codegen/bytecodeText/inline/inlineArgumentSlots.kt b/compiler/testData/codegen/bytecodeText/inline/inlineArgumentSlots.kt index 7f6ae29d319..e1310b36f23 100644 --- a/compiler/testData/codegen/bytecodeText/inline/inlineArgumentSlots.kt +++ b/compiler/testData/codegen/bytecodeText/inline/inlineArgumentSlots.kt @@ -1,4 +1,4 @@ -// WITH_RUNTIME +// IGNORE_BACKEND: JVM_IR class Range(val min: T, val max: T) diff --git a/compiler/testData/codegen/bytecodeText/inline/linenumberForOneParametersArgumentCall.kt b/compiler/testData/codegen/bytecodeText/inline/linenumberForOneParametersArgumentCall.kt index 0c773f18018..0c6c594bd4f 100644 --- a/compiler/testData/codegen/bytecodeText/inline/linenumberForOneParametersArgumentCall.kt +++ b/compiler/testData/codegen/bytecodeText/inline/linenumberForOneParametersArgumentCall.kt @@ -1,3 +1,5 @@ +// IGNORE_BACKEND: JVM_IR + fun box() { lookAtMe { val c = "c" @@ -9,4 +11,4 @@ inline fun lookAtMe(f: (String) -> Unit) { f(a) // Should be no unneeded nops on this line, that might be generated for zero-parameters lambda } -// 4 NOP \ No newline at end of file +// 3 NOP \ No newline at end of file diff --git a/compiler/testData/codegen/bytecodeText/jackAndJill/inlineDefaultBodyInClass.kt b/compiler/testData/codegen/bytecodeText/jackAndJill/inlineDefaultBodyInClass.kt index c4505846f65..89dd5da7bfd 100644 --- a/compiler/testData/codegen/bytecodeText/jackAndJill/inlineDefaultBodyInClass.kt +++ b/compiler/testData/codegen/bytecodeText/jackAndJill/inlineDefaultBodyInClass.kt @@ -7,11 +7,11 @@ open class A { // // 1 test\$default\(LA;IJLjava/lang/String;ILjava/lang/Object;\)V\s+L0 -// 1 LOCALVARIABLE this LA; L0 L8 0 -// 1 LOCALVARIABLE a I L0 L8 1 -// 1 LOCALVARIABLE b J L0 L8 2 -// 1 LOCALVARIABLE c Ljava/lang/String; L0 L8 4 -// 1 LOCALVARIABLE \$i\$f\$test I L5 L8 5 -// 1 LOCALVARIABLE d I L7 L8 6 +// 1 LOCALVARIABLE this LA; L0 L9 0 +// 1 LOCALVARIABLE a I L0 L9 1 +// 1 LOCALVARIABLE b J L0 L9 2 +// 1 LOCALVARIABLE c Ljava/lang/String; L0 L9 4 +// 1 LOCALVARIABLE \$i\$f\$test I L6 L9 5 +// 1 LOCALVARIABLE d I L8 L9 6 diff --git a/compiler/testData/codegen/bytecodeText/jackAndJill/inlinedConstuctorWithSuperCallParams.kt b/compiler/testData/codegen/bytecodeText/jackAndJill/inlinedConstuctorWithSuperCallParams.kt index 858e68df9c7..646a093bd04 100644 --- a/compiler/testData/codegen/bytecodeText/jackAndJill/inlinedConstuctorWithSuperCallParams.kt +++ b/compiler/testData/codegen/bytecodeText/jackAndJill/inlinedConstuctorWithSuperCallParams.kt @@ -15,4 +15,4 @@ fun main(args: Array) { } /*Threre are two constuctors so we should be sure that we check LOCALVARIABLEs from same method*/ -// 1 LOCALVARIABLE this LInlinedConstuctorWithSuperCallParamsKt\$main\$\$inlined\$test\$1; L0 L7 0\s+LOCALVARIABLE \$super_call_param\$1 Ljava/lang/String; L0 L7 1 +// 1 LOCALVARIABLE this LInlinedConstuctorWithSuperCallParamsKt\$main\$\$inlined\$test\$1; L0 L8 0\s+LOCALVARIABLE \$super_call_param\$1 Ljava/lang/String; L0 L8 1 diff --git a/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/differentTypes.kt b/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/differentTypes.kt index 88d03096eb4..bba44b520d7 100644 --- a/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/differentTypes.kt +++ b/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/differentTypes.kt @@ -12,7 +12,8 @@ fun foo() : String { return foobar(1, 2L, bar(3, 4L, 5.toByte(), "6"), 7.toByte()) } -// 9 ISTORE +// fake inline variables occupy 7 ISTOREs. +// 16 ISTORE // 13 ILOAD // 2 ASTORE // 8 ALOAD diff --git a/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/primitiveMerge.kt b/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/primitiveMerge.kt index ced03480f87..c90e8c9cabf 100644 --- a/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/primitiveMerge.kt +++ b/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/primitiveMerge.kt @@ -14,7 +14,8 @@ fun test() { val result = foobar(if (1 == 1) true else bar(), foo(), "OK") } -// 7 ISTORE +// fake inline variables occupy 7 ISTOREs. +// 14 ISTORE // 8 ILOAD // 2 ASTORE // 7 ALOAD diff --git a/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/simple.kt b/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/simple.kt index 0c2217e729a..dd2947797e9 100644 --- a/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/simple.kt +++ b/compiler/testData/codegen/bytecodeText/storeStackBeforeInline/simple.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR inline fun bar(x: Int) : Int { return x @@ -9,6 +10,7 @@ fun foo() : Int { return foobar(1, bar(2), 3) } -// 3 ISTORE +// fake inline variables occupy 2 ISTOREs. +// 5 ISTORE // 7 ILOAD // 0 InlineMarker diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/IrBytecodeTextTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/IrBytecodeTextTestGenerated.java index e66d611df39..6a1a78067fe 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/IrBytecodeTextTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/IrBytecodeTextTestGenerated.java @@ -1948,6 +1948,11 @@ public class IrBytecodeTextTestGenerated extends AbstractIrBytecodeTextTest { runTest("compiler/testData/codegen/bytecodeText/inline/finallyMarkers.kt"); } + @TestMetadata("inlineArgumentSlots.kt") + public void testInlineArgumentSlots() throws Exception { + runTest("compiler/testData/codegen/bytecodeText/inline/inlineArgumentSlots.kt"); + } + @TestMetadata("inlineReturnsNothing1.kt") public void testInlineReturnsNothing1() throws Exception { runTest("compiler/testData/codegen/bytecodeText/inline/inlineReturnsNothing1.kt");