blob: 0a4558ae4b7def375f269d52faf28b581a6404e5 [file]
interface IActing {
fun act(): String
}
class CActing(val value: String = "OK"): IActing {
override fun act(): String = value
}
// final so no need in delegate field
class Test(val acting: CActing = CActing()): IActing by acting {
}
// even if open so we don't need delegate field
open class Test2(open val acting: CActing = CActing()): IActing by acting {
}
// even if open the backing field is final, so we don't need delegate field
class Test3() : Test2() {
override val acting = CActing("OKOK")
}
fun box(): String {
val test = Test()
return test.act()
}