Prohibit type parameters for enum classes
#KT-5696 Fixed
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
enum class List<out T>(val size : Int) {
|
||||
Nil : List<Nothing>(0)
|
||||
class List<out T>(val size : Int) {
|
||||
class object {
|
||||
val Nil = List<Nothing>(0)
|
||||
}
|
||||
}
|
||||
|
||||
fun List<String>.join() =
|
||||
|
||||
@@ -1,40 +1,19 @@
|
||||
package
|
||||
package
|
||||
|
||||
internal fun List<kotlin.String>.join(): kotlin.String
|
||||
|
||||
internal final enum class List</*0*/ out T> : kotlin.Enum<List<T>> {
|
||||
private constructor List</*0*/ out T>(/*0*/ size: kotlin.Int)
|
||||
internal final class List</*0*/ out T> {
|
||||
public constructor List</*0*/ out T>(/*0*/ size: kotlin.Int)
|
||||
internal final val size: kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: List<T>): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public enum entry Nil : List<kotlin.Nothing> {
|
||||
private constructor Nil()
|
||||
internal final override /*1*/ /*fake_override*/ val size: kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: List<kotlin.Nothing>): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
|
||||
internal class object <class-object-for-List> {
|
||||
private constructor <class-object-for-List>()
|
||||
internal final val Nil: List<kotlin.Nothing>
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public class object <class-object-for-Nil> : List.Nil {
|
||||
private constructor <class-object-for-Nil>()
|
||||
internal final override /*1*/ /*fake_override*/ val size: kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: List<kotlin.Nothing>): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): List<T>
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<List<T>>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
// KT-5696 Prohibit type parameters for enum classes
|
||||
|
||||
package bug
|
||||
|
||||
public enum class Foo<!TYPE_PARAMETERS_IN_ENUM!><T><!> {
|
||||
A : Foo<String>()
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package
|
||||
|
||||
package bug {
|
||||
|
||||
public final enum class Foo</*0*/ T> : kotlin.Enum<bug.Foo<T>> {
|
||||
private constructor Foo</*0*/ T>()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: bug.Foo<T>): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public enum entry A : bug.Foo<kotlin.String> {
|
||||
private constructor A()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: bug.Foo<kotlin.String>): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public class object <class-object-for-A> : bug.Foo.A {
|
||||
private constructor <class-object-for-A>()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: bug.Foo<kotlin.String>): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): bug.Foo<T>
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<bug.Foo<T>>
|
||||
}
|
||||
}
|
||||
@@ -10,13 +10,6 @@ enum class ProtocolState {
|
||||
abstract fun signal() : ProtocolState
|
||||
}
|
||||
|
||||
enum class Foo<T> {
|
||||
<!NO_GENERICS_IN_SUPERTYPE_SPECIFIER!>X<!>
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun box() {
|
||||
val <!UNUSED_VARIABLE!>x<!>: ProtocolState = ProtocolState.WAITING
|
||||
}
|
||||
|
||||
@@ -1,29 +1,7 @@
|
||||
package
|
||||
package
|
||||
|
||||
internal fun box(): kotlin.Unit
|
||||
|
||||
internal final enum class Foo</*0*/ T> : kotlin.Enum<Foo<T>> {
|
||||
private constructor Foo</*0*/ T>()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: Foo<T>): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public enum entry X {
|
||||
private constructor X()
|
||||
|
||||
public class object <class-object-for-X> : Foo.X {
|
||||
private constructor <class-object-for-X>()
|
||||
}
|
||||
}
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Foo<T>
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<Foo<T>>
|
||||
}
|
||||
|
||||
internal final enum class ProtocolState : kotlin.Enum<ProtocolState> {
|
||||
private constructor ProtocolState()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int
|
||||
@@ -33,7 +11,7 @@ internal final enum class ProtocolState : kotlin.Enum<ProtocolState> {
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
internal abstract fun signal(): ProtocolState
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
|
||||
public enum entry TALKING : ProtocolState {
|
||||
private constructor TALKING()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int
|
||||
@@ -43,7 +21,7 @@ internal final enum class ProtocolState : kotlin.Enum<ProtocolState> {
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
internal open override /*1*/ fun signal(): ProtocolState
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
|
||||
public class object <class-object-for-TALKING> : ProtocolState.TALKING {
|
||||
private constructor <class-object-for-TALKING>()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int
|
||||
@@ -55,7 +33,7 @@ internal final enum class ProtocolState : kotlin.Enum<ProtocolState> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public enum entry WAITING : ProtocolState {
|
||||
private constructor WAITING()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int
|
||||
@@ -65,7 +43,7 @@ internal final enum class ProtocolState : kotlin.Enum<ProtocolState> {
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
internal open override /*1*/ fun signal(): ProtocolState
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
|
||||
public class object <class-object-for-WAITING> : ProtocolState.WAITING {
|
||||
private constructor <class-object-for-WAITING>()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: ProtocolState): kotlin.Int
|
||||
@@ -77,8 +55,8 @@ internal final enum class ProtocolState : kotlin.Enum<ProtocolState> {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): ProtocolState
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<ProtocolState>
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user