Fix KClassImpl#toString to render Kotlin FQ name, not JVM one
This commit is contained in:
@@ -1,14 +1,26 @@
|
|||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
import kotlin.reflect.jvm.kotlin
|
|
||||||
|
|
||||||
class A
|
class A {
|
||||||
|
class Nested
|
||||||
|
|
||||||
|
companion object
|
||||||
|
}
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val p = javaClass<A>().kotlin
|
assertEquals("class A", "${A::class}")
|
||||||
if ("$p" != "class A") return "Fail: $p"
|
assertEquals("class A\$Nested", "${A.Nested::class}")
|
||||||
|
assertEquals("class A\$Companion", "${A.Companion::class}")
|
||||||
|
|
||||||
val s = javaClass<String>().kotlin
|
assertEquals("class kotlin.Any", "${Any::class}")
|
||||||
if ("$s" != "class java.lang.String") return "Fail: $s"
|
assertEquals("class kotlin.Int", "${Int::class}")
|
||||||
|
assertEquals("class kotlin.Int\$Companion", "${Int.Companion::class}")
|
||||||
|
assertEquals("class kotlin.IntArray", "${IntArray::class}")
|
||||||
|
// TODO
|
||||||
|
// assertEquals("class kotlin.Array", "${Array<Any>::class}")
|
||||||
|
assertEquals("class kotlin.String", "${String::class}")
|
||||||
|
assertEquals("class kotlin.String", "${java.lang.String::class}")
|
||||||
|
|
||||||
|
assertEquals("class java.lang.Runnable", "${Runnable::class}")
|
||||||
|
|
||||||
return "OK"
|
return "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,6 +102,12 @@ class KClassImpl<T>(override val jClass: Class<T>) : KCallableContainerImpl(), K
|
|||||||
override fun hashCode(): Int =
|
override fun hashCode(): Int =
|
||||||
jClass.hashCode()
|
jClass.hashCode()
|
||||||
|
|
||||||
override fun toString(): String =
|
override fun toString(): String {
|
||||||
jClass.toString()
|
return "class " + classId.let { classId ->
|
||||||
|
val packageFqName = classId.getPackageFqName()
|
||||||
|
val packagePrefix = if (packageFqName.isRoot()) "" else packageFqName.asString() + "."
|
||||||
|
val classSuffix = classId.getRelativeClassName().asString().replace('.', '$')
|
||||||
|
packagePrefix + classSuffix
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user