Fix for KT-16225: enumValues non-reified stub implementation references nonexistent method

#KT-16225 Fixed
This commit is contained in:
Mikhael Bogdanov
2017-02-08 10:58:28 +01:00
parent ba73269ee0
commit b1e2db21d3
7 changed files with 84 additions and 20 deletions

View File

@@ -0,0 +1,24 @@
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;