backend: Use simple DFS during closure building.
Now closure builder can contain includes. Includes
are another builders which closures must be added
to the building one.
Includes are:
For function closure:
call targets (including constructors)
callable reference targets
For class:
all children declarations
call targets (including constructors)
callable reference targets
For constructor:
call and callable reference targets
delegating constructor call target
constructing class closure
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
fun main(args : Array<String>) {
|
||||
var x = 1
|
||||
fun local1() {
|
||||
x++
|
||||
}
|
||||
|
||||
class A {
|
||||
fun bar() {
|
||||
local1()
|
||||
}
|
||||
}
|
||||
A().bar()
|
||||
println("OK")
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
fun main(args : Array<String>) {
|
||||
var x = 0
|
||||
class A {
|
||||
fun bar() {
|
||||
fun local() {
|
||||
class B {
|
||||
fun baz() {
|
||||
fun local2() {
|
||||
x++
|
||||
}
|
||||
local2()
|
||||
}
|
||||
}
|
||||
B().baz()
|
||||
}
|
||||
local()
|
||||
}
|
||||
}
|
||||
A().bar()
|
||||
println("OK")
|
||||
}
|
||||
Reference in New Issue
Block a user