Map Kotlin TYPE target to Java TYPE_USE in bytecode
And TYPE_PARAMETER -> TYPE_PARAMETER similarly #KT-23857 Fixed
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FULL_JDK
|
||||
// FILE: A.java
|
||||
import java.util.List;
|
||||
|
||||
public class A<@Anno(1) T> {}
|
||||
|
||||
// FILE: Anno.kt
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@Target(AnnotationTarget.TYPE_PARAMETER)
|
||||
annotation class Anno(val value: Int = 0)
|
||||
|
||||
fun box(): String {
|
||||
val typeParameter = A::class.java.typeParameters.single()
|
||||
assertEquals("[@Anno(value=1)]", typeParameter.annotations.toList().toString())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FULL_JDK
|
||||
// FILE: A.java
|
||||
import java.util.List;
|
||||
|
||||
public class A {
|
||||
public static @Anno(1) String test(List<@Anno(2) String> list) {
|
||||
return list.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: Anno.kt
|
||||
|
||||
import java.lang.reflect.AnnotatedParameterizedType
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Anno(val value: Int = 0)
|
||||
|
||||
fun box(): String {
|
||||
val method = A::class.java.declaredMethods.single()
|
||||
assertEquals("[@Anno(value=1)]", method.annotatedReturnType.annotations.toList().toString())
|
||||
|
||||
val parameterType = method.parameters.single().annotatedType as AnnotatedParameterizedType
|
||||
assertEquals("[@Anno(value=2)]", parameterType.annotatedActualTypeArguments.single().annotations.toList().toString())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user