blob: c5c17b1381d05fd7abd15bbd995b0c02fe13855d [file] [log] [blame]
interface IBase {
fun foo(x: Int, s: String)
fun bar(): Int
fun String.qux()
}
object BaseImpl : IBase {
override fun foo(x: Int, s: String) {}
override fun bar(): Int = 42
override fun String.qux() {}
}
interface IOther {
val x: String
var y: Int
val Byte.z1: Int
var Byte.z2: Int
}
fun otherImpl(x0: String, y0: Int): IOther = object : IOther {
override val x: String = x0
override var y: Int = y0
override val Byte.z1: Int get() = 1
override var Byte.z2: Int
get() = 2
set(value) {}
}
class Test1 : IBase by BaseImpl
class Test2 : IBase by BaseImpl, IOther by otherImpl("", 42)