20c4a7b244
Now FE IR -> BE IR transformation is performed in multiple stages controller by Fir2IrConverter. Stages are * files & classes registration * supertypes & type parameters handling * functions & properties signature generation * body generation After each step we have guarantee (with exception of local classes & type inference combination, and external symbols) that required symbols (class/function/property/variable/type parameter) are already bound to real declarations and have correct parents. This commit also fixes incorrect parents for local classes
26 lines
410 B
Kotlin
Vendored
26 lines
410 B
Kotlin
Vendored
open class C(val s: String) {
|
|
fun test(): String {
|
|
return s
|
|
}
|
|
}
|
|
|
|
class B(var x: String) {
|
|
fun foo(): String {
|
|
var s = "OK"
|
|
class Z : C(s) {}
|
|
return Z().test()
|
|
}
|
|
|
|
fun foo2(): String {
|
|
class Y : C(x) {}
|
|
return Y().test()
|
|
}
|
|
}
|
|
|
|
|
|
fun box(): String {
|
|
val b = B("OK")
|
|
if (b.foo() != "OK") return "fail: ${b.foo()}"
|
|
return b.foo2()
|
|
}
|