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 e755641f1f4..1fcec1cea04 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 @@ -119,7 +119,11 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { (this.name == toStringName && matchesToStringSignature) fun generate(klass: FirClass<*>): List { - val properties = irClass.declarations.filterIsInstance().map { it.descriptor } + val propertyParametersCount = irClass.primaryConstructor?.explicitParameters?.size ?: 0 + val properties = irClass.declarations + .filterIsInstance() + .take(propertyParametersCount) + .map { it.descriptor } if (properties.isEmpty()) { return emptyList() } diff --git a/compiler/testData/codegen/box/secondaryConstructors/dataClasses.kt b/compiler/testData/codegen/box/secondaryConstructors/dataClasses.kt index 1ffe30657af..074508611b6 100644 --- a/compiler/testData/codegen/box/secondaryConstructors/dataClasses.kt +++ b/compiler/testData/codegen/box/secondaryConstructors/dataClasses.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR internal data class A1(val prop1: String) { val prop2: String = "const2" var prop3: String = ""