javaClass<T> is supported for reified T

This commit is contained in:
Denis Zharkov
2014-10-06 15:29:26 +04:00
committed by Andrey Breslav
parent f3c49c605f
commit fc1d8dd9ce
7 changed files with 62 additions and 2 deletions
@@ -0,0 +1,17 @@
import kotlin.test.assertEquals
inline fun <reified T> foo(x: Class<T> = javaClass<T>()): String = x.getName()
inline fun <reified R> bar(x: R): String = foo<R>()
fun box(): String {
assertEquals("java.lang.String", foo<String>())
assertEquals("java.lang.Integer", foo<Int>())
assertEquals("java.lang.Object", foo<Any>())
assertEquals("java.lang.String", bar("abc"))
assertEquals("java.lang.Integer", bar(1))
assertEquals("java.lang.Object", bar(Any()))
return "OK"
}