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
21 lines
495 B
Kotlin
Vendored
21 lines
495 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// WITH_RUNTIME
|
|
|
|
@file:JvmName("Test")
|
|
@file:JvmMultifileClass
|
|
package test
|
|
|
|
fun foo(): String = bar()
|
|
fun bar(): String {
|
|
open class LocalGeneric<T>(val x: T)
|
|
class Derived(x: String) : LocalGeneric<String>(x)
|
|
fun <T> LocalGeneric<T>.extFun() = this
|
|
fun <T> localFun(x: LocalGeneric<T>) = x
|
|
class Local3 {
|
|
fun <T> method(x: LocalGeneric<T>) = x.x
|
|
}
|
|
return Local3().method(localFun(Derived("OK")).extFun())
|
|
}
|
|
|
|
fun box(): String = foo()
|