e22594acde
Prefer to rename fields from the class, not from the companion, to be more in line with the old backend's behavior. This has no effect on the behavior of current tests but removes differences in metadata (since metadata has information about every property->field mapping) in some of them
33 lines
741 B
Kotlin
Vendored
33 lines
741 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// WITH_RUNTIME
|
|
// 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("x$1").modifiers))
|
|
return "Fail: A.x$1 should not be static"
|
|
|
|
return "OK"
|
|
}
|