| // 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" | |
| } |