Files
kotlin/compiler/testData/codegen/box/enum/modifierFlags.kt
pyos fb0261bfc1 Remove JvmDescriptorWithExtraFlags and fix syntheticness
(of fields and classes, it is already correct for methods).
2019-04-09 08:18:14 +02:00

30 lines
880 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_RUNTIME
// 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"
}