JS: fix referencing outer class from secondary constructor
See KT-21041
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
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"
|
||||
}
|
||||
Reference in New Issue
Block a user