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 10e953e256f..b4b5381daeb 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/LambdaInfo.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/LambdaInfo.kt @@ -157,17 +157,18 @@ class DefaultLambda( isBoundCallableReference = (isFunctionReference || isPropertyReference) && capturedVars.isNotEmpty() - invokeMethod = Method( - (if (isPropertyReference) OperatorNameConventions.GET else OperatorNameConventions.INVOKE).asString(), - sourceCompiler.state.typeMapper.mapSignatureSkipGeneric(invokeMethodDescriptor).asmMethod.descriptor - ) + val methodName = (if (isPropertyReference) OperatorNameConventions.GET else OperatorNameConventions.INVOKE).asString() + val signature = sourceCompiler.state.typeMapper.mapSignatureSkipGeneric(invokeMethodDescriptor).asmMethod.descriptor node = getMethodNode( classReader.b, - invokeMethod.name, - invokeMethod.descriptor, - lambdaClassType - ) ?: error("Can't find method '${invokeMethod.name}${invokeMethod.descriptor}' in '${classReader.className}'") + methodName, + signature, + lambdaClassType, + signatureAmbiguity = true + ) ?: error("Can't find method '$methodName$signature' in '${classReader.className}'") + + invokeMethod = Method(node.node.name, node.node.desc) if (needReification) { //nested classes could also require reification diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt index cfb25dcfd09..27f7f907d8b 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt @@ -88,7 +88,8 @@ internal fun getMethodNode( classData: ByteArray, methodName: String, methodDescriptor: String, - classType: Type + classType: Type, + signatureAmbiguity: Boolean = false ): SMAPAndMethodNode? { val cr = ClassReader(classData) var node: MethodNode? = null @@ -112,17 +113,28 @@ internal fun getMethodNode( signature: String?, exceptions: Array? ): MethodVisitor? { - if (methodName == name && methodDescriptor == desc) { - node = object : MethodNode(Opcodes.API_VERSION, access, name, desc, signature, exceptions) { - override fun visitLineNumber(line: Int, start: Label) { - super.visitLineNumber(line, start) - lines[0] = Math.min(lines[0], line) - lines[1] = Math.max(lines[1], line) - } + if (methodName != name || (signatureAmbiguity && access.and(Opcodes.ACC_SYNTHETIC) != 0)) return null + + if (methodDescriptor != desc) { + val sameNumberOfParameters = Type.getArgumentTypes(methodDescriptor).size == Type.getArgumentTypes(desc).size + if (!signatureAmbiguity || !sameNumberOfParameters) { + return null } - return node } - return null + + node?.let { existing -> + throw AssertionError("Can't find proper '$name' method for inline: ambiguity between '${existing.name + existing.desc}' and '${name + desc}'") + } + + return object : MethodNode(Opcodes.API_VERSION, access, name, desc, signature, exceptions) { + override fun visitLineNumber(line: Int, start: Label) { + super.visitLineNumber(line, start) + lines[0] = Math.min(lines[0], line) + lines[1] = Math.max(lines[1], line) + } + }.also { + node = it + } } }, ClassReader.SKIP_FRAMES or if (GENERATE_SMAP) 0 else ClassReader.SKIP_DEBUG) diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature.kt new file mode 100644 index 00000000000..550a22663b1 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature.kt @@ -0,0 +1,22 @@ +// IGNORE_BACKEND: JVM_IR +// FILE: 1.kt +// SKIP_INLINE_CHECK_IN: inlineFun$default +package test + +open class Base + +class Child(val value: String) : Base() + +fun foo(a: Base): Child = a as Child + + +inline fun inlineFun(s: (Child) -> Base = ::foo): Base { + return s(Child("OK")) +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return (inlineFun() as Child).value +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature2.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature2.kt new file mode 100644 index 00000000000..c9eaa65dfff --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature2.kt @@ -0,0 +1,17 @@ +// IGNORE_BACKEND: JVM_IR +// FILE: 1.kt +// SKIP_INLINE_CHECK_IN: inlineFun$default +package test + +fun foo(a: Number): String = "OK" + +inline fun inlineFun(s: (Double) -> String = ::foo): String { + return s(1.0) +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return inlineFun() +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/differentInvokeSignature.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/differentInvokeSignature.kt new file mode 100644 index 00000000000..49fdf64554f --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/differentInvokeSignature.kt @@ -0,0 +1,19 @@ +// IGNORE_BACKEND: JVM_IR +// FILE: 1.kt +// SKIP_INLINE_CHECK_IN: inlineFun$default +package test + + +open class Base +class Child(val value: String): Base() + +inline fun inlineFun(s: (Child) -> Base = { a: Base -> a as Child}): Base { + return s(Child("OK")) +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return (inlineFun() as Child).value +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21946.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21946.kt new file mode 100644 index 00000000000..aee1f527134 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21946.kt @@ -0,0 +1,21 @@ +// IGNORE_BACKEND: JVM_IR +// FILE: 1.kt +// NO_CHECK_LAMBDA_INLINING +package test + +interface Call { + fun run(): String +} + +inline fun test(p: String, s: () -> Call = { + object : Call { + override fun run() = p + } +}) = s() + +// FILE: 2.kt +import test.* + +fun box(): String { + return test("OK").run() +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt24477.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt24477.kt new file mode 100644 index 00000000000..f131637aa03 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt24477.kt @@ -0,0 +1,17 @@ +// IGNORE_BACKEND: JVM_IR +// FILE: 1.kt +// SKIP_INLINE_CHECK_IN: inlineFun$default +package test + +class Item + +inline fun inlineFun(number: String, getItem: ((String) -> String?) = { null }): String { + return number + (getItem(number) ?: "") +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return inlineFun("OK") +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt25106.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt25106.kt new file mode 100644 index 00000000000..426e2fdfd7a --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt25106.kt @@ -0,0 +1,15 @@ +// IGNORE_BACKEND: JVM_IR +// FILE: 1.kt +// SKIP_INLINE_CHECK_IN: inlineFun$default +package test + +inline fun inlineFun(action: () -> Any = { "OK" }): Any { + return action() +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return inlineFun() as String +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt26636.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt26636.kt new file mode 100644 index 00000000000..379c65bdecb --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt26636.kt @@ -0,0 +1,25 @@ +// TARGET_BACKEND: JVM +// IGNORE_BACKEND: JVM_IR +// WITH_RUNTIME +// FILE: 1.kt +// SKIP_INLINE_CHECK_IN: enumOrThrow$default +package test + +enum class TarEnum { + OK +} +inline fun > String?.enumOrNull(): T? { + this ?: return null + return enumValues().firstOrNull { it.name == this } +} + +inline fun > String?.enumOrThrow(handleNull: () -> Throwable = { IllegalArgumentException("Enum type ${T::class.java} not contain value=$this") }): T { + return this.enumOrNull() ?: throw handleNull() +} + +// FILE: 2.kt +import test.* + +fun box(): String { + return "OK".enumOrThrow()!!.name +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java index 860cb2ed233..13272c9a1d3 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java @@ -1214,6 +1214,11 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/differentInvokeSignature.kt"); + } + @TestMetadata("genericLambda.kt") public void testGenericLambda() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); @@ -1239,6 +1244,26 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21827.kt"); } + @TestMetadata("kt21946.kt") + public void testKt21946() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21946.kt"); + } + + @TestMetadata("kt24477.kt") + public void testKt24477() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt24477.kt"); + } + + @TestMetadata("kt25106.kt") + public void testKt25106() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt25106.kt"); + } + + @TestMetadata("kt26636.kt") + public void testKt26636() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt26636.kt"); + } + @TestMetadata("noInline.kt") public void testNoInline() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/noInline.kt"); @@ -1356,6 +1381,16 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/constuctorReference.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature.kt"); + } + + @TestMetadata("differentInvokeSignature2.kt") + public void testDifferentInvokeSignature2() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature2.kt"); + } + @TestMetadata("functionImportedFromObject.kt") public void testFunctionImportedFromObject() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/functionImportedFromObject.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java index d05222ddade..0b50f84a119 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1214,6 +1214,11 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/differentInvokeSignature.kt"); + } + @TestMetadata("genericLambda.kt") public void testGenericLambda() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); @@ -1239,6 +1244,26 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21827.kt"); } + @TestMetadata("kt21946.kt") + public void testKt21946() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21946.kt"); + } + + @TestMetadata("kt24477.kt") + public void testKt24477() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt24477.kt"); + } + + @TestMetadata("kt25106.kt") + public void testKt25106() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt25106.kt"); + } + + @TestMetadata("kt26636.kt") + public void testKt26636() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt26636.kt"); + } + @TestMetadata("noInline.kt") public void testNoInline() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/noInline.kt"); @@ -1356,6 +1381,16 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/constuctorReference.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature.kt"); + } + + @TestMetadata("differentInvokeSignature2.kt") + public void testDifferentInvokeSignature2() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature2.kt"); + } + @TestMetadata("functionImportedFromObject.kt") public void testFunctionImportedFromObject() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/functionImportedFromObject.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java index 08aa3f25097..aac2af817b7 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java @@ -1214,6 +1214,11 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/differentInvokeSignature.kt"); + } + @TestMetadata("genericLambda.kt") public void testGenericLambda() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); @@ -1239,6 +1244,26 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21827.kt"); } + @TestMetadata("kt21946.kt") + public void testKt21946() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21946.kt"); + } + + @TestMetadata("kt24477.kt") + public void testKt24477() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt24477.kt"); + } + + @TestMetadata("kt25106.kt") + public void testKt25106() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt25106.kt"); + } + + @TestMetadata("kt26636.kt") + public void testKt26636() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt26636.kt"); + } + @TestMetadata("noInline.kt") public void testNoInline() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/noInline.kt"); @@ -1356,6 +1381,16 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/constuctorReference.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature.kt"); + } + + @TestMetadata("differentInvokeSignature2.kt") + public void testDifferentInvokeSignature2() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature2.kt"); + } + @TestMetadata("functionImportedFromObject.kt") public void testFunctionImportedFromObject() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/functionImportedFromObject.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 d15dba4d3c2..63e081a1ad8 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 @@ -176,6 +176,11 @@ public class InlineDefaultValuesTestsGenerated extends AbstractInlineDefaultValu runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/differentInvokeSignature.kt"); + } + @TestMetadata("genericLambda.kt") public void testGenericLambda() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); @@ -196,6 +201,21 @@ public class InlineDefaultValuesTestsGenerated extends AbstractInlineDefaultValu runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21827.kt"); } + @TestMetadata("kt21946.kt") + public void testKt21946() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21946.kt"); + } + + @TestMetadata("kt24477.kt") + public void testKt24477() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt24477.kt"); + } + + @TestMetadata("kt25106.kt") + public void testKt25106() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt25106.kt"); + } + @TestMetadata("noInline.kt") public void testNoInline() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/noInline.kt"); @@ -313,6 +333,16 @@ public class InlineDefaultValuesTestsGenerated extends AbstractInlineDefaultValu runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/constuctorReference.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature.kt"); + } + + @TestMetadata("differentInvokeSignature2.kt") + public void testDifferentInvokeSignature2() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature2.kt"); + } + @TestMetadata("functionImportedFromObject.kt") public void testFunctionImportedFromObject() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/functionImportedFromObject.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineDefaultValuesTestsGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineDefaultValuesTestsGenerated.java index fcea83d0ebb..928adcaaad2 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineDefaultValuesTestsGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrInlineDefaultValuesTestsGenerated.java @@ -176,6 +176,11 @@ public class IrInlineDefaultValuesTestsGenerated extends AbstractIrInlineDefault runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/differentInvokeSignature.kt"); + } + @TestMetadata("genericLambda.kt") public void testGenericLambda() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/genericLambda.kt"); @@ -196,6 +201,21 @@ public class IrInlineDefaultValuesTestsGenerated extends AbstractIrInlineDefault runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21827.kt"); } + @TestMetadata("kt21946.kt") + public void testKt21946() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt21946.kt"); + } + + @TestMetadata("kt24477.kt") + public void testKt24477() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt24477.kt"); + } + + @TestMetadata("kt25106.kt") + public void testKt25106() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/kt25106.kt"); + } + @TestMetadata("noInline.kt") public void testNoInline() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/noInline.kt"); @@ -313,6 +333,16 @@ public class IrInlineDefaultValuesTestsGenerated extends AbstractIrInlineDefault runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/constuctorReference.kt"); } + @TestMetadata("differentInvokeSignature.kt") + public void testDifferentInvokeSignature() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature.kt"); + } + + @TestMetadata("differentInvokeSignature2.kt") + public void testDifferentInvokeSignature2() throws Exception { + runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/differentInvokeSignature2.kt"); + } + @TestMetadata("functionImportedFromObject.kt") public void testFunctionImportedFromObject() throws Exception { runTest("compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/callableReferences/functionImportedFromObject.kt");