Experiment
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java index c3bf8d2..dd920d3 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java
@@ -24649,12 +24649,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java index 6506352..ae3df49 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java
@@ -24649,12 +24649,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index c855920..7b2771b 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java
@@ -24572,12 +24572,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java index 7f210c56..baebd44 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java
@@ -24572,12 +24572,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 06625a6..a4e1d61 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java
@@ -24572,12 +24572,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt index 95ee094..c849667 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesInInlineLambdasLowering import org.jetbrains.kotlin.backend.common.lower.loops.ForLoopsLowering import org.jetbrains.kotlin.backend.common.phaser.* -import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.ir.backend.js.lower.* import org.jetbrains.kotlin.ir.backend.js.lower.calls.CallsLowering import org.jetbrains.kotlin.ir.backend.js.lower.cleanup.CleanupLowering @@ -215,6 +214,7 @@ it.innerClassesSupport, alwaysCreateTemporaryVariablesForArguments = true, inlineArgumentsWithOriginalOffset = true, + insertAdditionalImplicitCasts = true ) }, name = "FunctionInliningPhase",
diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt index b5616ac..8291584 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt
@@ -18,13 +18,11 @@ import org.jetbrains.kotlin.descriptors.DescriptorVisibility import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.inline.FunctionInlining -import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrValueSymbol import org.jetbrains.kotlin.ir.util.PatchDeclarationParentsVisitor import org.jetbrains.kotlin.ir.util.isAnonymousObject import org.jetbrains.kotlin.ir.util.isExpect import org.jetbrains.kotlin.ir.util.parentAsClass -import org.jetbrains.kotlin.ir.util.resolveFakeOverride import org.jetbrains.kotlin.ir.visitors.acceptVoid import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities import org.jetbrains.kotlin.name.NameUtils @@ -299,7 +297,8 @@ innerClassesSupport = context.innerClassesSupport, alwaysCreateTemporaryVariablesForArguments = true, regenerateInlinedAnonymousObjects = true, - inlineArgumentsWithOriginalOffset = true + inlineArgumentsWithOriginalOffset = true, + insertAdditionalImplicitCasts = true ) }, name = "FunctionInliningPhase",
diff --git a/compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt b/compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt new file mode 100644 index 0000000..fe2c616 --- /dev/null +++ b/compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt
@@ -0,0 +1,15 @@ +class A<T>(val prop: T) + +inline fun <T> A<T>.process(action: (T) -> Unit) { + action(prop) +} + +inline fun acceptInt(p: Int, action: (Int) -> Unit) { + action(p) +} + +fun box(): String { + var x = 0 + A(1).process { acceptInt(it) { p -> x += p } } + return ('N' + x).toString() + "K" +} \ No newline at end of file
diff --git a/compiler/testData/codegen/box/inline/kt66017.kt b/compiler/testData/codegen/box/inline/kt66017.kt new file mode 100644 index 0000000..5817001 --- /dev/null +++ b/compiler/testData/codegen/box/inline/kt66017.kt
@@ -0,0 +1,10 @@ +// WITH_STDLIB + +fun box(): String { + listOf(1).forEach { size -> + repeat(size) { + return "OK" + } + } + return "Fail" +} \ No newline at end of file
diff --git a/compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt b/compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt new file mode 100644 index 0000000..a1bfea2 --- /dev/null +++ b/compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt
@@ -0,0 +1,20 @@ +// WITH_STDLIB +inline fun <T> Iterable<T>.myForEach(action: (T) -> Unit): Unit { + for (element in this) action(element) +} + +inline fun myRepeat(times: Int, action: (Int) -> Unit) { + for (index in 0 until times) { + action(index) + } +} + + +fun box(): String { + listOf(1).myForEach { size -> + myRepeat(size) { + return "OK" + } + } + return "Fail" +} \ No newline at end of file
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java index ddb31c5..e582037 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java
@@ -24572,12 +24572,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index d4a48e0..a4be871 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java
@@ -23336,6 +23336,24 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 964f61f..f7fb639 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java
@@ -24572,12 +24572,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index cd5ea96..13aaa80 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java
@@ -24572,12 +24572,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxCodegenTestWithInlineScopesGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxCodegenTestWithInlineScopesGenerated.java index 0f6a7e8..b772cd1 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxCodegenTestWithInlineScopesGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxCodegenTestWithInlineScopesGenerated.java
@@ -24572,12 +24572,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index acd8c0b..fffefba 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java
@@ -20603,11 +20603,26 @@ runTest("compiler/testData/codegen/box/inline/inlineCtor.kt"); } + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java index 2a1222c..5f71e2c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java
@@ -18734,12 +18734,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java index d36bd9b..2a7d501 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java
@@ -18734,12 +18734,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index af4ec7c..fede296 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java
@@ -18734,12 +18734,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java index df0923d5..7877c1b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java
@@ -18734,12 +18734,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/NativeLoweringPhases.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/NativeLoweringPhases.kt index 8aa8ec8..ef6bd60 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/NativeLoweringPhases.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/NativeLoweringPhases.kt
@@ -9,33 +9,31 @@ import org.jetbrains.kotlin.backend.common.FileLoweringPass import org.jetbrains.kotlin.backend.common.lower.* import org.jetbrains.kotlin.backend.common.lower.coroutines.AddContinuationToNonLocalSuspendFunctionsLowering -import org.jetbrains.kotlin.ir.inline.FunctionInlining import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesExtractionFromInlineFunctionsLowering import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesInInlineFunctionsLowering import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesInInlineLambdasLowering import org.jetbrains.kotlin.backend.common.lower.loops.ForLoopsLowering import org.jetbrains.kotlin.backend.common.lower.optimizations.LivenessAnalysis import org.jetbrains.kotlin.backend.common.lower.optimizations.PropertyAccessorInlineLowering -import org.jetbrains.kotlin.backend.common.phaser.* +import org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase +import org.jetbrains.kotlin.backend.common.phaser.SimpleNamedCompilerPhase +import org.jetbrains.kotlin.backend.common.phaser.createSimpleNamedCompilerPhase import org.jetbrains.kotlin.backend.common.runOnFilePostfix -import org.jetbrains.kotlin.backend.konan.Context -import org.jetbrains.kotlin.backend.konan.NativeGenerationState -import org.jetbrains.kotlin.backend.konan.driver.PhaseEngine import org.jetbrains.kotlin.backend.konan.* +import org.jetbrains.kotlin.backend.konan.driver.PhaseEngine import org.jetbrains.kotlin.backend.konan.driver.utilities.getDefaultIrActions import org.jetbrains.kotlin.backend.konan.ir.FunctionsWithoutBoundCheckGenerator import org.jetbrains.kotlin.backend.konan.lower.* -import org.jetbrains.kotlin.backend.konan.lower.ImportCachesAbiTransformer import org.jetbrains.kotlin.backend.konan.lower.InitializersLowering -import org.jetbrains.kotlin.backend.konan.lower.InlineClassPropertyAccessorsLowering -import org.jetbrains.kotlin.backend.konan.lower.RedundantCoercionsCleaner -import org.jetbrains.kotlin.backend.konan.lower.ReturnsInsertionLowering -import org.jetbrains.kotlin.backend.konan.lower.UnboxInlineLowering import org.jetbrains.kotlin.backend.konan.optimizations.KonanBCEForLoopBodyTransformer import org.jetbrains.kotlin.ir.IrElement -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrDeclaration +import org.jetbrains.kotlin.ir.declarations.IrFile +import org.jetbrains.kotlin.ir.declarations.IrFunction +import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrSuspensionPoint +import org.jetbrains.kotlin.ir.inline.FunctionInlining import org.jetbrains.kotlin.ir.interpreter.IrInterpreterConfiguration import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid @@ -347,7 +345,8 @@ FunctionInlining( context.context, NativeInlineFunctionResolver(context.context, context), - alwaysCreateTemporaryVariablesForArguments = context.shouldContainDebugInfo() + alwaysCreateTemporaryVariablesForArguments = context.shouldContainDebugInfo(), + insertAdditionalImplicitCasts = true ).lower(irFile) } }
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java index 4866f7e..c410dcb 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java
@@ -20023,12 +20023,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java index cfe97f2..451c9db 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java
@@ -20453,12 +20453,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java index 088f191..07c4f8b 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java
@@ -19593,12 +19593,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java index c624345..676a107 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java
@@ -20024,12 +20024,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmJsCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmJsCodegenBoxTestGenerated.java index 3086df4..afc110c 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmJsCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmJsCodegenBoxTestGenerated.java
@@ -18764,12 +18764,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");
diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java index 07d30db..0b326d3 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java
@@ -18764,12 +18764,30 @@ } @Test + @TestMetadata("inlinedLambdaWithErasedParamType.kt") + public void testInlinedLambdaWithErasedParamType() { + runTest("compiler/testData/codegen/box/inline/inlinedLambdaWithErasedParamType.kt"); + } + + @Test @TestMetadata("innerInlineFunCapturesOuter.kt") public void testInnerInlineFunCapturesOuter() { runTest("compiler/testData/codegen/box/inline/innerInlineFunCapturesOuter.kt"); } @Test + @TestMetadata("kt66017.kt") + public void testKt66017() { + runTest("compiler/testData/codegen/box/inline/kt66017.kt"); + } + + @Test + @TestMetadata("kt66017_inlineFromTheSameModule.kt") + public void testKt66017_inlineFromTheSameModule() { + runTest("compiler/testData/codegen/box/inline/kt66017_inlineFromTheSameModule.kt"); + } + + @Test @TestMetadata("lambdaAsAny.kt") public void testLambdaAsAny() { runTest("compiler/testData/codegen/box/inline/lambdaAsAny.kt");