f7269eb384
^KT-60243 Merge-request: KT-MR-11125 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
61 lines
1.1 KiB
Kotlin
Vendored
61 lines
1.1 KiB
Kotlin
Vendored
package foo
|
|
|
|
interface Base {
|
|
abstract fun foo(x: String): String
|
|
}
|
|
|
|
class BaseImpl(val s: String) : Base {
|
|
override fun foo(x: String): String = "Base: ${s}:${x}"
|
|
}
|
|
|
|
interface Base2 {
|
|
abstract fun bar(x: String): String
|
|
}
|
|
|
|
class Base2Impl(val s: String) : Base2 {
|
|
override fun bar(x: String): String = "Base2: ${s}:${x}"
|
|
}
|
|
|
|
var global = ""
|
|
|
|
open class DerivedBase() {
|
|
init {
|
|
global += ":DerivedBase"
|
|
}
|
|
}
|
|
|
|
fun newBase(): Base {
|
|
global += ":newBase"
|
|
return BaseImpl("test")
|
|
}
|
|
|
|
fun newBase2(): Base2 {
|
|
global += ":newBase2"
|
|
return Base2Impl("test")
|
|
}
|
|
|
|
class Derived() : DerivedBase(), Base by newBase(), Base2 by newBase2() {
|
|
init {
|
|
global += ":Derived"
|
|
}
|
|
}
|
|
|
|
class Derived1() : Base by newBase(), DerivedBase(), Base2 by newBase2() {
|
|
init {
|
|
global += ":Derived"
|
|
}
|
|
}
|
|
|
|
class Derived2() : Base by newBase(), Base2 by newBase2(), DerivedBase() {
|
|
init {
|
|
global += ":Derived"
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
var d = Derived()
|
|
var d1 = Derived1()
|
|
var d2 = Derived2()
|
|
|
|
return "OK"
|
|
} |