blob: 7f435711c38761edbc3f9da66e090ef750b8ba13 [file]
class A {
override fun toString(): String = "A"
inner class B {
override fun toString(): String = "B"
inner class C(val a: A = this@A, val b: B = this@B) {
override fun toString(): String = "C${f1()}${f2()}${f3()}${f4()}${f5()}"
fun f1(): String = "C"
fun f2(): String = a.toString()
fun f3(): String = b.toString()
fun f4(): String = this@A.toString()
fun f5(): String = this@B.toString()
fun f6(aa: A = this@A): String = aa.toString()
}
}
}
fun box(): String {
val c = A().B().C()
if (c.toString() != "CCABAB") "FAIL1"
if (c.f1() != "C") return "FAIL2"
if (c.f2() != "A") return "FAIL3"
if (c.f3() != "B") return "FAIL4"
if (c.f4() != "A") return "FAIL5"
if (c.f5() != "B") return "FAIL6"
if (c.f6() != "A") return "FAIL7"
return "OK"
}