33 lines
629 B
Kotlin
Vendored
33 lines
629 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
|
|
//WITH_RUNTIME
|
|
|
|
class ThingTemplate {
|
|
val prop = 0
|
|
}
|
|
|
|
class ThingVal(template: ThingTemplate) {
|
|
val prop = template.prop
|
|
}
|
|
|
|
class ThingVar(template: ThingTemplate) {
|
|
var prop = template.prop
|
|
}
|
|
|
|
|
|
fun box() : String {
|
|
val template = ThingTemplate();
|
|
val javaClass = ThingTemplate::class.java
|
|
val field = javaClass.getDeclaredField("prop")!!
|
|
field.isAccessible = true
|
|
field.set(template, 1)
|
|
|
|
val thingVal = ThingVal(template)
|
|
if (thingVal.prop != 1) return "fail 1"
|
|
|
|
val thingVar = ThingVar(template)
|
|
if (thingVar.prop != 1) return "fail 2"
|
|
|
|
return "OK"
|
|
}
|