Support KClass.simpleName and built-in class literals

This commit is contained in:
Alexander Udalov
2015-03-07 03:45:46 +03:00
parent 6e45c6f17c
commit b93b9bd565
9 changed files with 84 additions and 2 deletions
@@ -0,0 +1,22 @@
import kotlin.test.assertEquals
fun box(): String {
assertEquals("Any", Any::class.simpleName)
assertEquals("String", String::class.simpleName)
assertEquals("CharSequence", CharSequence::class.simpleName)
assertEquals("Number", Number::class.simpleName)
assertEquals("Int", Int::class.simpleName)
assertEquals("Long", Long::class.simpleName)
assertEquals("Default", Int.Default::class.simpleName)
assertEquals("Default", Double.Default::class.simpleName)
assertEquals("IntRange", IntRange::class.simpleName)
assertEquals("List", List::class.simpleName)
// TODO: this is wrong but should be fixed
assertEquals("List", MutableList::class.simpleName)
return "OK"
}
@@ -0,0 +1,14 @@
class Klass
fun box(): String {
val x = Klass::class
if (x.simpleName != "Klass") return "Fail x: ${x.simpleName}"
val y = java.util.Date::class
if (y.simpleName != "Date") return "Fail y: ${y.simpleName}"
val z = kotlin.jvm.internal.KotlinSyntheticClass.Kind::class
if (z.simpleName != "Kind") return "Fail z: ${z.simpleName}"
return "OK"
}