Fix loading class literal value void.class in reflection

#KT-27878 Fixed
This commit is contained in:
Alexander Udalov
2018-10-30 17:44:41 +01:00
parent 902d414d39
commit 2f72f68e1a
7 changed files with 61 additions and 2 deletions
@@ -0,0 +1,29 @@
// WITH_REFLECT
// TARGET_BACKEND: JVM
// FILE: Anno.java
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Anno {
Class<?> value() default void.class;
}
// FILE: test.kt
import kotlin.test.assertEquals
class C {
@Anno
fun f1() {}
@Anno(Void::class)
fun f2() {}
}
fun box(): String {
assertEquals("[@Anno(value=void)]", C::f1.annotations.toString())
assertEquals("[@Anno(value=class java.lang.Void)]", C::f2.annotations.toString())
return "OK"
}