mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
47 lines
1.1 KiB
Kotlin
Vendored
47 lines
1.1 KiB
Kotlin
Vendored
open class A1(y: String) {
|
|
val x = "A1.x,$y"
|
|
}
|
|
|
|
open class A2(y: String) {
|
|
val x = "A2.x,$y"
|
|
|
|
inner open class B1 : A1 {
|
|
constructor(p: String) : super("B1.param,$p")
|
|
}
|
|
|
|
inner open class B2 : A2 {
|
|
constructor(p: String) : super("B2.param,$p")
|
|
}
|
|
|
|
inner class B3 : B1 {
|
|
constructor(p: String) : super("B3.param,$p")
|
|
}
|
|
|
|
fun foo(): String {
|
|
return B1("q").x + ";" + B2("w").x + ";" + B3("e").x + ";" + x
|
|
}
|
|
}
|
|
|
|
open class A3(y: String) {
|
|
val x = "A3.x,$y"
|
|
|
|
inner open class B1(p: String) : A1("B1.param,$p")
|
|
|
|
inner open class B2(p: String) : A3("B2.param,$p")
|
|
|
|
inner class B3(p: String) : B1("B3.param,$p")
|
|
|
|
fun foo(): String {
|
|
return B1("q").x + ";" + B2("w").x + ";" + B3("e").x + ";" + x
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
val r1 = A2("c").foo()
|
|
if (r1 != "A1.x,B1.param,q;A2.x,B2.param,w;A1.x,B1.param,B3.param,e;A2.x,c") return "fail1: $r1"
|
|
|
|
val r2 = A3("d").foo()
|
|
if (r2 != "A1.x,B1.param,q;A3.x,B2.param,w;A1.x,B1.param,B3.param,e;A3.x,d") return "fail2: $r2"
|
|
|
|
return "OK"
|
|
} |