diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/LambdaInfo.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/LambdaInfo.kt index ef2cdb36221..7fcaa6a4cee 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/LambdaInfo.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/LambdaInfo.kt @@ -166,7 +166,7 @@ class DefaultLambda( classReader.b, invokeMethod.name, invokeMethod.descriptor, - lambdaClassType)!! + lambdaClassType) ?: error("Can't find method '${invokeMethod.name}${invokeMethod.descriptor}' in '${classReader.className}'") if (needReification) { //nested classes could also require reification diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt index cb3312947f0..7849412f281 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt @@ -165,7 +165,9 @@ class MethodInliner( result.merge(transformResult) result.addChangedType(oldClassName, newClassName) - if (inliningContext.isInliningLambda && transformationInfo!!.canRemoveAfterTransformation()) { + if (inliningContext.isInliningLambda && + inliningContext.lambdaInfo !is DefaultLambda && //never delete default lambda classes + transformationInfo!!.canRemoveAfterTransformation()) { // this class is transformed and original not used so we should remove original one after inlining result.addClassToRemove(oldClassName) } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassIsPresent.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassIsPresent.kt new file mode 100644 index 00000000000..fea6c9e2ce6 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassIsPresent.kt @@ -0,0 +1,17 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +inline fun test(p: String, s: () -> () -> String = { { p } }) = + s() + +val same = test("O") + +// FILE: 2.kt + +import test.* + +fun box(): String { + val inlined = test("K") + return same() + inlined() +} diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassesArePresent.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassesArePresent.kt new file mode 100644 index 00000000000..ac534b76e50 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassesArePresent.kt @@ -0,0 +1,17 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +inline fun test(p: String, s: () -> () -> () -> String = { { { p } } }) = + s() + +val same = test("O") + +// FILE: 2.kt + +import test.* + +fun box(): String { + val inlined = test("K") + return same()() + inlined()() +} diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkObjectClassIsPresent.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkObjectClassIsPresent.kt new file mode 100644 index 00000000000..dbf8785c928 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkObjectClassIsPresent.kt @@ -0,0 +1,24 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +interface Call { + fun run(): String +} + +inline fun test(p: String, s: () -> Call = { + object : Call { + override fun run() = p + } as Call +}) = s() + +val same = test("O") + +// FILE: 2.kt + +import test.* + +fun box(): String { + val inlined = test("K") + return same.run() + inlined.run() +} diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassIsPresent.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassIsPresent.kt new file mode 100644 index 00000000000..74769db72a7 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassIsPresent.kt @@ -0,0 +1,18 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +inline fun test(s: () -> () -> String = { { "OK" } }) = + s() + +val same = test() + +// FILE: 2.kt + +import test.* + +fun box(): String { + val inlined = test() + if (same() != "OK") return "fail 1: ${same()}" + return inlined() +} diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassesArePresent.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassesArePresent.kt new file mode 100644 index 00000000000..b3ac4ff818a --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassesArePresent.kt @@ -0,0 +1,18 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +inline fun test(s: () -> () -> () -> String = { { { "OK" } } }) = + s() + +val same = test() + +// FILE: 2.kt + +import test.* + +fun box(): String { + val inlined = test() + if (same()() != "OK") return "fail 1: ${same()()}" + return inlined()() +} diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticObjectClassIsPresent.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticObjectClassIsPresent.kt new file mode 100644 index 00000000000..15317f1e893 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticObjectClassIsPresent.kt @@ -0,0 +1,25 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +interface Call { + fun run(): String +} + +inline fun test(s: () -> Call = { + object : Call { + override fun run() = "OK" + } as Call +}) = s() + +val same = test() + +// FILE: 2.kt + +import test.* + +fun box(): String { + val inlined = test() + if (same.run() != "OK") return "fail 1: ${same.run()}" + return inlined.run() +} diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt new file mode 100644 index 00000000000..9886812a50b --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt @@ -0,0 +1,17 @@ +// NO_CHECK_LAMBDA_INLINING +// FILE: 1.kt +package test + +inline fun test(p: T, s: () -> () -> T = { { p } }) = + s() + +val same = test("O") + +// FILE: 2.kt + +import test.* + +fun box(): String { + val inlined = test("K") + return same() + inlined() +} diff --git a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java index d83c657ac32..dabc9f21445 100644 --- a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java @@ -1210,6 +1210,42 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("checkLambdaClassIsPresent.kt") + public void testCheckLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkLambdaClassesArePresent.kt") + public void testCheckLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkObjectClassIsPresent.kt") + public void testCheckObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkObjectClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassIsPresent.kt") + public void testCheckStaticLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassesArePresent.kt") + public void testCheckStaticLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticObjectClassIsPresent.kt") + public void testCheckStaticObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticObjectClassIsPresent.kt"); + doTest(fileName); + } + @TestMetadata("defaultCallInDefaultLambda.kt") public void testDefaultCallInDefaultLambda() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultCallInDefaultLambda.kt"); @@ -1222,6 +1258,12 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli doTest(fileName); } + @TestMetadata("genericLambda.kt") + public void testGenericLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); + doTest(fileName); + } + @TestMetadata("instanceCapuredInClass.kt") public void testInstanceCapuredInClass() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt"); diff --git a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java index 46e6054eac9..acc122e2afa 100644 --- a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1210,6 +1210,42 @@ public class IrCompileKotlinAgainstInlineKotlinTestGenerated extends AbstractIrC KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("checkLambdaClassIsPresent.kt") + public void testCheckLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkLambdaClassesArePresent.kt") + public void testCheckLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkObjectClassIsPresent.kt") + public void testCheckObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkObjectClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassIsPresent.kt") + public void testCheckStaticLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassesArePresent.kt") + public void testCheckStaticLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticObjectClassIsPresent.kt") + public void testCheckStaticObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticObjectClassIsPresent.kt"); + doTest(fileName); + } + @TestMetadata("defaultCallInDefaultLambda.kt") public void testDefaultCallInDefaultLambda() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultCallInDefaultLambda.kt"); @@ -1222,6 +1258,12 @@ public class IrCompileKotlinAgainstInlineKotlinTestGenerated extends AbstractIrC doTest(fileName); } + @TestMetadata("genericLambda.kt") + public void testGenericLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); + doTest(fileName); + } + @TestMetadata("instanceCapuredInClass.kt") public void testInstanceCapuredInClass() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java index 3dd110c5264..2ef19d63db8 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java @@ -1210,6 +1210,42 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("checkLambdaClassIsPresent.kt") + public void testCheckLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkLambdaClassesArePresent.kt") + public void testCheckLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkObjectClassIsPresent.kt") + public void testCheckObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkObjectClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassIsPresent.kt") + public void testCheckStaticLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassesArePresent.kt") + public void testCheckStaticLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticObjectClassIsPresent.kt") + public void testCheckStaticObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticObjectClassIsPresent.kt"); + doTest(fileName); + } + @TestMetadata("defaultCallInDefaultLambda.kt") public void testDefaultCallInDefaultLambda() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultCallInDefaultLambda.kt"); @@ -1222,6 +1258,12 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo doTest(fileName); } + @TestMetadata("genericLambda.kt") + public void testGenericLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); + doTest(fileName); + } + @TestMetadata("instanceCapuredInClass.kt") public void testInstanceCapuredInClass() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java index 69668aaab31..13502c0fa95 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1210,6 +1210,42 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } + @TestMetadata("checkLambdaClassIsPresent.kt") + public void testCheckLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkLambdaClassesArePresent.kt") + public void testCheckLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkObjectClassIsPresent.kt") + public void testCheckObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkObjectClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassIsPresent.kt") + public void testCheckStaticLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassesArePresent.kt") + public void testCheckStaticLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticObjectClassIsPresent.kt") + public void testCheckStaticObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticObjectClassIsPresent.kt"); + doTest(fileName); + } + @TestMetadata("defaultCallInDefaultLambda.kt") public void testDefaultCallInDefaultLambda() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultCallInDefaultLambda.kt"); @@ -1222,6 +1258,12 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi doTest(fileName); } + @TestMetadata("genericLambda.kt") + public void testGenericLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); + doTest(fileName); + } + @TestMetadata("instanceCapuredInClass.kt") public void testInstanceCapuredInClass() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineDefaultValuesTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineDefaultValuesTestsGenerated.java index 83d61d9e4dd..3c8dea7d10e 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineDefaultValuesTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineDefaultValuesTestsGenerated.java @@ -158,6 +158,42 @@ public class InlineDefaultValuesTestsGenerated extends AbstractInlineDefaultValu KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JS, true); } + @TestMetadata("checkLambdaClassIsPresent.kt") + public void testCheckLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkLambdaClassesArePresent.kt") + public void testCheckLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkObjectClassIsPresent.kt") + public void testCheckObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkObjectClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassIsPresent.kt") + public void testCheckStaticLambdaClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassIsPresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticLambdaClassesArePresent.kt") + public void testCheckStaticLambdaClassesArePresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticLambdaClassesArePresent.kt"); + doTest(fileName); + } + + @TestMetadata("checkStaticObjectClassIsPresent.kt") + public void testCheckStaticObjectClassIsPresent() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/checkStaticObjectClassIsPresent.kt"); + doTest(fileName); + } + @TestMetadata("defaultCallInDefaultLambda.kt") public void testDefaultCallInDefaultLambda() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultCallInDefaultLambda.kt"); @@ -170,6 +206,12 @@ public class InlineDefaultValuesTestsGenerated extends AbstractInlineDefaultValu doTest(fileName); } + @TestMetadata("genericLambda.kt") + public void testGenericLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); + doTest(fileName); + } + @TestMetadata("instanceCapuredInClass.kt") public void testInstanceCapuredInClass() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt");