Files
kotlin-fork/compiler/testData/codegen/bytecodeText/inline/specialEnumFunction.kt
T
Dmitry Petrov d37b616e1f JVM_IR: Fix enum classes ABI
1. Enum entry fields don't have nullability annotations.

2. Enum class special methods (values, valueOf) are not 'final'
(although they probably should be, javac generates corresponding
methods without ACC_FINAL flag).

3. Enum class special methods don't have nullability annotations.

4. Don't generate synthetic accessor for enum entry class constructor.

KT-37019 KT-37020 KT-37021
2020-06-30 18:24:25 +03:00

24 lines
879 B
Kotlin
Vendored

inline fun <reified T : Enum<T>> myValues(): String {
val values = enumValues<T>()
return "OK"
}
inline fun <reified T : Enum<T>> value(): String {
val values = enumValueOf<T>("123")
return "OK"
}
enum class Z
fun main() {
myValues<Z>()
value<Z>()
}
//2 reifiedOperationMarker
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ICONST_0\s*ANEWARRAY java/lang/Enum
//1 INVOKESTATIC Z\.values \(\)\[LZ;
//4 valueOf
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ACONST_NULL\s*ALOAD 2\s*INVOKESTATIC java/lang/Enum\.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
//1 INVOKESTATIC Z\.valueOf \(Ljava/lang/String;\)LZ;
//1 public static valueOf
//2 INVOKESTATIC java/lang/Enum.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;