Files
kotlin-fork/js/js.translator/testData/delegation/cases/delegationByArg.kt
T
2015-09-22 15:00:24 +02:00

28 lines
618 B
Kotlin
Vendored

package foo
interface Base {
abstract fun foo(x: String): String
var prop: String
}
class BaseImpl(val s: String) : Base {
override fun foo(x: String): String = "Base: ${s}:${x}"
override var prop: String = "prop"
}
class Derived(b: Base) : Base by b
fun box(): String {
var d = Derived(BaseImpl("test"))
assertEquals("Base: test:!!", d.foo("!!"), "delegation by argument, function member")
assertEquals("prop", d.prop, "delegation by argument, get property")
d.prop = "new value"
assertEquals("new value", d.prop, "delegation by argument, set property")
return "OK"
}