[FIR] Add Stub kind for CFG

Edges of stub graphs shouldn't be completed
This commit is contained in:
Dmitriy Novozhilov
2020-06-16 10:59:10 +03:00
parent 1a0df97961
commit 4e6542a646
2 changed files with 3 additions and 1 deletions
@@ -35,6 +35,7 @@ class ControlFlowGraph(val declaration: FirDeclaration?, val name: String, val k
internal fun complete() {
assertState(State.Building)
state = State.Completed
if (kind == Kind.Stub) return
val sortedNodes = orderNodes()
assert(sortedNodes.size == _nodes.size)
for (node in _nodes) {
@@ -80,6 +81,7 @@ class ControlFlowGraph(val declaration: FirDeclaration?, val name: String, val k
TopLevel(withBody = false),
AnnotationCall(withBody = true),
DefaultArgument(withBody = false),
Stub(withBody = true)
}
}
@@ -318,7 +318,7 @@ class ControlFlowGraphBuilder {
fun enterClass() {
pushGraph(
ControlFlowGraph(null, "STUB_CLASS_GRAPH", ControlFlowGraph.Kind.ClassInitializer),
ControlFlowGraph(null, "STUB_CLASS_GRAPH", ControlFlowGraph.Kind.Stub),
mode = Mode.ClassInitializer
)
}