Support KClass.qualifiedName in stdlib-only reflection implementation

#KT-34586 Fixed
This commit is contained in:
Alexander Udalov
2019-10-24 19:16:57 +02:00
parent c164745301
commit 5c89f2fa54
10 changed files with 61 additions and 27 deletions
@@ -1,25 +1,40 @@
// TARGET_BACKEND: JVM
// WITH_REFLECT
// WITH_RUNTIME
import kotlin.test.assertEquals
fun box(): String {
assertEquals("kotlin.Any", Any::class.qualifiedName)
assertEquals("kotlin.Int", Int::class.qualifiedName)
assertEquals("kotlin.Int.Companion", Int.Companion::class.qualifiedName)
assertEquals("kotlin.IntArray", IntArray::class.qualifiedName)
assertEquals("kotlin.collections.List", List::class.qualifiedName)
assertEquals("kotlin.String", String::class.qualifiedName)
assertEquals("kotlin.String", java.lang.String::class.qualifiedName)
assertEquals("kotlin.CharSequence", CharSequence::class.qualifiedName)
assertEquals("kotlin.Number", Number::class.qualifiedName)
assertEquals("kotlin.Int", Int::class.qualifiedName)
assertEquals("kotlin.Long", Long::class.qualifiedName)
assertEquals("kotlin.Array", Array<Any>::class.qualifiedName)
assertEquals("kotlin.Array", Array<Int>::class.qualifiedName)
assertEquals("kotlin.Array", Array<IntArray>::class.qualifiedName)
assertEquals("kotlin.Array", Array<Array<String>>::class.qualifiedName)
assertEquals("java.util.Date", java.util.Date::class.qualifiedName)
assertEquals("kotlin.jvm.internal.Ref.ObjectRef", kotlin.jvm.internal.Ref.ObjectRef::class.qualifiedName)
assertEquals("java.lang.Void", java.lang.Void::class.qualifiedName)
assertEquals("kotlin.IntArray", IntArray::class.qualifiedName)
assertEquals("kotlin.DoubleArray", DoubleArray::class.qualifiedName)
assertEquals("kotlin.Int.Companion", Int.Companion::class.qualifiedName)
assertEquals("kotlin.Double.Companion", Double.Companion::class.qualifiedName)
assertEquals("kotlin.Char.Companion", Char.Companion::class.qualifiedName)
assertEquals("kotlin.ranges.IntRange", IntRange::class.qualifiedName)
assertEquals("kotlin.collections.List", List::class.qualifiedName)
assertEquals("kotlin.collections.Map.Entry", Map.Entry::class.qualifiedName)
// TODO: KT-11754
assertEquals("kotlin.collections.List", MutableList::class.qualifiedName)
assertEquals("kotlin.collections.Map.Entry", MutableMap.MutableEntry::class.qualifiedName)
assertEquals("kotlin.Function0", Function0::class.qualifiedName)
assertEquals("kotlin.Function1", Function1::class.qualifiedName)
assertEquals("kotlin.Function5", Function5::class.qualifiedName)
assertEquals("kotlin.jvm.functions.FunctionN", Function42::class.qualifiedName)
return "OK"
}