FIR CFA: remove class initializer part nodes
Instead, attach subgraphs directly to the class enter node.
This commit is contained in:
@@ -224,8 +224,10 @@ class AnonymousFunctionExpressionNode(owner: ControlFlowGraph, override val fir:
|
||||
|
||||
// ----------------------------------- Classes -----------------------------------
|
||||
|
||||
class ClassEnterNode(owner: ControlFlowGraph, override val fir: FirClass, level: Int, id: Int) : CFGNode<FirClass>(owner, level, id),
|
||||
class ClassEnterNode(owner: ControlFlowGraph, override val fir: FirClass, level: Int, id: Int) : CFGNodeWithSubgraphs<FirClass>(owner, level, id),
|
||||
GraphEnterNodeMarker {
|
||||
override lateinit var subGraphs: List<ControlFlowGraph>
|
||||
|
||||
override fun <R, D> accept(visitor: ControlFlowGraphVisitor<R, D>, data: D): R {
|
||||
return visitor.visitClassEnterNode(this, data)
|
||||
}
|
||||
@@ -279,14 +281,6 @@ class ScriptExitNode(owner: ControlFlowGraph, override val fir: FirScript, level
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------- Initialization -----------------------------------
|
||||
|
||||
class PartOfClassInitializationNode(owner: ControlFlowGraph, override val fir: FirControlFlowGraphOwner, level: Int, id: Int) : CFGNodeWithCfgOwner<FirControlFlowGraphOwner>(owner, level, id) {
|
||||
override fun <R, D> accept(visitor: ControlFlowGraphVisitor<R, D>, data: D): R {
|
||||
return visitor.visitPartOfClassInitializationNode(this, data)
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------- Property -----------------------------------
|
||||
|
||||
class PropertyInitializerEnterNode(owner: ControlFlowGraph, override val fir: FirProperty, level: Int, id: Int) : CFGNode<FirProperty>(owner, level, id),
|
||||
|
||||
@@ -82,7 +82,6 @@ fun CFGNode<*>.render(): String =
|
||||
is BinaryOrEnterRightOperandNode -> "Enter right part of ||"
|
||||
is BinaryOrExitNode -> "Exit ||"
|
||||
|
||||
is PartOfClassInitializationNode -> "Part of class initialization"
|
||||
is PropertyInitializerEnterNode -> "Enter property"
|
||||
is PropertyInitializerExitNode -> "Exit property"
|
||||
is DelegateExpressionExitNode -> "Exit property delegate"
|
||||
|
||||
-6
@@ -96,12 +96,6 @@ abstract class ControlFlowGraphVisitor<out R, in D> {
|
||||
return visitNode(node, data)
|
||||
}
|
||||
|
||||
// ----------------------------------- Initialization -----------------------------------
|
||||
|
||||
open fun visitPartOfClassInitializationNode(node: PartOfClassInitializationNode, data: D): R {
|
||||
return visitNode(node, data)
|
||||
}
|
||||
|
||||
// ----------------------------------- Property -----------------------------------
|
||||
|
||||
open fun visitPropertyInitializerEnterNode(node: PropertyInitializerEnterNode, data: D): R {
|
||||
|
||||
Reference in New Issue
Block a user