| // WITH_STDLIB | |
| import kotlin.test.* | |
| open class C { | |
| open var p2 = "<prop:C>" | |
| set(value) { field = "<prop:C>" + value } | |
| } | |
| class C1: C() { | |
| override var p2 = super<C>.p2 + "<prop:C1>" | |
| set(value) { | |
| super<C>.p2 = value | |
| field = "<prop:C1>" + super<C>.p2 | |
| } | |
| } | |
| open class C2: C() { | |
| } | |
| class C3: C2() { | |
| override var p2 = super<C2>.p2 + "<prop:C3>" | |
| set(value) { | |
| super<C2>.p2 = value | |
| field = "<prop:C3>" + super<C2>.p2 | |
| } | |
| } | |
| fun box(): String { | |
| val c1 = C1() | |
| val c3 = C3() | |
| c1.p2 = "zzz" | |
| c3.p2 = "zzz" | |
| val c1p2 = c1.p2 | |
| if (c1p2 != "<prop:C1><prop:C>zzz") return "FAIL 1: " | |
| val c3p2 = c3.p2 | |
| if (c3p2 != "<prop:C3><prop:C>zzz") return "FAIL 2: " | |
| return "OK" | |
| } |