| // TARGET_BACKEND: JVM |
| // WITH_STDLIB |
| // FULL_JDK |
| |
| import java.lang.reflect.Modifier |
| |
| class A { |
| val x = "outer" |
| val y = "outer" |
| |
| companion object { |
| @JvmField |
| val x = "companion" |
| |
| const val y = "companion" |
| } |
| } |
| |
| fun box(): String { |
| if (A().x != "outer") return "Fail outer x" |
| if (A().y != "outer") return "Fail outer y" |
| if (A.x != "companion") return "Fail companion x" |
| if (A.y != "companion") return "Fail companion y" |
| |
| if (!Modifier.isStatic(A::class.java.getDeclaredField("x").modifiers)) |
| return "Fail: A.x should be static" |
| |
| if (!Modifier.isStatic(A::class.java.getDeclaredField("y").modifiers)) |
| return "Fail: A.y should be static" |
| |
| if (Modifier.isStatic(A::class.java.getDeclaredField("x$1").modifiers)) |
| return "Fail: A.x$1 should not be static" |
| |
| if (Modifier.isStatic(A::class.java.getDeclaredField("y$1").modifiers)) |
| return "Fail: A.y$1 should not be static" |
| |
| return "OK" |
| } |