K1/K2: add Enum.entries unconditionally and filter them out in tower
Before this commit, we added Enum.entries only in case when LanguageFeature.EnumEntries was ON (with an exception in K1/Java case). In this commit we add Enum.entries unconditionally, and in case the language feature is OFF we filter them out during tower resolve.
This commit is contained in:
@@ -8,7 +8,7 @@ import kotlin.test.assertTrue
|
||||
enum class E { X, Y, Z }
|
||||
|
||||
fun box(): String {
|
||||
assertTrue(E::class.members.size in 11..12, "" + E::class.members.size)
|
||||
assertTrue(E::class.members.size in 12..13, "" + E::class.members.size)
|
||||
assertEquals("Y", E::name.call(E.Y))
|
||||
assertEquals(2, E::ordinal.call(E.Z))
|
||||
return "OK"
|
||||
|
||||
@@ -12,6 +12,7 @@ public final enum class MyEnum : kotlin.Enum<test.MyEnum> {
|
||||
public final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.MyEnum!>!
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<test.MyEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ kotlin.String): test.MyEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.MyEnum>
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ public final enum class MyEnum : kotlin.Enum<test.MyEnum> {
|
||||
public final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.MyEnum!>!
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<test.MyEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ kotlin.String): test.MyEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.MyEnum>
|
||||
}
|
||||
|
||||
+1
@@ -20,6 +20,7 @@ public final enum class K : kotlin.Enum<test.K> {
|
||||
public final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.K!>!
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<test.K>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ kotlin.String): test.K
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.K>
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ package test {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<test.MyEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): test.MyEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.MyEnum>
|
||||
}
|
||||
|
||||
+1
@@ -45,6 +45,7 @@ package foo {
|
||||
public open override /*3*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<foo.ExportedEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): foo.ExportedEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<foo.ExportedEnum>
|
||||
}
|
||||
|
||||
+1
@@ -35,6 +35,7 @@ package foo {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<foo.Nums>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): foo.Nums
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<foo.Nums>
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ public final external enum class E : kotlin.Enum<E> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<E>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<E>
|
||||
}
|
||||
|
||||
+1
@@ -30,6 +30,7 @@ public external interface I {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<I.E>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): I.E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<I.E>
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ public final external enum class E : kotlin.Enum<E> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<E>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<E>
|
||||
}
|
||||
@@ -58,6 +59,7 @@ public final external enum class F : kotlin.Enum<F>, I {
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<F>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): F
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<F>
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ public final external inline enum class E : kotlin.Enum<E> {
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<E>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<E>
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ public final external enum class E : kotlin.Enum<E> {
|
||||
}
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<E>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<E>
|
||||
}
|
||||
|
||||
+1
@@ -56,6 +56,7 @@ public final enum class EnumSpecialized : kotlin.Enum<EnumSpecialized>, Foo<kotl
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<EnumSpecialized>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): EnumSpecialized
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<EnumSpecialized>
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ public final enum class MyEnum : kotlin.Enum<MyEnum> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<MyEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): MyEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<MyEnum>
|
||||
}
|
||||
@@ -42,6 +43,7 @@ public final enum class MyOtherEnum : kotlin.Enum<MyOtherEnum> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<MyOtherEnum>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): MyOtherEnum
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<MyOtherEnum>
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ public final enum class JvmTarget : kotlin.Enum<JvmTarget> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<JvmTarget>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): JvmTarget
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<JvmTarget>
|
||||
}
|
||||
|
||||
+1
@@ -20,6 +20,7 @@ public final enum class Color : kotlin.Enum<Color> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<Color>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Color
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<Color>
|
||||
}
|
||||
|
||||
+1
@@ -20,6 +20,7 @@ public final enum class Format : kotlin.Enum<Format> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<Format>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Format
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<Format>
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ package test {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<test.E>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): test.E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.E>
|
||||
}
|
||||
|
||||
Vendored
+1
@@ -63,6 +63,7 @@ public final enum class Foo3 : kotlin.Enum<Foo3> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<Foo3>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Foo3
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<Foo3>
|
||||
}
|
||||
|
||||
Vendored
+1
@@ -60,6 +60,7 @@ public final enum class Foo3 : kotlin.Enum<Foo3> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ val entries: kotlin.enums.EnumEntries<Foo3>
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Foo3
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<Foo3>
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@ public abstract interface CustomAnnotation : R|kotlin/Any| {
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/CustomAnnotation.MyEnum| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/CustomAnnotation.MyEnum>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/CustomAnnotation.MyEnum>|
|
||||
|
||||
}
|
||||
@R|test/CustomAnnotation.MyAnnotation|(value = R|test/CustomAnnotation.MyEnum.ONE|()) public open class MyTest : R|kotlin/Any| {
|
||||
public constructor(): R|test/CustomAnnotation.MyTest|
|
||||
|
||||
+3
@@ -11,6 +11,9 @@ public open class EnumArgumentWithCustomToString : R|kotlin/Any| {
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/EnumArgumentWithCustomToString.E| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/EnumArgumentWithCustomToString.E>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/EnumArgumentWithCustomToString.E>|
|
||||
|
||||
}
|
||||
public final annotation class EnumAnno : R|kotlin/Annotation| {
|
||||
public constructor(value: R|test/EnumArgumentWithCustomToString.E|): R|test/EnumArgumentWithCustomToString.EnumAnno|
|
||||
|
||||
+3
@@ -10,6 +10,9 @@ public final enum class EnumConstructorParameter : R|kotlin/Enum<test/EnumConstr
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/EnumConstructorParameter| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/EnumConstructorParameter>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/EnumConstructorParameter>|
|
||||
|
||||
public final annotation class Anno : R|kotlin/Annotation| {
|
||||
public constructor(value: R|kotlin/String|): R|test/EnumConstructorParameter.Anno|
|
||||
|
||||
|
||||
+3
@@ -15,5 +15,8 @@ public open class NestedEnumArgument : R|kotlin/Any| {
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/NestedEnumArgument.E| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/NestedEnumArgument.E>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/NestedEnumArgument.E>|
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,4 +13,7 @@ public final enum class EnumMembers : R|kotlin/Enum<test/EnumMembers!>| {
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/EnumMembers| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/EnumMembers>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/EnumMembers>|
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,9 @@ public final enum class EnumWithSpecializedEntry : R|kotlin/Enum<test/EnumWithSp
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/EnumWithSpecializedEntry| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/EnumWithSpecializedEntry>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/EnumWithSpecializedEntry>|
|
||||
|
||||
public/*package*/ open class Nested : R|kotlin/Any| {
|
||||
public/*package*/ constructor(): R|test/EnumWithSpecializedEntry.Nested|
|
||||
|
||||
|
||||
@@ -7,4 +7,7 @@ public final enum class JavaEnum : R|kotlin/Enum<test/JavaEnum!>| {
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/JavaEnum| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/JavaEnum>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/JavaEnum>|
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@ public final enum class Enum : R|kotlin/Enum<test/Enum!>| {
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/Enum| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/Enum>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/Enum>|
|
||||
|
||||
public open inner class Inner : R|kotlin/Any| {
|
||||
public/*package*/ open fun bar(): R|kotlin/Unit|
|
||||
|
||||
|
||||
@@ -16,4 +16,7 @@ public final enum class StaticMembersInEnum : R|kotlin/Enum<test/StaticMembersIn
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|test/StaticMembersInEnum| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<test/StaticMembersInEnum>|
|
||||
public get(): R|kotlin/enums/EnumEntries<test/StaticMembersInEnum>|
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user