Support KClass.simpleName in stdlib-only reflection implementation
#KT-33646 Fixed
This commit is contained in:
+14
-6
@@ -1,8 +1,5 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// TODO: muted automatically, investigate should it be ran for JS or not
|
||||
// IGNORE_BACKEND: JS, NATIVE
|
||||
|
||||
// WITH_REFLECT
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@@ -16,6 +13,10 @@ fun box(): String {
|
||||
|
||||
assertEquals("Array", Array<Any>::class.simpleName)
|
||||
assertEquals("Array", Array<IntArray>::class.simpleName)
|
||||
assertEquals("Array", Array<Array<String>>::class.simpleName)
|
||||
|
||||
assertEquals("IntArray", IntArray::class.simpleName)
|
||||
assertEquals("DoubleArray", DoubleArray::class.simpleName)
|
||||
|
||||
assertEquals("Companion", Int.Companion::class.simpleName)
|
||||
assertEquals("Companion", Double.Companion::class.simpleName)
|
||||
@@ -24,9 +25,16 @@ fun box(): String {
|
||||
assertEquals("IntRange", IntRange::class.simpleName)
|
||||
|
||||
assertEquals("List", List::class.simpleName)
|
||||
assertEquals("Entry", Map.Entry::class.simpleName)
|
||||
|
||||
// TODO: this is wrong but should be fixed
|
||||
// TODO: KT-11754
|
||||
assertEquals("List", MutableList::class.simpleName)
|
||||
assertEquals("Entry", MutableMap.MutableEntry::class.simpleName)
|
||||
|
||||
assertEquals("Function0", Function0::class.simpleName)
|
||||
assertEquals("Function1", Function1::class.simpleName)
|
||||
assertEquals("Function5", Function5::class.simpleName)
|
||||
assertEquals("FunctionN", Function42::class.simpleName)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// WITH_REFLECT
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@@ -10,7 +9,6 @@ fun box(): String {
|
||||
assertEquals("Klass", Klass::class.simpleName)
|
||||
assertEquals("Date", java.util.Date::class.simpleName)
|
||||
assertEquals("ObjectRef", kotlin.jvm.internal.Ref.ObjectRef::class.simpleName)
|
||||
assertEquals("Void", java.lang.Void::class.simpleName)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -13,5 +13,7 @@ fun box(): String {
|
||||
assertEquals(Void.TYPE, Void.TYPE.kotlin.javaPrimitiveType)
|
||||
assertEquals(Void::class.java, Void.TYPE.kotlin.javaObjectType)
|
||||
|
||||
assertEquals("Void", Void::class.simpleName)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND: NATIVE
|
||||
// WITH_REFLECT
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@@ -15,11 +15,11 @@ fun box(): String {
|
||||
assertEquals("Klass", jClass.getSimpleName())
|
||||
assertEquals("Klass", kjClass.getSimpleName())
|
||||
assertEquals("Klass", kkClass.java.simpleName)
|
||||
assertEquals("Klass", kClass.simpleName)
|
||||
assertEquals(kjClass, jjClass)
|
||||
|
||||
try { kClass.simpleName; return "Fail 1" } catch (e: Error) {}
|
||||
try { kClass.qualifiedName; return "Fail 2" } catch (e: Error) {}
|
||||
try { kClass.members; return "Fail 3" } catch (e: Error) {}
|
||||
try { kClass.qualifiedName; return "Fail qualifiedName" } catch (e: Error) {}
|
||||
try { kClass.members; return "Fail members" } catch (e: Error) {}
|
||||
|
||||
val jlError = Error::class.java
|
||||
val kljError = Error::class
|
||||
@@ -29,6 +29,7 @@ fun box(): String {
|
||||
assertEquals("Error", jlError.getSimpleName())
|
||||
assertEquals("Error", jljError.getSimpleName())
|
||||
assertEquals("Error", jlkError.java.simpleName)
|
||||
assertEquals("Error", kljError.simpleName)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -13,5 +13,7 @@ fun box(): String {
|
||||
assertEquals(Void.TYPE, Void.TYPE.kotlin.javaPrimitiveType)
|
||||
assertEquals(Void::class.java, Void.TYPE.kotlin.javaObjectType)
|
||||
|
||||
assertEquals("Void", Void::class.simpleName)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user