Files
kotlin/compiler/testData/codegen/boxWithStdlib/annotations/annotatedEnumEntry.kt
Alexander Udalov 128c938965 Make Array.size() a function instead of a property
Also add a deprecated extension property to help migration. This is done to
unify getting size of arrays and collections
2014-11-17 15:02:38 +03:00

34 lines
803 B
Kotlin

// KT-5665
import java.lang.annotation.*
Retention(RetentionPolicy.RUNTIME)
annotation class First
Retention(RetentionPolicy.RUNTIME)
annotation class Second(val value: String)
enum class E {
[First]
E1 {
fun foo() = "something"
}
[Second("OK")]
E2
}
fun box(): String {
val e = javaClass<E>()
val e1 = e.getDeclaredField(E.E1.toString()).getAnnotations()
if (e1.size() != 1) return "Fail E1 size: ${e1.toList()}"
if (e1[0].annotationType() != javaClass<First>()) return "Fail E1: ${e1.toList()}"
val e2 = e.getDeclaredField(E.E2.toString()).getAnnotations()
if (e2.size() != 1) return "Fail E2 size: ${e2.toList()}"
if (e2[0].annotationType() != javaClass<Second>()) return "Fail E2: ${e2.toList()}"
return (e2[0] as Second).value
}