From 48938a20a7e2a0ac427c3db41804249e2a078bb7 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 7 Nov 2019 17:18:43 +0300 Subject: [PATCH] Raw FIR: add synthesized Enum.valueOf() function --- .../converter/DeclarationsConverter.kt | 1 + .../kotlin/fir/builder/EnumClassUtils.kt | 34 ++++++++++++ .../kotlin/fir/builder/RawFirBuilder.kt | 1 + .../rawBuilder/declarations/enums.txt | 6 ++ .../rawBuilder/declarations/enums2.txt | 3 + .../fir/resolve/testData/resolve/enum.txt | 3 + .../testData/resolve/exhaustiveness_enum.txt | 3 + .../resolve/expresssions/enumValues.kt | 3 + .../resolve/expresssions/enumValues.txt | 5 ++ .../expresssions/qualifiedExpressions.txt | 3 + .../testData/resolve/fromBuilder/enums.txt | 6 ++ .../ir/irText/classes/classes.fir.txt | 4 ++ .../testData/ir/irText/classes/enum.fir.txt | 55 +++++++++++++++++++ .../irText/classes/enumClassModality.fir.txt | 33 +++++++++++ .../classes/enumWithSecondaryCtor.fir.txt | 22 ++++++++ .../classesWithAnnotations.fir.txt | 4 ++ .../enumEntriesWithAnnotations.fir.txt | 4 ++ .../enumsInAnnotationArguments.fir.txt | 4 ++ .../multiplatform/expectedEnumClass.fir.txt | 8 +++ .../expressions/enumEntryAsReceiver.fir.txt | 4 ++ ...umEntryReferenceFromEnumEntryClass.fir.txt | 4 ++ .../expressions/objectAsCallable.fir.txt | 4 ++ .../temporaryInEnumEntryInitializer.fir.txt | 9 +++ .../ir/irText/expressions/values.fir.txt | 4 ++ .../ir/irText/singletons/enumEntry.fir.txt | 4 ++ 25 files changed, 231 insertions(+) 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 5c99a8770d9..87d530a8aec 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 @@ -435,6 +435,7 @@ class DeclarationsConverter( if (modifiers.isEnum()) { firClass.generateValuesFunction(session, context.packageFqName, context.className) + firClass.generateValueOfFunction(session, context.packageFqName, context.className) } return@withChildClassName firClass diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt index d2a31971458..2531f2ad3f9 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt @@ -12,17 +12,22 @@ import org.jetbrains.kotlin.fir.declarations.addDeclaration import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirModifiableRegularClass import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl +import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl import org.jetbrains.kotlin.fir.expressions.impl.FirEmptyExpressionBlock import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.FirImplicitStringTypeRef import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name private val ENUM_VALUES = Name.identifier("values") +private val ENUM_VALUE_OF = Name.identifier("valueOf") +private val VALUE = Name.identifier("value") fun FirModifiableRegularClass.generateValuesFunction( session: FirSession, packageFqName: FqName, classFqName: FqName @@ -48,4 +53,33 @@ fun FirModifiableRegularClass.generateValuesFunction( body = FirEmptyExpressionBlock() } ) +} + +fun FirModifiableRegularClass.generateValueOfFunction( + session: FirSession, packageFqName: FqName, classFqName: FqName +) { + val symbol = FirNamedFunctionSymbol(CallableId(packageFqName, classFqName, ENUM_VALUE_OF)) + val status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply { + isStatic = true + } + addDeclaration( + FirSimpleFunctionImpl( + source, session, + FirResolvedTypeRefImpl( + source, ConeClassTypeImpl( + ConeClassLikeLookupTagImpl(this.symbol.classId), + emptyArray(), + isNullable = false + ) + ), + null, ENUM_VALUE_OF, status, symbol + ).apply { + valueParameters += FirValueParameterImpl( + source, session, FirImplicitStringTypeRef(source), + VALUE, FirVariableSymbol(VALUE), + defaultValue = null, isCrossinline = false, isNoinline = false, isVararg = false + ) + body = FirEmptyExpressionBlock() + } + ) } \ No newline at end of file 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 8f780921f03..1994ceb08bc 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 @@ -537,6 +537,7 @@ class RawFirBuilder(session: FirSession, val stubMode: Boolean) : BaseFirBuilder if (classOrObject.hasModifier(ENUM_KEYWORD)) { firClass.generateValuesFunction(session, context.packageFqName, context.className) + firClass.generateValueOfFunction(session, context.packageFqName, context.className) } firClass diff --git a/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums.txt b/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums.txt index a7d3ad6fc80..ab5fb4e945a 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums.txt @@ -28,6 +28,9 @@ FILE: enums.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|Order| { + } + } public? final? enum class Planet : R|kotlin/Enum| { public? constructor(m: Double, r: Double): R|Planet| { @@ -91,4 +94,7 @@ FILE: enums.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|Planet| { + } + } diff --git a/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums2.txt b/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums2.txt index 1413cc318eb..9b51eab1bbf 100644 --- a/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums2.txt +++ b/compiler/fir/psi2fir/testData/rawBuilder/declarations/enums2.txt @@ -48,4 +48,7 @@ FILE: enums2.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|SomeEnum| { + } + } diff --git a/compiler/fir/resolve/testData/resolve/enum.txt b/compiler/fir/resolve/testData/resolve/enum.txt index 2e339b6b0da..a1fc02b547d 100644 --- a/compiler/fir/resolve/testData/resolve/enum.txt +++ b/compiler/fir/resolve/testData/resolve/enum.txt @@ -48,4 +48,7 @@ FILE: enum.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|SomeEnum| { + } + } diff --git a/compiler/fir/resolve/testData/resolve/exhaustiveness_enum.txt b/compiler/fir/resolve/testData/resolve/exhaustiveness_enum.txt index cf93842774c..bbba5d6968e 100644 --- a/compiler/fir/resolve/testData/resolve/exhaustiveness_enum.txt +++ b/compiler/fir/resolve/testData/resolve/exhaustiveness_enum.txt @@ -28,6 +28,9 @@ FILE: exhaustiveness_enum.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|Enum| { + } + } public final fun test_1(e: R|Enum|): R|kotlin/Unit| { lval a: R|kotlin/Unit| = when (R|/e|) { diff --git a/compiler/fir/resolve/testData/resolve/expresssions/enumValues.kt b/compiler/fir/resolve/testData/resolve/expresssions/enumValues.kt index 3bcbab8e876..73fa12fc982 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/enumValues.kt +++ b/compiler/fir/resolve/testData/resolve/expresssions/enumValues.kt @@ -12,4 +12,7 @@ fun foo() { for (value in values) { value.bar() } + + val first = MyEnum.valueOf("FIRST") + val last = MyEnum.valueOf("LAST") } \ No newline at end of file diff --git a/compiler/fir/resolve/testData/resolve/expresssions/enumValues.txt b/compiler/fir/resolve/testData/resolve/expresssions/enumValues.txt index 6fc89219b48..cb3a2bb9eb2 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/enumValues.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/enumValues.txt @@ -32,6 +32,9 @@ FILE: enumValues.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|MyEnum| { + } + } public final fun foo(): R|kotlin/Unit| { lval values: R|kotlin/Array| = Q|MyEnum|.R|/MyEnum.values|() @@ -42,4 +45,6 @@ FILE: enumValues.kt R|/value|.R|/MyEnum.bar|() } + lval first: R|MyEnum| = Q|MyEnum|.R|/MyEnum.valueOf|(String(FIRST)) + lval last: R|MyEnum| = Q|MyEnum|.R|/MyEnum.valueOf|(String(LAST)) } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt b/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt index 4bc274f686c..bae5cd920ef 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt @@ -43,6 +43,9 @@ FILE: qualifiedExpressions.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|a/b/E| { + } + } public final fun foo(): R|kotlin/Unit| { } diff --git a/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt b/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt index 26be3ccae66..7551f52c0cc 100644 --- a/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt +++ b/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt @@ -28,6 +28,9 @@ FILE: enums.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|Order| { + } + } public final enum class Planet : R|kotlin/Enum| { private constructor(m: R|kotlin/Double|, r: R|kotlin/Double|): R|Planet| { @@ -91,4 +94,7 @@ FILE: enums.kt public final static fun values(): R|kotlin/Array| { } + public final static fun valueOf(value: R|kotlin/String|): R|Planet| { + } + } diff --git a/compiler/testData/ir/irText/classes/classes.fir.txt b/compiler/testData/ir/irText/classes/classes.fir.txt index 4382adfe9c1..ca6651c6880 100644 --- a/compiler/testData/ir/irText/classes/classes.fir.txt +++ b/compiler/testData/ir/irText/classes/classes.fir.txt @@ -78,6 +78,10 @@ FILE fqName: fileName:/classes.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestEnumClass) returnType:kotlin.Array<.TestEnumClass> $this: VALUE_PARAMETER name: type:.TestEnumClass BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestEnumClass, value:kotlin.String) returnType:.TestEnumClass + $this: VALUE_PARAMETER name: type:.TestEnumClass + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 43c53234bc6..3953626e012 100644 --- a/compiler/testData/ir/irText/classes/enum.fir.txt +++ b/compiler/testData/ir/irText/classes/enum.fir.txt @@ -47,6 +47,10 @@ FILE fqName: fileName:/enum.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestEnum1) returnType:kotlin.Array<.TestEnum1> $this: VALUE_PARAMETER name: type:.TestEnum1 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum1, value:kotlin.String) returnType:.TestEnum1 + $this: VALUE_PARAMETER name: type:.TestEnum1 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -117,6 +121,11 @@ FILE fqName: fileName:/enum.kt overridden: public final fun values (): kotlin.Array<.TestEnum2> declared in .TestEnum2 $this: VALUE_PARAMETER name: type:.TestEnum2 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum2, value:kotlin.String) returnType:.TestEnum2 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .TestEnum2 declared in .TestEnum2 + $this: VALUE_PARAMETER name: type:.TestEnum2 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -168,6 +177,11 @@ FILE fqName: fileName:/enum.kt overridden: public final fun values (): kotlin.Array<.TestEnum2> declared in .TestEnum2 $this: VALUE_PARAMETER name: type:.TestEnum2 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum2, value:kotlin.String) returnType:.TestEnum2 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .TestEnum2 declared in .TestEnum2 + $this: VALUE_PARAMETER name: type:.TestEnum2 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -219,6 +233,11 @@ FILE fqName: fileName:/enum.kt overridden: public final fun values (): kotlin.Array<.TestEnum2> declared in .TestEnum2 $this: VALUE_PARAMETER name: type:.TestEnum2 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum2, value:kotlin.String) returnType:.TestEnum2 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .TestEnum2 declared in .TestEnum2 + $this: VALUE_PARAMETER name: type:.TestEnum2 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -256,6 +275,10 @@ FILE fqName: fileName:/enum.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestEnum2) returnType:kotlin.Array<.TestEnum2> $this: VALUE_PARAMETER name: type:.TestEnum2 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum2, value:kotlin.String) returnType:.TestEnum2 + $this: VALUE_PARAMETER name: type:.TestEnum2 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -326,6 +349,10 @@ FILE fqName: fileName:/enum.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestEnum3) returnType:kotlin.Array<.TestEnum3> $this: VALUE_PARAMETER name: type:.TestEnum3 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum3, value:kotlin.String) returnType:.TestEnum3 + $this: VALUE_PARAMETER name: type:.TestEnum3 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -401,6 +428,11 @@ FILE fqName: fileName:/enum.kt overridden: public final fun values (): kotlin.Array<.TestEnum4> declared in .TestEnum4 $this: VALUE_PARAMETER name: type:.TestEnum4 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum4, value:kotlin.String) returnType:.TestEnum4 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .TestEnum4 declared in .TestEnum4 + $this: VALUE_PARAMETER name: type:.TestEnum4 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -472,6 +504,11 @@ FILE fqName: fileName:/enum.kt overridden: public final fun values (): kotlin.Array<.TestEnum4> declared in .TestEnum4 $this: VALUE_PARAMETER name: type:.TestEnum4 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum4, value:kotlin.String) returnType:.TestEnum4 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .TestEnum4 declared in .TestEnum4 + $this: VALUE_PARAMETER name: type:.TestEnum4 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -511,6 +548,10 @@ FILE fqName: fileName:/enum.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestEnum4) returnType:kotlin.Array<.TestEnum4> $this: VALUE_PARAMETER name: type:.TestEnum4 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum4, value:kotlin.String) returnType:.TestEnum4 + $this: VALUE_PARAMETER name: type:.TestEnum4 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -601,6 +642,11 @@ FILE fqName: fileName:/enum.kt overridden: public final fun values (): kotlin.Array<.TestEnum5> declared in .TestEnum5 $this: VALUE_PARAMETER name: type:.TestEnum5 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum5, value:kotlin.String) returnType:.TestEnum5 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .TestEnum5 declared in .TestEnum5 + $this: VALUE_PARAMETER name: type:.TestEnum5 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -652,6 +698,11 @@ FILE fqName: fileName:/enum.kt overridden: public final fun values (): kotlin.Array<.TestEnum5> declared in .TestEnum5 $this: VALUE_PARAMETER name: type:.TestEnum5 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum5, value:kotlin.String) returnType:.TestEnum5 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .TestEnum5 declared in .TestEnum5 + $this: VALUE_PARAMETER name: type:.TestEnum5 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -689,6 +740,10 @@ FILE fqName: fileName:/enum.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestEnum5) returnType:kotlin.Array<.TestEnum5> $this: VALUE_PARAMETER name: type:.TestEnum5 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum5, value:kotlin.String) returnType:.TestEnum5 + $this: VALUE_PARAMETER name: type:.TestEnum5 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 c0ffa523377..27af186a974 100644 --- a/compiler/testData/ir/irText/classes/enumClassModality.fir.txt +++ b/compiler/testData/ir/irText/classes/enumClassModality.fir.txt @@ -28,6 +28,10 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestFinalEnum1) returnType:kotlin.Array<.TestFinalEnum1> $this: VALUE_PARAMETER name: type:.TestFinalEnum1 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestFinalEnum1, value:kotlin.String) returnType:.TestFinalEnum1 + $this: VALUE_PARAMETER name: type:.TestFinalEnum1 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -98,6 +102,11 @@ FILE fqName: fileName:/enumClassModality.kt overridden: public final fun values (): kotlin.Array<.TestFinalEnum2> declared in .TestFinalEnum2 $this: VALUE_PARAMETER name: type:.TestFinalEnum2 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.TestFinalEnum2, value:kotlin.String) returnType:.TestFinalEnum2 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .TestFinalEnum2 declared in .TestFinalEnum2 + $this: VALUE_PARAMETER name: type:.TestFinalEnum2 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -135,6 +144,10 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestFinalEnum2) returnType:kotlin.Array<.TestFinalEnum2> $this: VALUE_PARAMETER name: type:.TestFinalEnum2 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestFinalEnum2, value:kotlin.String) returnType:.TestFinalEnum2 + $this: VALUE_PARAMETER name: type:.TestFinalEnum2 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -201,6 +214,10 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestFinalEnum3) returnType:kotlin.Array<.TestFinalEnum3> $this: VALUE_PARAMETER name: type:.TestFinalEnum3 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestFinalEnum3, value:kotlin.String) returnType:.TestFinalEnum3 + $this: VALUE_PARAMETER name: type:.TestFinalEnum3 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -265,6 +282,10 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestOpenEnum1) returnType:kotlin.Array<.TestOpenEnum1> $this: VALUE_PARAMETER name: type:.TestOpenEnum1 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestOpenEnum1, value:kotlin.String) returnType:.TestOpenEnum1 + $this: VALUE_PARAMETER name: type:.TestOpenEnum1 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -334,6 +355,10 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestOpenEnum2) returnType:kotlin.Array<.TestOpenEnum2> $this: VALUE_PARAMETER name: type:.TestOpenEnum2 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestOpenEnum2, value:kotlin.String) returnType:.TestOpenEnum2 + $this: VALUE_PARAMETER name: type:.TestOpenEnum2 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -402,6 +427,10 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestAbstractEnum1) returnType:kotlin.Array<.TestAbstractEnum1> $this: VALUE_PARAMETER name: type:.TestAbstractEnum1 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestAbstractEnum1, value:kotlin.String) returnType:.TestAbstractEnum1 + $this: VALUE_PARAMETER name: type:.TestAbstractEnum1 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -485,6 +514,10 @@ FILE fqName: fileName:/enumClassModality.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestAbstractEnum2) returnType:kotlin.Array<.TestAbstractEnum2> $this: VALUE_PARAMETER name: type:.TestAbstractEnum2 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestAbstractEnum2, value:kotlin.String) returnType:.TestAbstractEnum2 + $this: VALUE_PARAMETER name: type:.TestAbstractEnum2 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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/enumWithSecondaryCtor.fir.txt b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt index 380ad7370d1..ca840198360 100644 --- a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt +++ b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt @@ -44,6 +44,10 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt FUN name:values visibility:public modality:FINAL <> ($this:.Test0) returnType:kotlin.Array<.Test0> $this: VALUE_PARAMETER name: type:.Test0 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.Test0, value:kotlin.String) returnType:.Test0 + $this: VALUE_PARAMETER name: type:.Test0 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -133,6 +137,11 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt overridden: public final fun values (): kotlin.Array<.Test1> declared in .Test1 $this: VALUE_PARAMETER name: type:.Test1 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.Test1, value:kotlin.String) returnType:.Test1 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .Test1 declared in .Test1 + $this: VALUE_PARAMETER name: type:.Test1 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -174,6 +183,10 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt FUN name:values visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.Array<.Test1> $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.Test1, value:kotlin.String) returnType:.Test1 + $this: VALUE_PARAMETER name: type:.Test1 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -273,6 +286,11 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt overridden: public final fun values (): kotlin.Array<.Test2> declared in .Test2 $this: VALUE_PARAMETER name: type:.Test2 + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.Test2, value:kotlin.String) returnType:.Test2 [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .Test2 declared in .Test2 + $this: VALUE_PARAMETER name: type:.Test2 + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -316,6 +334,10 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt FUN name:values visibility:public modality:FINAL <> ($this:.Test2) returnType:kotlin.Array<.Test2> $this: VALUE_PARAMETER name: type:.Test2 BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.Test2, value:kotlin.String) returnType:.Test2 + $this: VALUE_PARAMETER name: type:.Test2 + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 e9a7886fb2a..0e0729d73d6 100644 --- a/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.fir.txt @@ -138,6 +138,10 @@ FILE fqName: fileName:/classesWithAnnotations.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestEnum) returnType:kotlin.Array<.TestEnum> $this: VALUE_PARAMETER name: type:.TestEnum BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum, value:kotlin.String) returnType:.TestEnum + $this: VALUE_PARAMETER name: type:.TestEnum + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 57ed47ca54c..a8ac8a779c9 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt @@ -90,6 +90,10 @@ FILE fqName: fileName:/enumEntriesWithAnnotations.kt FUN name:values visibility:public modality:FINAL <> ($this:.TestEnum) returnType:kotlin.Array<.TestEnum> $this: VALUE_PARAMETER name: type:.TestEnum BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.TestEnum, value:kotlin.String) returnType:.TestEnum + $this: VALUE_PARAMETER name: type:.TestEnum + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 581306c42f4..5ac43efe99d 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.fir.txt @@ -85,6 +85,10 @@ FILE fqName: fileName:/enumsInAnnotationArguments.kt FUN name:values visibility:public modality:FINAL <> ($this:.En) returnType:kotlin.Array<.En> $this: VALUE_PARAMETER name: type:.En BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.En, value:kotlin.String) returnType:.En + $this: VALUE_PARAMETER name: type:.En + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 2c18303c3b3..8a60affadcb 100644 --- a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt +++ b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.fir.txt @@ -47,6 +47,10 @@ FILE fqName: fileName:/expectedEnumClass.kt FUN name:values visibility:public modality:FINAL <> ($this:.MyEnum) returnType:kotlin.Array<.MyEnum> $this: VALUE_PARAMETER name: type:.MyEnum BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.MyEnum, value:kotlin.String) returnType:.MyEnum + $this: VALUE_PARAMETER name: type:.MyEnum + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 @@ -148,6 +152,10 @@ FILE fqName: fileName:/expectedEnumClass.kt FUN name:values visibility:public modality:FINAL <> ($this:.MyEnum) returnType:kotlin.Array<.MyEnum> $this: VALUE_PARAMETER name: type:.MyEnum BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.MyEnum, value:kotlin.String) returnType:.MyEnum + $this: VALUE_PARAMETER name: type:.MyEnum + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 4fd004b2ab2..c2491450d9e 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt @@ -59,6 +59,10 @@ FILE fqName: fileName:/enumEntryAsReceiver.kt FUN name:values visibility:public modality:FINAL <> ($this:.X) returnType:kotlin.Array<.X> $this: VALUE_PARAMETER name: type:.X BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.X, value:kotlin.String) returnType:.X + $this: VALUE_PARAMETER name: type:.X + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 4275747b5fc..4dbe03ff8e6 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt @@ -110,6 +110,10 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt FUN name:values visibility:public modality:FINAL <> ($this:.MyEnum) returnType:kotlin.Array<.MyEnum> $this: VALUE_PARAMETER name: type:.MyEnum BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.MyEnum, value:kotlin.String) returnType:.MyEnum + $this: VALUE_PARAMETER name: type:.MyEnum + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 308906f5e52..f6d7b6f492d 100644 --- a/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt +++ b/compiler/testData/ir/irText/expressions/objectAsCallable.fir.txt @@ -47,6 +47,10 @@ FILE fqName: fileName:/objectAsCallable.kt FUN name:values visibility:public modality:FINAL <> ($this:.En) returnType:kotlin.Array<.En> $this: VALUE_PARAMETER name: type:.En BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.En, value:kotlin.String) returnType:.En + $this: VALUE_PARAMETER name: type:.En + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 556a3df3f5b..6eb161c55df 100644 --- a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt +++ b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt @@ -45,6 +45,11 @@ FILE fqName: fileName:/temporaryInEnumEntryInitializer.kt overridden: public final fun values (): kotlin.Array<.En> declared in .En $this: VALUE_PARAMETER name: type:.En + FUN FAKE_OVERRIDE name:valueOf visibility:public modality:FINAL <> ($this:.En, value:kotlin.String) returnType:.En [fake_override] + overridden: + public final fun valueOf (value: kotlin.String): .En declared in .En + $this: VALUE_PARAMETER name: type:.En + VALUE_PARAMETER name:value index:0 type:kotlin.String 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 @@ -82,6 +87,10 @@ FILE fqName: fileName:/temporaryInEnumEntryInitializer.kt FUN name:values visibility:public modality:FINAL <> ($this:.En) returnType:kotlin.Array<.En> $this: VALUE_PARAMETER name: type:.En BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.En, value:kotlin.String) returnType:.En + $this: VALUE_PARAMETER name: type:.En + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 a5ba19d27ff..a20320111c0 100644 --- a/compiler/testData/ir/irText/expressions/values.fir.txt +++ b/compiler/testData/ir/irText/expressions/values.fir.txt @@ -28,6 +28,10 @@ FILE fqName: fileName:/values.kt FUN name:values visibility:public modality:FINAL <> ($this:.Enum) returnType:kotlin.Array<.Enum> $this: VALUE_PARAMETER name: type:.Enum BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.Enum, value:kotlin.String) returnType:.Enum + $this: VALUE_PARAMETER name: type:.Enum + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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 ab4f4ea4157..7ce088d6ce8 100644 --- a/compiler/testData/ir/irText/singletons/enumEntry.fir.txt +++ b/compiler/testData/ir/irText/singletons/enumEntry.fir.txt @@ -55,6 +55,10 @@ FILE fqName: fileName:/enumEntry.kt FUN name:values visibility:public modality:FINAL <> ($this:.Z) returnType:kotlin.Array<.Z> $this: VALUE_PARAMETER name: type:.Z BLOCK_BODY + FUN name:valueOf visibility:public modality:FINAL <> ($this:.Z, value:kotlin.String) returnType:.Z + $this: VALUE_PARAMETER name: type:.Z + VALUE_PARAMETER name:value index:0 type:kotlin.String + BLOCK_BODY 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