// JVM_ABI_K1_K2_DIFF: KT-63864 // WITH_STDLIB // MODULE: lib // FILE: lib.kt package a import kotlin.reflect.KProperty public val sb = StringBuilder() open class A { open val x = 42 } class Delegate { val f = 117 operator fun getValue(receiver: Any?, p: KProperty<*>): Int { sb.appendLine(p.name) return f } } open class B: A() { override val x: Int by Delegate() fun bar() { sb.appendLine(super.x) } } // MODULE: main(lib) // FILE: main.kt import a.* import kotlin.test.* open class C: B() { override val x: Int = 156 fun foo() { sb.appendLine(x) sb.appendLine(super.x) bar() } } fun box(): String { val c = C() c.foo() assertEquals(""" 156 x 117 42 """.trimIndent(), sb.toString()) return "OK" }