diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt index 820ee30493e..54861c1e1dd 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt @@ -176,9 +176,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { fun generate(klass: FirClass<*>): List { val propertyParametersCount = irClass.primaryConstructor?.explicitParameters?.size ?: 0 - val properties = irClass.declarations - .filterIsInstance() - .take(propertyParametersCount) + val properties = irClass.properties.filter { it.backingField != null }.take(propertyParametersCount).toList() if (properties.isEmpty()) { return emptyList() } 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 7977f9116d2..4d6313ba815 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 @@ -13246,6 +13246,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/delegation/inClassDeclaration.kt"); } + @Test + @TestMetadata("inDataClass.kt") + public void testInDataClass() throws Exception { + runTest("compiler/testData/codegen/box/delegation/inDataClass.kt"); + } + @Test @TestMetadata("kt8154.kt") public void testKt8154() throws Exception { diff --git a/compiler/testData/codegen/box/delegation/inDataClass.kt b/compiler/testData/codegen/box/delegation/inDataClass.kt new file mode 100644 index 00000000000..e52b44f4565 --- /dev/null +++ b/compiler/testData/codegen/box/delegation/inDataClass.kt @@ -0,0 +1,13 @@ +interface A { + fun foo(): String + val bar: String +} + +class B : A { + override fun foo(): String = "O" + override val bar: String get() = "K" +} + +data class C(val a: A): A by a + +fun box() = C(B()).let { it.foo() + it.bar } 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 448e0973027..30464e94d73 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 @@ -13246,6 +13246,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/delegation/inClassDeclaration.kt"); } + @Test + @TestMetadata("inDataClass.kt") + public void testInDataClass() throws Exception { + runTest("compiler/testData/codegen/box/delegation/inDataClass.kt"); + } + @Test @TestMetadata("kt8154.kt") public void testKt8154() throws Exception { 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 edbaaae964c..a3329a7ce93 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 @@ -13246,6 +13246,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/delegation/inClassDeclaration.kt"); } + @Test + @TestMetadata("inDataClass.kt") + public void testInDataClass() throws Exception { + runTest("compiler/testData/codegen/box/delegation/inDataClass.kt"); + } + @Test @TestMetadata("kt8154.kt") public void testKt8154() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 6207429a062..d0f36ee6b3d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -10823,6 +10823,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/delegation/inClassDeclaration.kt"); } + @TestMetadata("inDataClass.kt") + public void testInDataClass() throws Exception { + runTest("compiler/testData/codegen/box/delegation/inDataClass.kt"); + } + @TestMetadata("kt8154.kt") public void testKt8154() throws Exception { runTest("compiler/testData/codegen/box/delegation/kt8154.kt"); @@ -15528,11 +15533,6 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/funInterface/argumentResult.kt"); } - @TestMetadata("javaSam.kt") - public void ignoreJavaSam() throws Exception { - runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSam.kt"); - } - private void runTest(String testDataFilePath) throws Exception { KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); } @@ -15545,6 +15545,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes public void testArgumentIC() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/funInterface/argumentIC.kt"); } + + @TestMetadata("javaSam.kt") + public void testJavaSam() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/funInterface/javaSam.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 85b09dbe886..d5a20bee4e0 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -9641,6 +9641,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/delegation/hiddenSuperOverrideIn1.0.kt"); } + @TestMetadata("inDataClass.kt") + public void testInDataClass() throws Exception { + runTest("compiler/testData/codegen/box/delegation/inDataClass.kt"); + } + @TestMetadata("kt8154.kt") public void testKt8154() throws Exception { runTest("compiler/testData/codegen/box/delegation/kt8154.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index d2f2bec4e59..8b486048aaf 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -9098,6 +9098,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/delegation/hiddenSuperOverrideIn1.0.kt"); } + @TestMetadata("inDataClass.kt") + public void testInDataClass() throws Exception { + runTest("compiler/testData/codegen/box/delegation/inDataClass.kt"); + } + @TestMetadata("kt8154.kt") public void testKt8154() throws Exception { runTest("compiler/testData/codegen/box/delegation/kt8154.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 3dfad450998..6b4053e65b2 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -9098,6 +9098,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/delegation/hiddenSuperOverrideIn1.0.kt"); } + @TestMetadata("inDataClass.kt") + public void testInDataClass() throws Exception { + runTest("compiler/testData/codegen/box/delegation/inDataClass.kt"); + } + @TestMetadata("kt8154.kt") public void testKt8154() throws Exception { runTest("compiler/testData/codegen/box/delegation/kt8154.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 27d6248d0d7..16d925c73cc 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -4277,6 +4277,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/delegation/hiddenSuperOverrideIn1.0.kt"); } + @TestMetadata("inDataClass.kt") + public void testInDataClass() throws Exception { + runTest("compiler/testData/codegen/box/delegation/inDataClass.kt"); + } + @TestMetadata("kt8154.kt") public void testKt8154() throws Exception { runTest("compiler/testData/codegen/box/delegation/kt8154.kt");