From 983652028782ee377c58b770cf6cd7868a113625 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 19 Mar 2020 14:54:56 +0300 Subject: [PATCH] [FIR2IR] Generate synthetic bodies for Enum.values() and valueOf() --- .../fir/backend/Fir2IrDeclarationStorage.kt | 9 +++ .../generators/ClassMemberGenerator.kt | 8 ++- .../function/enumValueOfMethod.kt | 1 - .../box/checkcastOptimization/kt19246.kt | 1 - .../codegen/box/enum/companionObjectInEnum.kt | 1 - .../box/enum/emptyEnumValuesValueOf.kt | 1 - .../codegen/box/enum/enumEntryMembers.kt | 1 - .../codegen/box/enum/enumMultiModule.kt | 1 - compiler/testData/codegen/box/enum/valueof.kt | 1 - .../ir/irText/classes/classes.fir.txt | 8 +-- .../testData/ir/irText/classes/enum.fir.txt | 48 ++++++++-------- .../irText/classes/enumClassModality.fir.txt | 56 +++++++++---------- .../classes/enumWithMultipleCtors.fir.txt | 8 +-- .../classes/enumWithSecondaryCtor.fir.txt | 24 ++++---- .../classesWithAnnotations.fir.txt | 8 +-- .../enumEntriesWithAnnotations.fir.txt | 8 +-- .../enumsInAnnotationArguments.fir.txt | 8 +-- .../multiplatform/expectedEnumClass.fir.txt | 16 +++--- .../expressions/enumEntryAsReceiver.fir.txt | 8 +-- ...umEntryReferenceFromEnumEntryClass.fir.txt | 8 +-- .../expressions/objectAsCallable.fir.txt | 8 +-- .../temporaryInEnumEntryInitializer.fir.txt | 8 +-- .../ir/irText/expressions/values.fir.txt | 8 +-- .../ir/irText/singletons/enumEntry.fir.txt | 8 +-- 24 files changed, 132 insertions(+), 124 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 d00dfd4965d..797ee93d4b8 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 @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.* import org.jetbrains.kotlin.ir.descriptors.* import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind import org.jetbrains.kotlin.ir.expressions.impl.IrErrorExpressionImpl import org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBodyImpl import org.jetbrains.kotlin.ir.symbols.* @@ -330,6 +331,7 @@ class Fir2IrDeclarationStorage( val updatedOrigin = when { isLambda -> IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA function.symbol.callableId.isKFunctionInvoke() -> IrDeclarationOrigin.FAKE_OVERRIDE + simpleFunction?.isStatic == true && simpleFunction.name in ENUM_SYNTHETIC_NAMES -> IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER else -> origin } classifierStorage.preCacheTypeParameters(function) @@ -755,4 +757,11 @@ class Fir2IrDeclarationStorage( } } } + + companion object { + internal val ENUM_SYNTHETIC_NAMES = mapOf( + Name.identifier("values") to IrSyntheticBodyKind.ENUM_VALUES, + Name.identifier("valueOf") to IrSyntheticBodyKind.ENUM_VALUEOF + ) + } } \ No newline at end of file diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt index 42b9a6ed35f..fe01fd2b261 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrFieldImpl import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrFieldAccessExpression +import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind import org.jetbrains.kotlin.ir.expressions.impl.* import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.types.IrType @@ -115,7 +116,12 @@ internal class ClassMemberGenerator( irFunction.body = body } } else if (irFunction !is IrConstructor) { - irFunction.body = firFunction?.body?.let { visitor.convertToIrBlockBody(it) } + if (irFunction.origin == IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER) { + val kind = Fir2IrDeclarationStorage.ENUM_SYNTHETIC_NAMES.getValue(irFunction.name) + irFunction.body = IrSyntheticBodyImpl(startOffset, endOffset, kind) + } else { + irFunction.body = firFunction?.body?.let { visitor.convertToIrBlockBody(it) } + } } if (irFunction !is IrConstructor || !irFunction.isPrimary) { // Scope for primary constructor should be left after class declaration diff --git a/compiler/testData/codegen/box/callableReference/function/enumValueOfMethod.kt b/compiler/testData/codegen/box/callableReference/function/enumValueOfMethod.kt index ed843e8a9a0..21a53adfff3 100644 --- a/compiler/testData/codegen/box/callableReference/function/enumValueOfMethod.kt +++ b/compiler/testData/codegen/box/callableReference/function/enumValueOfMethod.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR enum class E { ENTRY } diff --git a/compiler/testData/codegen/box/checkcastOptimization/kt19246.kt b/compiler/testData/codegen/box/checkcastOptimization/kt19246.kt index c70b22755b3..4abd9e66a5d 100644 --- a/compiler/testData/codegen/box/checkcastOptimization/kt19246.kt +++ b/compiler/testData/codegen/box/checkcastOptimization/kt19246.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // KJS_WITH_FULL_RUNTIME // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/enum/companionObjectInEnum.kt b/compiler/testData/codegen/box/enum/companionObjectInEnum.kt index 8ecc9dd3678..3e6d423f64e 100644 --- a/compiler/testData/codegen/box/enum/companionObjectInEnum.kt +++ b/compiler/testData/codegen/box/enum/companionObjectInEnum.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR enum class Game { ROCK, PAPER, diff --git a/compiler/testData/codegen/box/enum/emptyEnumValuesValueOf.kt b/compiler/testData/codegen/box/enum/emptyEnumValuesValueOf.kt index aa25035f715..6cad0c98a04 100644 --- a/compiler/testData/codegen/box/enum/emptyEnumValuesValueOf.kt +++ b/compiler/testData/codegen/box/enum/emptyEnumValuesValueOf.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR enum class Empty fun box(): String { diff --git a/compiler/testData/codegen/box/enum/enumEntryMembers.kt b/compiler/testData/codegen/box/enum/enumEntryMembers.kt index a22a11b71b0..919960c4463 100644 --- a/compiler/testData/codegen/box/enum/enumEntryMembers.kt +++ b/compiler/testData/codegen/box/enum/enumEntryMembers.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME // MODULE: lib // FILE: lib.kt diff --git a/compiler/testData/codegen/box/enum/enumMultiModule.kt b/compiler/testData/codegen/box/enum/enumMultiModule.kt index 9e7a24db0f5..5971013a250 100644 --- a/compiler/testData/codegen/box/enum/enumMultiModule.kt +++ b/compiler/testData/codegen/box/enum/enumMultiModule.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME // MODULE: lib // FILE: common.kt diff --git a/compiler/testData/codegen/box/enum/valueof.kt b/compiler/testData/codegen/box/enum/valueof.kt index d69ca1ad64c..89aeaa9cce6 100644 --- a/compiler/testData/codegen/box/enum/valueof.kt +++ b/compiler/testData/codegen/box/enum/valueof.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR enum class Color { RED, BLUE diff --git a/compiler/testData/ir/irText/classes/classes.fir.txt b/compiler/testData/ir/irText/classes/classes.fir.txt index daa7823a25e..18617949bbe 100644 --- a/compiler/testData/ir/irText/classes/classes.fir.txt +++ b/compiler/testData/ir/irText/classes/classes.fir.txt @@ -75,11 +75,11 @@ FILE fqName: fileName:/classes.kt 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 <> () returnType:kotlin.Array<.TestEnumClass> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnumClass + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnumClass> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnumClass VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/classes/enum.fir.txt b/compiler/testData/ir/irText/classes/enum.fir.txt index d0c02fd94e4..caf33d7ae9a 100644 --- a/compiler/testData/ir/irText/classes/enum.fir.txt +++ b/compiler/testData/ir/irText/classes/enum.fir.txt @@ -12,11 +12,11 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST2 init: EXPRESSION_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum1' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum1> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum1 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum1> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum1 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -100,11 +100,11 @@ FILE fqName: fileName:/enum.kt ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' x: CONST Int type=kotlin.Int value=3 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST3 modality:FINAL visibility:private superTypes:[.TestEnum2]' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum2> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum2 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum2> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum2 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -162,11 +162,11 @@ FILE fqName: fileName:/enum.kt message: CONST String type=kotlin.String value="Hello, world!" FUN name:foo visibility:public modality:ABSTRACT <> ($this:.TestEnum3) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.TestEnum3 - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum3> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum3 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum3> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum3 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -266,11 +266,11 @@ FILE fqName: fileName:/enum.kt message: GET_ENUM 'ENUM_ENTRY name:TEST2' type=.TestEnum4 FUN name:foo visibility:public modality:ABSTRACT <> ($this:.TestEnum4) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.TestEnum4 - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum4> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum4 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum4> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum4 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -354,11 +354,11 @@ FILE fqName: fileName:/enum.kt ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' x: CONST Int type=kotlin.Int value=0 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST3 modality:FINAL visibility:private superTypes:[.TestEnum5]' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum5> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum5 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum5> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum5 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -439,11 +439,11 @@ FILE fqName: fileName:/enum.kt x: CALL 'public final fun f (): kotlin.Int declared in ' type=kotlin.Int origin=null y: CALL 'public final fun f (): kotlin.Int declared in ' type=kotlin.Int origin=null INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[.TestEnum6]' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum6> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum6 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum6> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum6 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) 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.fir.txt b/compiler/testData/ir/irText/classes/enumClassModality.fir.txt index c4087f75dfd..456cf05c818 100644 --- a/compiler/testData/ir/irText/classes/enumClassModality.fir.txt +++ b/compiler/testData/ir/irText/classes/enumClassModality.fir.txt @@ -9,11 +9,11 @@ FILE fqName: fileName:/enumClassModality.kt ENUM_ENTRY name:X1 init: EXPRESSION_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestFinalEnum1' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestFinalEnum1> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestFinalEnum1 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestFinalEnum1> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestFinalEnum1 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -77,11 +77,11 @@ FILE fqName: fileName:/enumClassModality.kt ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestFinalEnum2' x: CONST Int type=kotlin.Int value=1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestFinalEnum2]' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestFinalEnum2> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestFinalEnum2 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestFinalEnum2> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestFinalEnum2 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -129,11 +129,11 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:doStuff visibility:public modality:FINAL <> ($this:.TestFinalEnum3) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.TestFinalEnum3 BLOCK_BODY - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestFinalEnum3> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestFinalEnum3 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestFinalEnum3> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestFinalEnum3 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -189,11 +189,11 @@ FILE fqName: fileName:/enumClassModality.kt BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun toString (): kotlin.String declared in .TestOpenEnum1.X1' CONST String type=kotlin.String value="X1" - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestOpenEnum1> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestOpenEnum1 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestOpenEnum1> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestOpenEnum1 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -250,11 +250,11 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:foo visibility:public modality:OPEN <> ($this:.TestOpenEnum2) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.TestOpenEnum2 BLOCK_BODY - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestOpenEnum2> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestOpenEnum2 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestOpenEnum2> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestOpenEnum2 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -310,11 +310,11 @@ FILE fqName: fileName:/enumClassModality.kt BLOCK_BODY FUN name:foo visibility:public modality:ABSTRACT <> ($this:.TestAbstractEnum1) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.TestAbstractEnum1 - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestAbstractEnum1> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestAbstractEnum1 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestAbstractEnum1> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestAbstractEnum1 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -385,11 +385,11 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:foo visibility:public modality:FINAL <> ($this:.TestAbstractEnum2.X1) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.TestAbstractEnum2.X1 BLOCK_BODY - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestAbstractEnum2> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestAbstractEnum2 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestAbstractEnum2> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestAbstractEnum2 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:.IFoo) returnType:kotlin.Unit [fake_override] overridden: public abstract fun foo (): kotlin.Unit declared in .IFoo diff --git a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt index 5da8c44b81e..6d76176dd1d 100644 --- a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt +++ b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt @@ -122,11 +122,11 @@ FILE fqName: fileName:/enumWithMultipleCtors.kt CALL 'public open fun toString (): kotlin.String declared in kotlin.Any' type=kotlin.String origin=null $this: CALL 'public final fun (): kotlin.String declared in .A' type=kotlin.String origin=GET_PROPERTY $this: GET_VAR ': .A declared in .A.f' type=.A origin=null - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.A> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.A + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.A> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.A VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt index 6d768c63e46..027d9d1847c 100644 --- a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt +++ b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt @@ -31,11 +31,11 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .Test0' x: CONST Int type=kotlin.Int value=0 - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Test0> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Test0 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Test0> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Test0 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -112,11 +112,11 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .Test1' x: CONST Int type=kotlin.Int value=0 - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Test1> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Test1 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Test1> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Test1 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -205,11 +205,11 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt x: CONST Int type=kotlin.Int value=0 FUN name:foo visibility:public modality:ABSTRACT <> ($this:.Test2) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.Test2 - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Test2> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Test2 + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Test2> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Test2 VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt b/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt index d35582d2c8c..01f8fc5527a 100644 --- a/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt @@ -135,11 +135,11 @@ FILE fqName: fileName:/classesWithAnnotations.kt 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 <> () returnType:kotlin.Array<.TestEnum> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt index 88e7b284c7b..2a28b8e28c6 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt @@ -67,11 +67,11 @@ FILE fqName: fileName:/enumEntriesWithAnnotations.kt RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in .TestEnum.ENTRY2' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .TestEnum.ENTRY2 declared in .TestEnum.ENTRY2.' type=.TestEnum.ENTRY2 origin=null - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.TestEnum> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.TestEnum VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt index ea689f31992..90fde9471ec 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt @@ -18,11 +18,11 @@ FILE fqName: fileName:/enumsInAnnotationArguments.kt ENUM_ENTRY name:D init: EXPRESSION_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.En> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.En + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.En> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.En VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) 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.fir.txt b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt index 194ffc31197..cb7d13c60ef 100644 --- a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt +++ b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt @@ -12,11 +12,11 @@ FILE fqName: fileName:/expectedEnumClass.kt ENUM_ENTRY name:BAR init: EXPRESSION_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.MyEnum> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.MyEnum + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.MyEnum> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.MyEnum VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -67,11 +67,11 @@ FILE fqName: fileName:/expectedEnumClass.kt ENUM_ENTRY name:BAZ init: EXPRESSION_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.MyEnum> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.MyEnum + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.MyEnum> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.MyEnum VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) 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.fir.txt b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt index 88bd76114d4..7984147c3b1 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt @@ -46,11 +46,11 @@ FILE fqName: fileName:/enumEntryAsReceiver.kt FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:ABSTRACT <> ($this:.X) returnType:kotlin.Function0 correspondingProperty: PROPERTY name:value visibility:public modality:ABSTRACT [val] $this: VALUE_PARAMETER name: type:.X - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.X> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.X + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.X> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.X VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt index f5d47a1d9c8..305555c4c72 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt @@ -96,11 +96,11 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt RETURN type=kotlin.Nothing from='public final fun (): .MyEnum.Z.anObject. declared in .MyEnum.Z' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:.MyEnum.Z.anObject. visibility:private [final]' type=.MyEnum.Z.anObject. origin=null receiver: GET_VAR ': .MyEnum.Z declared in .MyEnum.Z.' type=.MyEnum.Z origin=null - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.MyEnum> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.MyEnum + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.MyEnum> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.MyEnum VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum diff --git a/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt b/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt index 5d4bfe254f6..af9e1fbf505 100644 --- a/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt +++ b/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt @@ -28,11 +28,11 @@ FILE fqName: fileName:/objectAsCallable.kt ENUM_ENTRY name:X init: EXPRESSION_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .En' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.En> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.En + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.En> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.En VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) 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.fir.txt b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt index 54113243326..d5bf634f25c 100644 --- a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt +++ b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt @@ -38,11 +38,11 @@ FILE fqName: fileName:/temporaryInEnumEntryInitializer.kt x: CALL 'public open fun toString (): kotlin.String declared in kotlin.Any' type=kotlin.String? origin=null $this: CALL 'public final fun (): kotlin.Any? declared in ' type=kotlin.Any? origin=GET_PROPERTY INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:private superTypes:[.En]' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.En> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.En + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.En> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.En VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) 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.fir.txt b/compiler/testData/ir/irText/expressions/values.fir.txt index 929952bc6b8..7e32b26b4b2 100644 --- a/compiler/testData/ir/irText/expressions/values.fir.txt +++ b/compiler/testData/ir/irText/expressions/values.fir.txt @@ -9,11 +9,11 @@ FILE fqName: fileName:/values.kt ENUM_ENTRY name:A init: EXPRESSION_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Enum' - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Enum> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Enum + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Enum> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Enum VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.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.fir.txt b/compiler/testData/ir/irText/singletons/enumEntry.fir.txt index aa06e78e7c7..c8fee6e91ac 100644 --- a/compiler/testData/ir/irText/singletons/enumEntry.fir.txt +++ b/compiler/testData/ir/irText/singletons/enumEntry.fir.txt @@ -42,11 +42,11 @@ FILE fqName: fileName:/enumEntry.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Z> - BLOCK_BODY - FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Z + FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.Z> + SYNTHETIC_BODY kind=ENUM_VALUES + FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.Z VALUE_PARAMETER name:value index:0 type:kotlin.String - BLOCK_BODY + SYNTHETIC_BODY kind=ENUM_VALUEOF FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum