Files
kotlin-fork/compiler/testData/codegen/box/enum/modifierFlags.kt
T
Ivan Kylchik c7435ba760 Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00

30 lines
879 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_STDLIB
// FULL_JDK
import java.lang.reflect.Modifier
enum class En {
Y
}
fun box(): String {
val klass = En::class.java
val superclass = klass.superclass.name
if (superclass != "java.lang.Enum") "Fail superclass: $superclass"
val enumModifiers = klass.modifiers
if ((enumModifiers and 0x4000) == 0) return "Fail ACC_ENUM on class"
if ((enumModifiers and Modifier.FINAL) == 0) return "Fail FINAL on class"
val entry = klass.getField("Y")
val entryModifiers = entry.modifiers
if ((entryModifiers and 0x4000) == 0) return "Fail ACC_ENUM on entry"
if ((entryModifiers and Modifier.FINAL) == 0) return "Fail FINAL on entry"
if ((entryModifiers and Modifier.STATIC) == 0) return "Fail FINAL on entry"
if ((entryModifiers and Modifier.PUBLIC) == 0) return "Fail FINAL on entry"
return "OK"
}