K2 Scripting: add proper CFG processing for scripts

#KT-59683 fixed
#KT-63328 fixed
This commit is contained in:
Ilya Chernikov
2023-11-22 16:51:48 +01:00
committed by Space Team
parent a69eaa0ea3
commit 12da3d2b9f
12 changed files with 208 additions and 70 deletions
@@ -341,7 +341,12 @@ class AnonymousObjectExpressionExitNode(owner: ControlFlowGraph, override val fi
// ----------------------------------- Scripts ------------------------------------------
class ScriptEnterNode(owner: ControlFlowGraph, override val fir: FirScript, level: Int) : CFGNode<FirScript>(owner, level), GraphEnterNodeMarker {
class ScriptEnterNode(owner: ControlFlowGraph, override val fir: FirScript, level: Int)
: CFGNodeWithSubgraphs<FirScript>(owner, level), GraphEnterNodeMarker
{
@set:CfgInternals
override lateinit var subGraphs: List<ControlFlowGraph>
override fun <R, D> accept(visitor: ControlFlowGraphVisitor<R, D>, data: D): R {
return visitor.visitScriptEnterNode(this, data)
}
@@ -36,6 +36,7 @@ class ControlFlowGraph(val declaration: FirDeclaration?, val name: String, val k
Class,
Constructor,
Function,
Script,
LocalFunction,
AnonymousFunction,
AnonymousFunctionCalledInPlace,