From 4d9c2d3d1495620d41de8f2eede924678a3262d1 Mon Sep 17 00:00:00 2001 From: Xin Wang Date: Thu, 27 Oct 2022 16:05:12 +0800 Subject: [PATCH] Don't treat java constructor as 'hidden' one Fix KT-54656 --- .../FirBlackBoxCodegenTestGenerated.java | 6 ++++++ .../jvm/lower/SyntheticAccessorLowering.kt | 3 ++- .../codegen/box/inlineClasses/kt54656.kt | 17 +++++++++++++++++ .../codegen/IrBlackBoxCodegenTestGenerated.java | 6 ++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/codegen/box/inlineClasses/kt54656.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index a27a477bfd9..1da572afa0b 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -22337,6 +22337,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inlineClasses/kt54603.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("kt54656.kt") + public void testKt54656() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/kt54656.kt"); + } + @Test @TestMetadata("mangledDefaultParameterFunction.kt") public void testMangledDefaultParameterFunction() throws Exception { diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt index b3f5ae9776d..a365a8de7a9 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt @@ -363,7 +363,8 @@ private class SyntheticAccessorTransformer( if (origin == IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER || origin == JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR || - origin == JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR_FOR_HIDDEN_CONSTRUCTOR + origin == JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR_FOR_HIDDEN_CONSTRUCTOR || + origin == IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB ) { return false } diff --git a/compiler/testData/codegen/box/inlineClasses/kt54656.kt b/compiler/testData/codegen/box/inlineClasses/kt54656.kt new file mode 100644 index 00000000000..6d8a6a25e32 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/kt54656.kt @@ -0,0 +1,17 @@ +// TARGET_BACKEND: JVM_IR +// WITH_STDLIB + +// FILE: J.java +public class J { + public J(Email email) {} +} + +// FILE: 1.kt +@JvmInline +value class Email(val address: String) + +fun box():String { + J(Email("test")) + return "OK" +} + 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 17ebdf78b14..01ff842724b 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 @@ -22337,6 +22337,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/kt54603.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal()); } + @Test + @TestMetadata("kt54656.kt") + public void testKt54656() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/kt54656.kt"); + } + @Test @TestMetadata("mangledDefaultParameterFunction.kt") public void testMangledDefaultParameterFunction() throws Exception {