open class A { open var x: T = "Fail" as T get } class B : A() { override var x: String = "Fail" set } fun box(): String { val a: A = B() a.x = "OK" return a.x }