Files
kotlin-fork/compiler/testData/codegen/box/localClasses/kt4174.kt
T
Mikhail Glukhikh 20c4a7b244 [FIR2IR] Introduce staged transformation (first step)
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
2020-03-13 12:18:02 +03:00

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()
}