From 0bcde9dffcfa631f3b898f6dc6cfaf0c0ea8a66a Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Wed, 22 Jan 2020 13:02:40 +0300 Subject: [PATCH] IR API: Make IrEnumEntry.initializerExpression IrExpressionBody All non-declarations should be inside IrBody's now --- .../fir/backend/Fir2IrDeclarationStorage.kt | 2 +- .../ir/backend/js/lower/EnumClassLowering.kt | 2 +- .../backend/jvm/lower/EnumClassLowering.kt | 2 +- .../psi2ir/generators/ClassGenerator.kt | 4 +- .../kotlin/ir/declarations/IrEnumEntry.kt | 4 +- .../ir/declarations/impl/IrEnumEntryImpl.kt | 3 +- .../declarations/lazy/IrLazyEnumEntryImpl.kt | 4 +- .../serialization/IrFileDeserializer.kt | 2 +- .../common/serialization/IrFileSerializer.kt | 2 +- compiler/testData/ir/irText/classes/enum.txt | 58 +++++++++++-------- .../ir/irText/classes/enumClassModality.txt | 23 +++++--- .../irText/classes/enumWithMultipleCtors.txt | 13 +++-- .../irText/classes/enumWithSecondaryCtor.txt | 17 ++++-- .../enumEntriesWithAnnotations.txt | 6 +- .../enumsInAnnotationArguments.txt | 12 ++-- .../multiplatform/expectedEnumClass.txt | 9 ++- .../expressions/enumEntryAsReceiver.txt | 3 +- .../enumEntryReferenceFromEnumEntryClass.txt | 3 +- .../irText/expressions/objectAsCallable.txt | 3 +- .../temporaryInEnumEntryInitializer.txt | 29 +++++----- .../testData/ir/irText/expressions/values.txt | 3 +- .../ir/irText/singletons/enumEntry.txt | 3 +- 22 files changed, 125 insertions(+), 82 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index cea25b1150b..9c51ae30156 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -587,7 +587,7 @@ class Fir2IrDeclarationStorage( this.correspondingClass = klass } else if (irParent != null) { this.initializerExpression = - IrEnumConstructorCallImpl(startOffset, endOffset, irType, irParent.constructors.first().symbol) + IrExpressionBodyImpl(IrEnumConstructorCallImpl(startOffset, endOffset, irType, irParent.constructors.first().symbol)) } } } diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt index c3b526b0c46..4970e8b2d12 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt @@ -443,7 +443,7 @@ class EnumClassTransformer(val context: JsIrBackendContext, private val irClass: +irIfThen(irGetField(null, entryInstancesInitializedField), irReturnUnit()) +irSetField(null, entryInstancesInitializedField, irBoolean(true)) for ((entry, instanceField) in enumEntries.zip(entryInstances)) { - +irSetField(null, instanceField, entry.initializerExpression!!) + +irSetField(null, instanceField, entry.initializerExpression!!.expression) } }.also { // entry.initializerExpression can have local declarations diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt index e0136682106..e937314d3d3 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt @@ -81,7 +81,7 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP private fun buildEnumEntryField(enumEntry: IrEnumEntry): IrField = context.declarationFactory.getFieldForEnumEntry(enumEntry).apply { - initializer = IrExpressionBodyImpl(enumEntry.initializerExpression!!.patchDeclarationParents(this)) + initializer = IrExpressionBodyImpl(enumEntry.initializerExpression!!.expression.patchDeclarationParents(this)) annotations += enumEntry.annotations } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt index 0b8094bde64..041b4ba2965 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt @@ -462,8 +462,8 @@ class ClassGenerator( if (!enumEntryDescriptor.isExpect) { irEnumEntry.initializerExpression = - createBodyGenerator(irEnumEntry.symbol) - .generateEnumEntryInitializer(ktEnumEntry, enumEntryDescriptor) + IrExpressionBodyImpl(createBodyGenerator(irEnumEntry.symbol) + .generateEnumEntryInitializer(ktEnumEntry, enumEntryDescriptor)) } if (ktEnumEntry.hasMemberDeclarations()) { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt index 93252f854ff..e3aba16399a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrEnumEntry.kt @@ -17,13 +17,13 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol interface IrEnumEntry : IrSymbolDeclaration, IrDeclarationWithName { override val descriptor: ClassDescriptor var correspondingClass: IrClass? - var initializerExpression: IrExpression? + var initializerExpression: IrExpressionBody? } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt index afc2327e072..93f2ca984ce 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrEnumEntry import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor @@ -49,7 +50,7 @@ class IrEnumEntryImpl( override val descriptor: ClassDescriptor get() = symbol.descriptor override var correspondingClass: IrClass? = null - override var initializerExpression: IrExpression? = null + override var initializerExpression: IrExpressionBody? = null override fun accept(visitor: IrElementVisitor, data: D): R { return visitor.visitEnumEntry(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt index abbcb62389c..e5f121eae5f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyEnumEntryImpl.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrEnumEntry -import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator import org.jetbrains.kotlin.ir.util.TypeTranslator @@ -47,7 +47,7 @@ class IrLazyEnumEntryImpl( override var correspondingClass: IrClass? = null - override var initializerExpression: IrExpression? = null + override var initializerExpression: IrExpressionBody? = null override fun accept(visitor: IrElementVisitor, data: D): R { return visitor.visitEnumEntry(this, data) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt index c42f2274f02..15ab54ca9ff 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt @@ -1097,7 +1097,7 @@ abstract class IrFileDeserializer( if (proto.hasCorrespondingClass()) correspondingClass = deserializeIrClass(proto.correspondingClass) if (proto.hasInitializer()) - initializerExpression = deserializeExpressionBody(proto.initializer) + initializerExpression = IrExpressionBodyImpl(deserializeExpressionBody(proto.initializer)) (descriptor as? WrappedEnumEntryDescriptor)?.bind(this) } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt index e8480f67823..7504addc5d4 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt @@ -1231,7 +1231,7 @@ open class IrFileSerializer( .setName(serializeName(enumEntry.name)) enumEntry.initializerExpression?.let { - proto.initializer = serializeIrExpressionBody(it) + proto.initializer = serializeIrExpressionBody(it.expression) } enumEntry.correspondingClass?.let { proto.correspondingClass = serializeIrClass(it) diff --git a/compiler/testData/ir/irText/classes/enum.txt b/compiler/testData/ir/irText/classes/enum.txt index f9cef147024..352d4a3292c 100644 --- a/compiler/testData/ir/irText/classes/enum.txt +++ b/compiler/testData/ir/irText/classes/enum.txt @@ -7,9 +7,11 @@ FILE fqName: fileName:/enum.kt : .TestEnum1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum1 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum1>]' ENUM_ENTRY name:TEST1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum1' ENUM_ENTRY name:TEST2 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum1' FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.TestEnum1>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -77,14 +79,17 @@ FILE fqName: fileName:/enum.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .TestEnum2 declared in .TestEnum2.' type=.TestEnum2 origin=null ENUM_ENTRY name:TEST1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' - x: CONST Int type=kotlin.Int value=1 + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' + x: CONST Int type=kotlin.Int value=1 ENUM_ENTRY name:TEST2 - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' - x: CONST Int type=kotlin.Int value=2 + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' + x: CONST Int type=kotlin.Int value=2 ENUM_ENTRY name:TEST3 - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' - x: CONST Int type=kotlin.Int value=3 + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' + x: CONST Int type=kotlin.Int value=3 FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.TestEnum2>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -140,7 +145,8 @@ FILE fqName: fileName:/enum.kt : .TestEnum3 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum3 modality:ABSTRACT visibility:public superTypes:[kotlin.Enum<.TestEnum3>]' ENUM_ENTRY name:TEST - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum3.TEST' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum3.TEST' class: CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:public superTypes:[.TestEnum3] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum3.TEST CONSTRUCTOR visibility:private <> () returnType:.TestEnum3.TEST [primary] @@ -266,7 +272,8 @@ FILE fqName: fileName:/enum.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .TestEnum4 declared in .TestEnum4.' type=.TestEnum4 origin=null ENUM_ENTRY name:TEST1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum4.TEST1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum4.TEST1' class: CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:public superTypes:[.TestEnum4] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum4.TEST1 CONSTRUCTOR visibility:private <> () returnType:.TestEnum4.TEST1 [primary] @@ -331,7 +338,8 @@ FILE fqName: fileName:/enum.kt public open fun toString (): kotlin.String [fake_override] declared in .TestEnum4 $this: VALUE_PARAMETER name: type:kotlin.Enum<.TestEnum4> ENUM_ENTRY name:TEST2 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum4.TEST2' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum4.TEST2' class: CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:public superTypes:[.TestEnum4] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum4.TEST2 CONSTRUCTOR visibility:private <> () returnType:.TestEnum4.TEST2 [primary] @@ -481,12 +489,15 @@ FILE fqName: fileName:/enum.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .TestEnum5 declared in .TestEnum5.' type=.TestEnum5 origin=null ENUM_ENTRY name:TEST1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' ENUM_ENTRY name:TEST2 - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' ENUM_ENTRY name:TEST3 - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' - x: CONST Int type=kotlin.Int value=0 + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' + x: CONST Int type=kotlin.Int value=0 FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.TestEnum5>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -570,14 +581,15 @@ FILE fqName: fileName:/enum.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .TestEnum6 declared in .TestEnum6.' type=.TestEnum6 origin=null ENUM_ENTRY name:TEST - init: BLOCK type=.TestEnum6 origin=ARGUMENTS_REORDERING_FOR_CALL - VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Int [val] - CALL 'public final fun f (): kotlin.Int declared in ' type=kotlin.Int origin=null - VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Int [val] - CALL 'public final fun f (): kotlin.Int declared in ' type=kotlin.Int origin=null - ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int, y: kotlin.Int) [primary] declared in .TestEnum6' - x: GET_VAR 'val tmp_1: kotlin.Int [val] declared in .TestEnum6' type=kotlin.Int origin=null - y: GET_VAR 'val tmp_0: kotlin.Int [val] declared in .TestEnum6' type=kotlin.Int origin=null + init: EXPRESSION_BODY + BLOCK type=.TestEnum6 origin=ARGUMENTS_REORDERING_FOR_CALL + VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Int [val] + CALL 'public final fun f (): kotlin.Int declared in ' type=kotlin.Int origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Int [val] + CALL 'public final fun f (): kotlin.Int declared in ' type=kotlin.Int origin=null + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int, y: kotlin.Int) [primary] declared in .TestEnum6' + x: GET_VAR 'val tmp_1: kotlin.Int [val] declared in .TestEnum6' type=kotlin.Int origin=null + y: GET_VAR 'val tmp_0: kotlin.Int [val] declared in .TestEnum6' type=kotlin.Int origin=null FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.TestEnum6>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/classes/enumClassModality.txt b/compiler/testData/ir/irText/classes/enumClassModality.txt index 7910d5e9ab4..989c43bac2e 100644 --- a/compiler/testData/ir/irText/classes/enumClassModality.txt +++ b/compiler/testData/ir/irText/classes/enumClassModality.txt @@ -7,7 +7,8 @@ FILE fqName: fileName:/enumClassModality.kt : .TestFinalEnum1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestFinalEnum1 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestFinalEnum1>]' ENUM_ENTRY name:X1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestFinalEnum1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestFinalEnum1' FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.TestFinalEnum1>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -75,8 +76,9 @@ FILE fqName: fileName:/enumClassModality.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .TestFinalEnum2 declared in .TestFinalEnum2.' type=.TestFinalEnum2 origin=null ENUM_ENTRY name:X1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestFinalEnum2' - x: CONST Int type=kotlin.Int value=1 + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestFinalEnum2' + x: CONST Int type=kotlin.Int value=1 FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.TestFinalEnum2>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -132,7 +134,8 @@ FILE fqName: fileName:/enumClassModality.kt : .TestFinalEnum3 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestFinalEnum3 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestFinalEnum3>]' ENUM_ENTRY name:X1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestFinalEnum3' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestFinalEnum3' FUN name:doStuff visibility:public modality:FINAL <> ($this:.TestFinalEnum3) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.TestFinalEnum3 BLOCK_BODY @@ -191,7 +194,8 @@ FILE fqName: fileName:/enumClassModality.kt : .TestOpenEnum1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestOpenEnum1 modality:OPEN visibility:public superTypes:[kotlin.Enum<.TestOpenEnum1>]' ENUM_ENTRY name:X1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestOpenEnum1.X1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestOpenEnum1.X1' class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:public superTypes:[.TestOpenEnum1] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestOpenEnum1.X1 CONSTRUCTOR visibility:private <> () returnType:.TestOpenEnum1.X1 [primary] @@ -299,7 +303,8 @@ FILE fqName: fileName:/enumClassModality.kt : .TestOpenEnum2 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestOpenEnum2 modality:OPEN visibility:public superTypes:[kotlin.Enum<.TestOpenEnum2>]' ENUM_ENTRY name:X1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestOpenEnum2.X1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestOpenEnum2.X1' class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:public superTypes:[.TestOpenEnum2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestOpenEnum2.X1 CONSTRUCTOR visibility:private <> () returnType:.TestOpenEnum2.X1 [primary] @@ -412,7 +417,8 @@ FILE fqName: fileName:/enumClassModality.kt : .TestAbstractEnum1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestAbstractEnum1 modality:ABSTRACT visibility:public superTypes:[kotlin.Enum<.TestAbstractEnum1>]' ENUM_ENTRY name:X1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestAbstractEnum1.X1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestAbstractEnum1.X1' class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:public superTypes:[.TestAbstractEnum1] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestAbstractEnum1.X1 CONSTRUCTOR visibility:private <> () returnType:.TestAbstractEnum1.X1 [primary] @@ -541,7 +547,8 @@ FILE fqName: fileName:/enumClassModality.kt : .TestAbstractEnum2 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestAbstractEnum2 modality:ABSTRACT visibility:public superTypes:[kotlin.Enum<.TestAbstractEnum2>; .IFoo]' ENUM_ENTRY name:X1 - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestAbstractEnum2.X1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestAbstractEnum2.X1' class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:public superTypes:[.TestAbstractEnum2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestAbstractEnum2.X1 CONSTRUCTOR visibility:private <> () returnType:.TestAbstractEnum2.X1 [primary] diff --git a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.txt b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.txt index 0f6b100b1b2..7f14c8b09cb 100644 --- a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.txt +++ b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.txt @@ -2,10 +2,12 @@ FILE fqName: fileName:/enumWithMultipleCtors.kt CLASS ENUM_CLASS name:A modality:OPEN visibility:public superTypes:[kotlin.Enum<.A>] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A ENUM_ENTRY name:X - init: ENUM_CONSTRUCTOR_CALL 'private constructor (arg: kotlin.String) declared in .A' - arg: CONST String type=kotlin.String value="asd" + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (arg: kotlin.String) declared in .A' + arg: CONST String type=kotlin.String value="asd" ENUM_ENTRY name:Y - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .A.Y' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .A.Y' class: CLASS ENUM_ENTRY name:Y modality:FINAL visibility:public superTypes:[.A] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A.Y CONSTRUCTOR visibility:private <> () returnType:.A.Y [primary] @@ -90,8 +92,9 @@ FILE fqName: fileName:/enumWithMultipleCtors.kt public open fun toString (): kotlin.String [fake_override] declared in .A $this: VALUE_PARAMETER name: type:kotlin.Enum<.A> ENUM_ENTRY name:Z - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) declared in .A' - x: CONST Int type=kotlin.Int value=5 + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) declared in .A' + x: CONST Int type=kotlin.Int value=5 PROPERTY name:prop1 visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:prop1 type:kotlin.String visibility:private [final] FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.A) returnType:kotlin.String diff --git a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.txt b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.txt index d59344ee031..fdbb2bb484e 100644 --- a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.txt +++ b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.txt @@ -19,7 +19,8 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .Test0 declared in .Test0.' type=.Test0 origin=null ENUM_ENTRY name:ZERO - init: ENUM_CONSTRUCTOR_CALL 'private constructor () declared in .Test0' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () declared in .Test0' CONSTRUCTOR visibility:private <> () returnType:.Test0 BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .Test0' @@ -91,10 +92,12 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .Test1 declared in .Test1.' type=.Test1 origin=null ENUM_ENTRY name:ZERO - init: ENUM_CONSTRUCTOR_CALL 'private constructor () declared in .Test1' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () declared in .Test1' ENUM_ENTRY name:ONE - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .Test1' - x: CONST Int type=kotlin.Int value=1 + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .Test1' + x: CONST Int type=kotlin.Int value=1 CONSTRUCTOR visibility:private <> () returnType:.Test1 BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .Test1' @@ -166,7 +169,8 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .Test2 declared in .Test2.' type=.Test2 origin=null ENUM_ENTRY name:ZERO - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Test2.ZERO' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Test2.ZERO' class: CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:public superTypes:[.Test2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Test2.ZERO CONSTRUCTOR visibility:private <> () returnType:.Test2.ZERO [primary] @@ -230,7 +234,8 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt public open fun toString (): kotlin.String [fake_override] declared in .Test2 $this: VALUE_PARAMETER name: type:kotlin.Enum<.Test2> ENUM_ENTRY name:ONE - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Test2.ONE' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Test2.ONE' class: CLASS ENUM_ENTRY name:ONE modality:FINAL visibility:public superTypes:[.Test2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Test2.ONE CONSTRUCTOR visibility:private <> () returnType:.Test2.ONE [primary] diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.txt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.txt index 103cc4ee210..9473a42b89b 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.txt @@ -37,11 +37,13 @@ FILE fqName: fileName:/enumEntriesWithAnnotations.kt ENUM_ENTRY name:ENTRY1 annotations: TestAnn(x = 'ENTRY1') - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum' ENUM_ENTRY name:ENTRY2 annotations: TestAnn(x = 'ENTRY2') - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum.ENTRY2' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum.ENTRY2' class: CLASS ENUM_ENTRY name:ENTRY2 modality:FINAL visibility:public superTypes:[.TestEnum] annotations: TestAnn(x = 'ENTRY2') diff --git a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.txt b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.txt index 75cbeef8ee4..bff9a395a54 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.txt @@ -7,13 +7,17 @@ FILE fqName: fileName:/enumsInAnnotationArguments.kt : .En INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:En modality:FINAL visibility:public superTypes:[kotlin.Enum<.En>]' ENUM_ENTRY name:A - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' ENUM_ENTRY name:B - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' ENUM_ENTRY name:C - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' ENUM_ENTRY name:D - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.En>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.txt b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.txt index 26981ff530c..c65b3ef91fd 100644 --- a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.txt +++ b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.txt @@ -58,11 +58,14 @@ FILE fqName: fileName:/expectedEnumClass.kt : .MyEnum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:MyEnum modality:FINAL visibility:public superTypes:[kotlin.Enum<.MyEnum>]' ENUM_ENTRY name:FOO - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' ENUM_ENTRY name:BAR - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' ENUM_ENTRY name:BAZ - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.MyEnum>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.txt b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.txt index a3da659f078..84339b2e7f3 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.txt @@ -7,7 +7,8 @@ FILE fqName: fileName:/enumEntryAsReceiver.kt : .X INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:X modality:ABSTRACT visibility:public superTypes:[kotlin.Enum<.X>]' ENUM_ENTRY name:B - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .X.B' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .X.B' class: CLASS ENUM_ENTRY name:B modality:FINAL visibility:public superTypes:[.X] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.X.B CONSTRUCTOR visibility:private <> () returnType:.X.B [primary] diff --git a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.txt b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.txt index e6437d452f4..2ac339aa3ba 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.txt @@ -7,7 +7,8 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt : .MyEnum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:MyEnum modality:OPEN visibility:public superTypes:[kotlin.Enum<.MyEnum>]' ENUM_ENTRY name:Z - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum.Z' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum.Z' class: CLASS ENUM_ENTRY name:Z modality:FINAL visibility:public superTypes:[.MyEnum] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.MyEnum.Z CONSTRUCTOR visibility:private <> () returnType:.MyEnum.Z [primary] diff --git a/compiler/testData/ir/irText/expressions/objectAsCallable.txt b/compiler/testData/ir/irText/expressions/objectAsCallable.txt index bbaa92d02bd..3d1d2bf1e04 100644 --- a/compiler/testData/ir/irText/expressions/objectAsCallable.txt +++ b/compiler/testData/ir/irText/expressions/objectAsCallable.txt @@ -26,7 +26,8 @@ FILE fqName: fileName:/objectAsCallable.kt : .En INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:En modality:FINAL visibility:public superTypes:[kotlin.Enum<.En>]' ENUM_ENTRY name:X - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.En>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.txt b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.txt index fdf2870d484..fa90fef9b08 100644 --- a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.txt +++ b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.txt @@ -28,20 +28,21 @@ FILE fqName: fileName:/temporaryInEnumEntryInitializer.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.String? visibility:private [final]' type=kotlin.String? origin=null receiver: GET_VAR ': .En declared in .En.' type=.En origin=null ENUM_ENTRY name:ENTRY - init: ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.String?) [primary] declared in .En' - x: BLOCK type=kotlin.String? origin=SAFE_CALL - VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Any? [val] - CALL 'public final fun (): kotlin.Any? declared in ' type=kotlin.Any? origin=GET_PROPERTY - WHEN type=kotlin.String? origin=null - BRANCH - if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ - arg0: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in .En' type=kotlin.Any? origin=null - arg1: CONST Null type=kotlin.Nothing? value=null - then: CONST Null type=kotlin.Nothing? value=null - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'public open fun toString (): kotlin.String declared in kotlin.Any' type=kotlin.String origin=null - $this: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in .En' type=kotlin.Any? origin=null + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.String?) [primary] declared in .En' + x: BLOCK type=kotlin.String? origin=SAFE_CALL + VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Any? [val] + CALL 'public final fun (): kotlin.Any? declared in ' type=kotlin.Any? origin=GET_PROPERTY + WHEN type=kotlin.String? origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in .En' type=kotlin.Any? origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CONST Null type=kotlin.Nothing? value=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public open fun toString (): kotlin.String declared in kotlin.Any' type=kotlin.String origin=null + $this: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in .En' type=kotlin.Any? origin=null FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.En>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/expressions/values.txt b/compiler/testData/ir/irText/expressions/values.txt index b3d5246308f..f3a3e2c02e4 100644 --- a/compiler/testData/ir/irText/expressions/values.txt +++ b/compiler/testData/ir/irText/expressions/values.txt @@ -7,7 +7,8 @@ FILE fqName: fileName:/values.kt : .Enum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:Enum modality:FINAL visibility:public superTypes:[kotlin.Enum<.Enum>]' ENUM_ENTRY name:A - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Enum' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Enum' FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<.Enum>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/singletons/enumEntry.txt b/compiler/testData/ir/irText/singletons/enumEntry.txt index bc61c47a1d7..a22eadbcae7 100644 --- a/compiler/testData/ir/irText/singletons/enumEntry.txt +++ b/compiler/testData/ir/irText/singletons/enumEntry.txt @@ -7,7 +7,8 @@ FILE fqName: fileName:/enumEntry.kt : .Z INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:Z modality:OPEN visibility:public superTypes:[kotlin.Enum<.Z>]' ENUM_ENTRY name:ENTRY - init: ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Z.ENTRY' + init: EXPRESSION_BODY + ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Z.ENTRY' class: CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:public superTypes:[.Z] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Z.ENTRY CONSTRUCTOR visibility:private <> () returnType:.Z.ENTRY [primary]