From b1e9dbf994a6b8af80740058f18f3f9a86c23416 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 19 Feb 2020 13:32:49 +0300 Subject: [PATCH] [FIR] Use super as delegated calls in enum constructors --- .../kotlin/fir/backend/Fir2IrVisitor.kt | 10 +++++++-- .../converter/DeclarationsConverter.kt | 3 ++- .../kotlin/fir/builder/RawFirBuilder.kt | 3 ++- .../rawBuilder/declarations/annotation.txt | 2 +- .../declarations/constructorInObject.txt | 2 +- .../rawBuilder/declarations/enums.txt | 4 ++-- .../rawBuilder/declarations/enums2.txt | 2 +- .../kotlin/fir/resolve/calls/ResolverParts.kt | 5 +++++ .../fir/resolve/testData/resolve/enum.txt | 2 +- .../testData/resolve/enumWithCompanion.txt | 2 +- .../resolve/exhaustiveWhenAndFlexibleType.txt | 2 +- .../testData/resolve/exhaustiveness_enum.txt | 2 +- .../resolve/expresssions/enumEntryUse.txt | 2 +- .../resolve/expresssions/enumValues.txt | 2 +- .../expresssions/qualifiedExpressions.txt | 2 +- .../expresssions/qualifierPriority.txt | 2 +- .../testData/resolve/fromBuilder/enums.txt | 4 ++-- .../kotlin/fir/types/FirTypeUtils.kt | 1 + .../tests/enum/enumInheritance.fir.kt | 2 +- .../tests/secondaryConstructors/enums.fir.kt | 4 ++-- .../ir/irText/classes/classes.fir.txt | 3 ++- .../testData/ir/irText/classes/enum.fir.txt | 18 ++++++++++------ .../irText/classes/enumClassModality.fir.txt | 21 ++++++++++++------- .../classes/enumWithMultipleCtors.fir.txt | 6 ++++-- .../classes/enumWithSecondaryCtor.fir.txt | 9 +++++--- .../classesWithAnnotations.fir.txt | 3 ++- .../enumEntriesWithAnnotations.fir.txt | 3 ++- .../enumsInAnnotationArguments.fir.txt | 3 ++- .../multiplatform/expectedEnumClass.fir.txt | 6 ++++-- .../expressions/enumEntryAsReceiver.fir.txt | 3 ++- ...umEntryReferenceFromEnumEntryClass.fir.txt | 3 ++- .../expressions/objectAsCallable.fir.txt | 3 ++- .../temporaryInEnumEntryInitializer.fir.txt | 3 ++- .../ir/irText/expressions/values.fir.txt | 3 ++- .../ir/irText/singletons/enumEntry.fir.txt | 3 ++- 35 files changed, 96 insertions(+), 52 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index 59cedd5024a..dc8aa136fb8 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -410,12 +410,18 @@ class Fir2IrVisitor( ?: return null return convertWithOffsets { startOffset, endOffset -> val irConstructorSymbol = declarationStorage.getIrFunctionSymbol(constructorSymbol) as IrConstructorSymbol - if (constructorSymbol.fir.isFromEnumClass) { + if (constructorSymbol.fir.isFromEnumClass || constructorSymbol.fir.returnTypeRef.isEnum) { IrEnumConstructorCallImpl( startOffset, endOffset, constructedIrType, irConstructorSymbol - ) + ).apply { + val typeArguments = (constructedTypeRef as? FirResolvedTypeRef)?.type?.typeArguments + if (typeArguments?.isNotEmpty() == true) { + val irType = (typeArguments.first() as ConeTypedProjection).type.toIrType(session, declarationStorage, irBuiltIns) + putTypeArgument(0, irType) + } + } } else { IrDelegatingConstructorCallImpl( startOffset, endOffset, diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt index e98bc85186f..4dfde50464b 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt @@ -398,13 +398,14 @@ class DeclarationsConverter( when { modifiers.isEnum() && (classKind == ClassKind.ENUM_CLASS) -> { - superTypeRefs += buildResolvedTypeRef { + delegatedSuperTypeRef = buildResolvedTypeRef { type = ConeClassLikeTypeImpl( implicitEnumType.type.lookupTag, arrayOf(selfType.coneTypeUnsafe()), isNullable = false ) } + superTypeRefs += delegatedSuperTypeRef!! } modifiers.isAnnotation() && (classKind == ClassKind.ANNOTATION_CLASS) -> { superTypeRefs += implicitAnnotationType diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index d64fb9ea3cf..cc877668cae 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -408,13 +408,14 @@ class RawFirBuilder( * for correct resolve of super constructor call or just call kotlin.Any constructor * and convert it to right call at backend, because of it doesn't affects frontend work */ - container.superTypeRefs += buildResolvedTypeRef { + delegatedSuperTypeRef = buildResolvedTypeRef { type = ConeClassLikeTypeImpl( implicitEnumType.type.lookupTag, delegatedSelfTypeRef?.coneTypeUnsafe()?.let { arrayOf(it) } ?: emptyArray(), isNullable = false, ) } + container.superTypeRefs += delegatedSuperTypeRef } this is KtClass && classKind == ClassKind.ANNOTATION_CLASS -> { container.superTypeRefs += implicitAnnotationType diff --git a/compiler/fir/psi2fir/testData/rawBuilder/declarations/annotation.txt b/compiler/fir/psi2fir/testData/rawBuilder/declarations/annotation.txt index dc52381ab2e..c54322b0ee3 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/declarations/annotation.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/declarations/annotation.txt @@ -26,7 +26,7 @@ FILE: annotation.kt } @base() public? final? enum class My : R|kotlin/Enum| { private constructor(): R|My| { - super() + super|>() } public final static enum entry FIRST: R|My| = @base() object : R|My| { diff --git a/compiler/fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.txt b/compiler/fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.txt index 094cf57b73c..64e9e3b656c 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.txt @@ -10,7 +10,7 @@ FILE: constructorInObject.kt } public? final? enum class B : R|kotlin/Enum| { private constructor(): R|B| { - super() + super|>() } public final static enum entry X: R|B| = object : R|B| { diff --git a/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums.txt b/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums.txt index 490ddb75c70..38dcb3f06c1 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums.txt @@ -1,7 +1,7 @@ FILE: enums.kt public? final? enum class Order : R|kotlin/Enum| { private constructor(): R|Order| { - super() + super|>() } public final static enum entry FIRST: R|Order| = object : R|Order| { @@ -34,7 +34,7 @@ FILE: enums.kt } public? final? enum class Planet : R|kotlin/Enum| { public? constructor(m: Double, r: Double): R|Planet| { - super() + super|>() } public? final? val m: Double = R|/m| diff --git a/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums2.txt b/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums2.txt index 3ab74c467b0..551f18ea322 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums2.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums2.txt @@ -15,7 +15,7 @@ FILE: enums2.kt } public? final? enum class SomeEnum : R|kotlin/Enum| { public? constructor(x: Some): R|SomeEnum| { - super() + super|>() } public? final? val x: Some = R|/x| diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolverParts.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolverParts.kt index d7f57710e4e..7167b297eab 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolverParts.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolverParts.kt @@ -157,6 +157,11 @@ internal object MapArguments : ResolutionStage() { override suspend fun check(candidate: Candidate, sink: CheckerSink, callInfo: CallInfo) { val symbol = candidate.symbol as? FirFunctionSymbol<*> ?: return sink.reportApplicability(CandidateApplicability.HIDDEN) val function = symbol.fir + if (function is FirConstructor && function.returnTypeRef.isEnum) { + // NB: we do not check kotlin.Enum constructor calls, because we do not pass arguments there + candidate.argumentMapping = mapOf() + return + } val mapping = mapArguments(callInfo.arguments, function) val argumentToParameterMapping = mutableMapOf() diff --git a/compiler/fir/resolve/testData/resolve/enum.txt b/compiler/fir/resolve/testData/resolve/enum.txt index a692ab9d30c..25b656fcb0f 100644 --- a/compiler/fir/resolve/testData/resolve/enum.txt +++ b/compiler/fir/resolve/testData/resolve/enum.txt @@ -15,7 +15,7 @@ FILE: enum.kt } public final enum class SomeEnum : R|kotlin/Enum| { private constructor(x: R|Some|): R|SomeEnum| { - super() + super|>() } public final val x: R|Some| = R|/x| diff --git a/compiler/fir/resolve/testData/resolve/enumWithCompanion.txt b/compiler/fir/resolve/testData/resolve/enumWithCompanion.txt index 894b2551c7d..46559175839 100644 --- a/compiler/fir/resolve/testData/resolve/enumWithCompanion.txt +++ b/compiler/fir/resolve/testData/resolve/enumWithCompanion.txt @@ -1,7 +1,7 @@ FILE: enumWithCompanion.kt public final enum class EC : R|kotlin/Enum| { private constructor(): R|EC| { - super() + super|>() } public final static enum entry A: R|EC| = object : R|EC| { diff --git a/compiler/fir/resolve/testData/resolve/exhaustiveWhenAndFlexibleType.txt b/compiler/fir/resolve/testData/resolve/exhaustiveWhenAndFlexibleType.txt index 748a3b7605e..d445769fc6c 100644 --- a/compiler/fir/resolve/testData/resolve/exhaustiveWhenAndFlexibleType.txt +++ b/compiler/fir/resolve/testData/resolve/exhaustiveWhenAndFlexibleType.txt @@ -1,7 +1,7 @@ FILE: main.kt public final enum class E : R|kotlin/Enum| { private constructor(): R|E| { - super() + super|>() } public final static enum entry A: R|E| = object : R|E| { diff --git a/compiler/fir/resolve/testData/resolve/exhaustiveness_enum.txt b/compiler/fir/resolve/testData/resolve/exhaustiveness_enum.txt index 96e665da8e0..ceb55382f58 100644 --- a/compiler/fir/resolve/testData/resolve/exhaustiveness_enum.txt +++ b/compiler/fir/resolve/testData/resolve/exhaustiveness_enum.txt @@ -1,7 +1,7 @@ FILE: exhaustiveness_enum.kt public final enum class Enum : R|kotlin/Enum| { private constructor(): R|Enum| { - super() + super|>() } public final static enum entry A: R|Enum| = object : R|Enum| { diff --git a/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.txt b/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.txt index c252b96cbbf..87a1c7b4306 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.txt @@ -1,7 +1,7 @@ FILE: enumEntryUse.kt public final enum class TestEnum : R|kotlin/Enum| { private constructor(): R|TestEnum| { - super() + super|>() } public final static enum entry FIRST: R|TestEnum| = object : R|TestEnum| { diff --git a/compiler/fir/resolve/testData/resolve/expresssions/enumValues.txt b/compiler/fir/resolve/testData/resolve/expresssions/enumValues.txt index 151384a9afa..8130ce0313a 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/enumValues.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/enumValues.txt @@ -1,7 +1,7 @@ FILE: enumValues.kt public final enum class MyEnum : R|kotlin/Enum| { private constructor(): R|MyEnum| { - super() + super|>() } public final static enum entry FIRST: R|MyEnum| = object : R|MyEnum| { diff --git a/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt b/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt index 56ad1dcccd0..48039858658 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt @@ -30,7 +30,7 @@ FILE: qualifiedExpressions.kt } public final enum class E : R|kotlin/Enum| { private constructor(): R|a/b/E| { - super() + super|>() } public final static enum entry entry: R|a/b/E| = object : R|a/b/E| { diff --git a/compiler/fir/resolve/testData/resolve/expresssions/qualifierPriority.txt b/compiler/fir/resolve/testData/resolve/expresssions/qualifierPriority.txt index ab83057756a..f28896266ab 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/qualifierPriority.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/qualifierPriority.txt @@ -63,7 +63,7 @@ FILE: qualifierPriority.kt public get(): R|kotlin/Unit| public final enum class G : R|kotlin/Enum| { private constructor(): R|G| { - super() + super|>() } public final static enum entry H: R|G| = object : R|G| { diff --git a/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt b/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt index b998d7178f2..103ac138020 100644 --- a/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt +++ b/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt @@ -1,7 +1,7 @@ FILE: enums.kt public final enum class Order : R|kotlin/Enum| { private constructor(): R|Order| { - super() + super|>() } public final static enum entry FIRST: R|Order| = object : R|Order| { @@ -34,7 +34,7 @@ FILE: enums.kt } public final enum class Planet : R|kotlin/Enum| { private constructor(m: R|kotlin/Double|, r: R|kotlin/Double|): R|Planet| { - super() + super|>() } public final val m: R|kotlin/Double| = R|/m| diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt index bab7127700b..4f3eb162a8d 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt @@ -21,6 +21,7 @@ val FirTypeRef.isNothing: Boolean get() = isBuiltinType(StandardClassIds.Nothing val FirTypeRef.isNullableNothing: Boolean get() = isBuiltinType(StandardClassIds.Nothing, true) val FirTypeRef.isUnit: Boolean get() = isBuiltinType(StandardClassIds.Unit, false) val FirTypeRef.isBoolean: Boolean get() = isBuiltinType(StandardClassIds.Boolean, false) +val FirTypeRef.isEnum: Boolean get() = isBuiltinType(StandardClassIds.Enum, false) private fun FirTypeRef.isBuiltinType(classId: ClassId, isNullable: Boolean): Boolean { val type = when (this) { diff --git a/compiler/testData/diagnostics/tests/enum/enumInheritance.fir.kt b/compiler/testData/diagnostics/tests/enum/enumInheritance.fir.kt index 2da6449c35f..858bc23515a 100644 --- a/compiler/testData/diagnostics/tests/enum/enumInheritance.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/enumInheritance.fir.kt @@ -1,7 +1,7 @@ // FILE: test.kt enum class MyEnum(): MyClass() {} enum class MyEnum2(): MyTrait {} -enum class MyEnum3(): MyEnumBase() {} +enum class MyEnum3(): MyEnumBase() {} open class MyClass() {} diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/enums.fir.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/enums.fir.kt index b8e60603d80..1dc6540dd7a 100644 --- a/compiler/testData/diagnostics/tests/secondaryConstructors/enums.fir.kt +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/enums.fir.kt @@ -6,7 +6,7 @@ enum class A { constructor(x: Int) constructor(x: Int, y: Int): this(x+y) constructor(x: Double): this(x.toInt(), 1) - constructor(x: String): super(x, 1) + constructor(x: String): super(x, 1) } enum class B(x: Int) { @@ -14,7 +14,7 @@ enum class B(x: Int) { constructor(x: Int, y: Int): this(x+y) constructor(x: Double): this(x.toInt(), 1) - constructor(x: String): super(x, 1) + constructor(x: String): super(x, 1) } enum class C { diff --git a/compiler/testData/ir/irText/classes/classes.fir.txt b/compiler/testData/ir/irText/classes/classes.fir.txt index c0eeca614c0..bb1b4390521 100644 --- a/compiler/testData/ir/irText/classes/classes.fir.txt +++ b/compiler/testData/ir/irText/classes/classes.fir.txt @@ -72,7 +72,8 @@ FILE fqName: fileName:/classes.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnumClass CONSTRUCTOR visibility:private <> () returnType:.TestEnumClass [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnumClass INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnumClass modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnumClass>]' FUN name:values visibility:public modality:FINAL <> ($this:.TestEnumClass) returnType:kotlin.Array<.TestEnumClass> $this: VALUE_PARAMETER name: type:.TestEnumClass diff --git a/compiler/testData/ir/irText/classes/enum.fir.txt b/compiler/testData/ir/irText/classes/enum.fir.txt index dca78b69b01..6be05a07282 100644 --- a/compiler/testData/ir/irText/classes/enum.fir.txt +++ b/compiler/testData/ir/irText/classes/enum.fir.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/enum.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum1 CONSTRUCTOR visibility:private <> () returnType:.TestEnum1 [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnum1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum1 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum1>]' ENUM_ENTRY name:TEST1 class: CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[.TestEnum1] @@ -65,7 +66,8 @@ FILE fqName: fileName:/enum.kt CONSTRUCTOR visibility:private <> (x:kotlin.Int) returnType:.TestEnum2 [primary] VALUE_PARAMETER name:x index:0 type:kotlin.Int BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnum2 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum2 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum2>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] @@ -147,7 +149,8 @@ FILE fqName: fileName:/enum.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum3 CONSTRUCTOR visibility:private <> () returnType:.TestEnum3 [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnum3 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum3 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum3>]' ENUM_ENTRY name:TEST class: CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[.TestEnum3] @@ -209,7 +212,8 @@ FILE fqName: fileName:/enum.kt CONSTRUCTOR visibility:private <> (x:kotlin.Int) returnType:.TestEnum4 [primary] VALUE_PARAMETER name:x index:0 type:kotlin.Int BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnum4 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum4 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum4>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] @@ -312,7 +316,8 @@ FILE fqName: fileName:/enum.kt EXPRESSION_BODY CONST Int type=kotlin.Int value=0 BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnum5 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum5 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum5>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] @@ -398,7 +403,8 @@ FILE fqName: fileName:/enum.kt VALUE_PARAMETER name:x index:0 type:kotlin.Int VALUE_PARAMETER name:y index:1 type:kotlin.Int BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnum6 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum6 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum6>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] diff --git a/compiler/testData/ir/irText/classes/enumClassModality.fir.txt b/compiler/testData/ir/irText/classes/enumClassModality.fir.txt index f6d8c9ab4d3..34959cfe1de 100644 --- a/compiler/testData/ir/irText/classes/enumClassModality.fir.txt +++ b/compiler/testData/ir/irText/classes/enumClassModality.fir.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/enumClassModality.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestFinalEnum1 CONSTRUCTOR visibility:private <> () returnType:.TestFinalEnum1 [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestFinalEnum1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestFinalEnum1 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestFinalEnum1>]' ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestFinalEnum1] @@ -58,7 +59,8 @@ FILE fqName: fileName:/enumClassModality.kt CONSTRUCTOR visibility:private <> (x:kotlin.Int) returnType:.TestFinalEnum2 [primary] VALUE_PARAMETER name:x index:0 type:kotlin.Int BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestFinalEnum2 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestFinalEnum2 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestFinalEnum2>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] @@ -124,7 +126,8 @@ FILE fqName: fileName:/enumClassModality.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestFinalEnum3 CONSTRUCTOR visibility:private <> () returnType:.TestFinalEnum3 [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestFinalEnum3 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestFinalEnum3 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestFinalEnum3>]' ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestFinalEnum3] @@ -181,7 +184,8 @@ FILE fqName: fileName:/enumClassModality.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestOpenEnum1 CONSTRUCTOR visibility:private <> () returnType:.TestOpenEnum1 [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestOpenEnum1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestOpenEnum1 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestOpenEnum1>]' ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestOpenEnum1] @@ -240,7 +244,8 @@ FILE fqName: fileName:/enumClassModality.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestOpenEnum2 CONSTRUCTOR visibility:private <> () returnType:.TestOpenEnum2 [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestOpenEnum2 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestOpenEnum2 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestOpenEnum2>]' ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestOpenEnum2] @@ -300,7 +305,8 @@ FILE fqName: fileName:/enumClassModality.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestAbstractEnum1 CONSTRUCTOR visibility:private <> () returnType:.TestAbstractEnum1 [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestAbstractEnum1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestAbstractEnum1 modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestAbstractEnum1>]' ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestAbstractEnum1] @@ -376,7 +382,8 @@ FILE fqName: fileName:/enumClassModality.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestAbstractEnum2 CONSTRUCTOR visibility:private <> () returnType:.TestAbstractEnum2 [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestAbstractEnum2 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestAbstractEnum2 modality:FINAL visibility:public superTypes:[.IFoo; kotlin.Enum<.TestAbstractEnum2>]' ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestAbstractEnum2] diff --git a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt index 8f9b6ae48a2..0422cdd14d8 100644 --- a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt +++ b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt @@ -77,7 +77,8 @@ FILE fqName: fileName:/enumWithMultipleCtors.kt SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:prop1 type:kotlin.String visibility:private [final]' type=kotlin.Unit origin=null receiver: GET_VAR ': .A declared in .A' type=.A origin=null value: GET_VAR 'arg: kotlin.String declared in .A.' type=kotlin.String origin=null - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .A INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Enum<.A>]' CONSTRUCTOR visibility:private <> () returnType:.A BLOCK_BODY @@ -87,7 +88,8 @@ FILE fqName: fileName:/enumWithMultipleCtors.kt SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:prop3 type:kotlin.String visibility:private' type=kotlin.Unit origin=null receiver: GET_VAR ': .A declared in .A' type=.A origin=null value: CONST String type=kotlin.String value="empty" - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .A INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Enum<.A>]' CONSTRUCTOR visibility:private <> (x:kotlin.Int) returnType:.A VALUE_PARAMETER name:x index:0 type:kotlin.Int diff --git a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt index e40534a2221..66df5a2dc04 100644 --- a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt +++ b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt @@ -4,7 +4,8 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt CONSTRUCTOR visibility:private <> (x:kotlin.Int) returnType:.Test0 [primary] VALUE_PARAMETER name:x index:0 type:kotlin.Int BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .Test0 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:Test0 modality:FINAL visibility:public superTypes:[kotlin.Enum<.Test0>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] @@ -74,7 +75,8 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt CONSTRUCTOR visibility:private <> (x:kotlin.Int) returnType:.Test1 [primary] VALUE_PARAMETER name:x index:0 type:kotlin.Int BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .Test1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:Test1 modality:FINAL visibility:public superTypes:[kotlin.Enum<.Test1>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] @@ -152,7 +154,8 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt CONSTRUCTOR visibility:private <> (x:kotlin.Int) returnType:.Test2 [primary] VALUE_PARAMETER name:x index:0 type:kotlin.Int BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .Test2 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:Test2 modality:FINAL visibility:public superTypes:[kotlin.Enum<.Test2>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final] diff --git a/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt b/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt index 1443911655b..99b63b693ae 100644 --- a/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt @@ -132,7 +132,8 @@ FILE fqName: fileName:/classesWithAnnotations.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum CONSTRUCTOR visibility:private <> () returnType:.TestEnum [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum>]' FUN name:values visibility:public modality:FINAL <> ($this:.TestEnum) returnType:kotlin.Array<.TestEnum> $this: VALUE_PARAMETER name: type:.TestEnum diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt index 4e7affc6071..4617ca2ca18 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt @@ -31,7 +31,8 @@ FILE fqName: fileName:/enumEntriesWithAnnotations.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum CONSTRUCTOR visibility:private <> () returnType:.TestEnum [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .TestEnum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum modality:FINAL visibility:public superTypes:[kotlin.Enum<.TestEnum>]' ENUM_ENTRY name:ENTRY1 class: CLASS ENUM_ENTRY name:ENTRY1 modality:FINAL visibility:private superTypes:[.TestEnum] diff --git a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt index febc1df57c1..3900d869d44 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/enumsInAnnotationArguments.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.En CONSTRUCTOR visibility:private <> () returnType:.En [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .En INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:En modality:FINAL visibility:public superTypes:[kotlin.Enum<.En>]' ENUM_ENTRY name:A class: CLASS ENUM_ENTRY name:A modality:FINAL visibility:private superTypes:[.En] diff --git a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt index 42dbc3fe3df..c883ff4af21 100644 --- a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt +++ b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/expectedEnumClass.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.MyEnum CONSTRUCTOR visibility:private <> () returnType:.MyEnum [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .MyEnum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:MyEnum modality:FINAL visibility:public [expect] superTypes:[kotlin.Enum<.MyEnum>]' ENUM_ENTRY name:FOO class: CLASS ENUM_ENTRY name:FOO modality:FINAL visibility:private superTypes:[.MyEnum] @@ -64,7 +65,8 @@ FILE fqName: fileName:/expectedEnumClass.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.MyEnum CONSTRUCTOR visibility:private <> () returnType:.MyEnum [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .MyEnum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:MyEnum modality:FINAL visibility:public superTypes:[kotlin.Enum<.MyEnum>]' ENUM_ENTRY name:FOO class: CLASS ENUM_ENTRY name:FOO modality:FINAL visibility:private superTypes:[.MyEnum] diff --git a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt index 10a0bfeb53c..a2b858760da 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/enumEntryAsReceiver.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.X CONSTRUCTOR visibility:private <> () returnType:.X [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .X INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:X modality:FINAL visibility:public superTypes:[kotlin.Enum<.X>]' ENUM_ENTRY name:B class: CLASS ENUM_ENTRY name:B modality:FINAL visibility:private superTypes:[.X] diff --git a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt index faf5d0e3cf4..169d077c674 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.MyEnum CONSTRUCTOR visibility:private <> () returnType:.MyEnum [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .MyEnum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:MyEnum modality:FINAL visibility:public superTypes:[kotlin.Enum<.MyEnum>]' ENUM_ENTRY name:Z class: CLASS ENUM_ENTRY name:Z modality:FINAL visibility:private superTypes:[.MyEnum] diff --git a/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt b/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt index 07aff92790a..6b9c0d77c03 100644 --- a/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt +++ b/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt @@ -22,7 +22,8 @@ FILE fqName: fileName:/objectAsCallable.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.En CONSTRUCTOR visibility:private <> () returnType:.En [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .En INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:En modality:FINAL visibility:public superTypes:[kotlin.Enum<.En>]' ENUM_ENTRY name:X class: CLASS ENUM_ENTRY name:X modality:FINAL visibility:private superTypes:[.En] diff --git a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt index e7608c6868e..580f249663a 100644 --- a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt +++ b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt @@ -13,7 +13,8 @@ FILE fqName: fileName:/temporaryInEnumEntryInitializer.kt CONSTRUCTOR visibility:private <> (x:kotlin.String?) returnType:.En [primary] VALUE_PARAMETER name:x index:0 type:kotlin.String? BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .En INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:En modality:FINAL visibility:public superTypes:[kotlin.Enum<.En>]' PROPERTY name:x visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.String? visibility:private [final] diff --git a/compiler/testData/ir/irText/expressions/values.fir.txt b/compiler/testData/ir/irText/expressions/values.fir.txt index 5e132ea7dcd..6d551e4df91 100644 --- a/compiler/testData/ir/irText/expressions/values.fir.txt +++ b/compiler/testData/ir/irText/expressions/values.fir.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/values.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Enum CONSTRUCTOR visibility:private <> () returnType:.Enum [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .Enum INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:Enum modality:FINAL visibility:public superTypes:[kotlin.Enum<.Enum>]' ENUM_ENTRY name:A class: CLASS ENUM_ENTRY name:A modality:FINAL visibility:private superTypes:[.Enum] diff --git a/compiler/testData/ir/irText/singletons/enumEntry.fir.txt b/compiler/testData/ir/irText/singletons/enumEntry.fir.txt index 341d832abae..7e31f58ce25 100644 --- a/compiler/testData/ir/irText/singletons/enumEntry.fir.txt +++ b/compiler/testData/ir/irText/singletons/enumEntry.fir.txt @@ -3,7 +3,8 @@ FILE fqName: fileName:/enumEntry.kt $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Z CONSTRUCTOR visibility:private <> () returnType:.Z [primary] BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + ENUM_CONSTRUCTOR_CALL 'public constructor (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum' + : .Z INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:Z modality:FINAL visibility:public superTypes:[kotlin.Enum<.Z>]' ENUM_ENTRY name:ENTRY class: CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:private superTypes:[.Z]