Support class reference expression for reified type parameters

Also make KClass::java an intrinsic property.

Based on the work by @dnpetrov

 #KT-6976 Fixed
This commit is contained in:
Alexander Udalov
2015-07-29 23:43:11 +03:00
parent 628bb774fd
commit a0cc313156
13 changed files with 283 additions and 41 deletions

View File

@@ -0,0 +1,16 @@
import kotlin.reflect.jvm.java
class Klass
fun foo() {
val c0 = (Klass::class).java // prevent intrinsic .java for class literal
val c1 = Klass::class.java
val c2 = Int::class.java
val c3 = Integer::class.java
}
// 2 LDC LKlass;.class
// 1 GETSTATIC java/lang/Integer.TYPE : Ljava/lang/Class;
// 1 INVOKESTATIC kotlin/reflect/jvm.*\.getJava
// 1 LDC Ljava/lang/Integer;.class