Files
2018-09-12 09:49:25 +03:00

33 lines
736 B
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1299
package foo
interface Base {
abstract fun foo(x: String): String
var prop: String
}
class BaseImpl(val s: String) : Base {
override fun foo(x: String) = "BaseImpl.foo: ${s}:${x}"
override var prop: String = "init"
set(value) {
field = "prop:${value}"
}
}
class Base2Impl(val s: String) : Base by BaseImpl("${s} by BaseImpl")
class Derived(val s: String) : Base by Base2Impl("${s} by Base2Impl")
fun box(): String {
assertEquals("BaseImpl.foo: Derived by Base2Impl by BaseImpl:!!", Derived("Derived").foo("!!"))
var d = Derived("Derived")
assertEquals("init", d.prop)
d.prop = "A"
assertEquals("prop:A", d.prop)
return "OK"
}