mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
47 lines
982 B
Kotlin
Vendored
47 lines
982 B
Kotlin
Vendored
interface T {
|
|
open fun baz(): String = "T.baz"
|
|
}
|
|
|
|
open class A {
|
|
open val foo: String = "OK"
|
|
open fun bar(): String = "OK"
|
|
open fun boo(): String = "OK"
|
|
}
|
|
|
|
open class B : A(), T {
|
|
override fun bar(): String = "B"
|
|
override fun baz(): String = "B.baz"
|
|
inner class E {
|
|
val foo: String = super<A>@B.foo
|
|
fun bar() = super<A>@B.bar() + super@B.bar() + super@B.baz()
|
|
}
|
|
}
|
|
|
|
class C : B() {
|
|
override fun bar(): String = "C"
|
|
override fun boo(): String = "C"
|
|
inner class D {
|
|
val foo: String = super<B>@C.foo
|
|
fun bar() = super<B>@C.bar() + super<B>@C.boo()
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
var r = ""
|
|
|
|
r = B().E().foo
|
|
if (r != "OK") return "fail 1; r = $r"
|
|
r = ""
|
|
r = B().E().bar()
|
|
if (r != "OKOKT.baz") return "fail 2; r = $r"
|
|
|
|
r = ""
|
|
r = C().D().foo
|
|
if (r != "OK") return "fail 3; r = $r"
|
|
r = ""
|
|
r = C().D().bar()
|
|
if (r != "BOK") return "fail 4; r = $r"
|
|
|
|
return "OK"
|
|
}
|