diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt index 172245bcf64..db888c06514 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.* import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl import org.jetbrains.kotlin.ir.types.defaultType +import org.jetbrains.kotlin.ir.util.allTypeParameters import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols import org.jetbrains.kotlin.ir.util.hasAnnotation import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_OVERLOADS_FQ_NAME @@ -60,7 +61,7 @@ private class JvmOverloadsAnnotationLowering(val context: JvmBackendContext) : C IrDelegatingConstructorCallImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, context.irBuiltIns.unitType, target.symbol, target.descriptor) else IrCallImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, target.returnType, target.symbol) - for (arg in wrapperIrFunction.typeParameters) { + for (arg in wrapperIrFunction.allTypeParameters) { call.putTypeArgument(arg.index, arg.defaultType) } call.dispatchReceiver = wrapperIrFunction.dispatchReceiverParameter?.let { dispatchReceiver -> diff --git a/compiler/testData/codegen/box/jvmOverloads/constructorWithTypeParams.kt b/compiler/testData/codegen/box/jvmOverloads/constructorWithTypeParams.kt new file mode 100644 index 00000000000..2503d2c9728 --- /dev/null +++ b/compiler/testData/codegen/box/jvmOverloads/constructorWithTypeParams.kt @@ -0,0 +1,6 @@ +// TARGET_BACKEND: JVM +// WITH_RUNTIME + +class C @JvmOverloads constructor(val s: String = "OK") + +fun box() = C().s \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 4feb7a5594f..7b9885c1ddb 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -15152,6 +15152,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/jvmOverloads/companionObject.kt"); } + @TestMetadata("constructorWithTypeParams.kt") + public void testConstructorWithTypeParams() throws Exception { + runTest("compiler/testData/codegen/box/jvmOverloads/constructorWithTypeParams.kt"); + } + @TestMetadata("defaultsNotAtEnd.kt") public void testDefaultsNotAtEnd() throws Exception { runTest("compiler/testData/codegen/box/jvmOverloads/defaultsNotAtEnd.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 5f53d35ddf8..d61790f5036 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -15152,6 +15152,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/jvmOverloads/companionObject.kt"); } + @TestMetadata("constructorWithTypeParams.kt") + public void testConstructorWithTypeParams() throws Exception { + runTest("compiler/testData/codegen/box/jvmOverloads/constructorWithTypeParams.kt"); + } + @TestMetadata("defaultsNotAtEnd.kt") public void testDefaultsNotAtEnd() throws Exception { runTest("compiler/testData/codegen/box/jvmOverloads/defaultsNotAtEnd.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 742b08a46d5..4d7006fce84 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -14037,6 +14037,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/jvmOverloads/companionObject.kt"); } + @TestMetadata("constructorWithTypeParams.kt") + public void testConstructorWithTypeParams() throws Exception { + runTest("compiler/testData/codegen/box/jvmOverloads/constructorWithTypeParams.kt"); + } + @TestMetadata("defaultsNotAtEnd.kt") public void testDefaultsNotAtEnd() throws Exception { runTest("compiler/testData/codegen/box/jvmOverloads/defaultsNotAtEnd.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java b/compiler/tests/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java index 47b87b0930e..09ca3fa46ec 100644 --- a/compiler/tests/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java @@ -181,20 +181,5 @@ public class IrJsTextTestCaseGenerated extends AbstractIrJsTextTestCase { public void testAllFilesPresentInScripting() throws Exception { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/ir/irJsText/scripting"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true); } - - @TestMetadata("arrayAssignment.kts") - public void testArrayAssignment() throws Exception { - runTest("compiler/testData/ir/irJsText/scripting/arrayAssignment.kts"); - } - - @TestMetadata("fun.kts") - public void testFun() throws Exception { - runTest("compiler/testData/ir/irJsText/scripting/fun.kts"); - } - - @TestMetadata("safeCalls.kts") - public void testSafeCalls() throws Exception { - runTest("compiler/testData/ir/irJsText/scripting/safeCalls.kts"); - } } }