KT-9670: optimize Class <-> KClass wrapping/unwrapping as a special case of boxing/unboxing.

NB doesn't work for arrays of classes.
This commit is contained in:
Dmitry Petrov
2016-03-03 16:12:05 +03:00
parent 2ecb8896cc
commit 3bbd8979e4
7 changed files with 135 additions and 30 deletions

View File

@@ -0,0 +1,16 @@
import kotlin.reflect.KClass
@Retention(AnnotationRetention.RUNTIME)
annotation class Ann(val arg: KClass<*>)
class OK
@Ann(OK::class) class MyClass
fun test(): String {
val arg = MyClass::class.java.getAnnotation(Ann::class.java).arg.java
return arg.getSimpleName()
}
// 0 INVOKESTATIC kotlin/jvm/internal/Reflection\.getOrCreateKotlinClass
// 0 INVOKESTATIC kotlin/jvm/JvmClassMappingKt\.getJavaClass