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
20 lines
391 B
Kotlin
Vendored
20 lines
391 B
Kotlin
Vendored
fun String.foo() : String {
|
|
fun Int.bar() : String {
|
|
fun Long.baz() : String {
|
|
val x = this@foo
|
|
val y = this@bar
|
|
val z = this@baz
|
|
return "$x $y $z"
|
|
}
|
|
return 0L.baz()
|
|
}
|
|
return 42.bar()
|
|
}
|
|
|
|
fun box() : String {
|
|
val result = "OK".foo()
|
|
|
|
if (result != "OK 42 0") return "fail: $result"
|
|
|
|
return "OK"
|
|
} |