blob: 208667ba3a6f33585b30ef9122b5fddf43d6f1a5 [file]
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: A.java
public class A {
@Annos(value = @Anno(token = "OK"))
@Strings(value = "OK")
@Ints(value = 42)
@Enums(value = E.EA)
@Classes(value = double.class)
public void test() {}
}
// FILE: box.kt
import kotlin.reflect.KClass
import kotlin.test.assertEquals
annotation class Anno(val token: String)
enum class E { EA }
annotation class Annos(val value: Array<Anno>)
annotation class Strings(val value: Array<String>)
annotation class Ints(val value: IntArray)
annotation class Enums(val value: Array<E>)
annotation class Classes(val value: Array<KClass<*>>)
class C : A()
fun box(): String {
val annotations = C::class.java.getMethod("test").annotations.toList()
assertEquals("OK", annotations.filterIsInstance<Annos>().single().value.single().token)
assertEquals("OK", annotations.filterIsInstance<Strings>().single().value.single())
assertEquals(42, annotations.filterIsInstance<Ints>().single().value.single())
assertEquals(E.EA, annotations.filterIsInstance<Enums>().single().value.single())
assertEquals(Double::class, annotations.filterIsInstance<Classes>().single().value.single())
return "OK"
}