// generic interface, non-generic impl, vtable call + interface call open class A { open var size: Int = 56 } interface C { var size: T } open class B : C, A() fun box(): String { val b = B() if (b.size != 56) return "fail 1" b.size = 55 if (b.size != 55) return "fail 2" val c: C = b if (c.size != 55) return "fail 3" c.size = 57 if (c.size != 57) return "fail 4" return "OK" } fun main(args: Array) { println(box()) }