From 09f9e767ede52fc47e55415fe1f06c2c2e0cc39a Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 23 Apr 2020 13:33:48 +0300 Subject: [PATCH] [FIR2IR] Slightly refactor DataClassMembersGenerator --- .../generators/DataClassMembersGenerator.kt | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) 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 031f60f7366..176626fb7ad 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 @@ -32,23 +32,17 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { // TODO: generateInlineClassMembers fun generateDataClassMembers(klass: FirClass<*>, irClass: IrClass): List = - MyDataClassMethodsGenerator(klass, irClass, IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER).generate() + MyDataClassMethodsGenerator(irClass, IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER).generate(klass) fun generateDataClassComponentBody(irFunction: IrFunction) = - MyDataClassMethodsGenerator(null, irFunction.parentAsClass, IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER) + MyDataClassMethodsGenerator(irFunction.parentAsClass, IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER) .generateComponentBody(irFunction) fun generateDataClassCopyBody(irFunction: IrFunction) = - MyDataClassMethodsGenerator(null, irFunction.parentAsClass, IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER) + MyDataClassMethodsGenerator(irFunction.parentAsClass, IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER) .generateCopyBody(irFunction) - private inner class MyDataClassMethodsGenerator( - val klass: FirClass<*>?, - val irClass: IrClass, - val origin: IrDeclarationOrigin - ) { - val properties = irClass.declarations.filterIsInstance().map { it.descriptor } - + private inner class MyDataClassMethodsGenerator(val irClass: IrClass, val origin: IrDeclarationOrigin) { private val irDataClassMembersGenerator = object : DataClassMembersGenerator( IrGeneratorContextBase(components.irBuiltIns), components.symbolTable, @@ -110,8 +104,9 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { (this.name == hashCodeName && matchesHashCodeSignature) || (this.name == toStringName && matchesToStringSignature) - fun generate(): List { - if (properties.isEmpty() || klass == null) { + fun generate(klass: FirClass<*>): List { + val properties = irClass.declarations.filterIsInstance().map { it.descriptor } + if (properties.isEmpty()) { return emptyList() }