OptionalcfgThe node control flow enters this subtree at.
Control flow is modeled in post-order (operands are evaluated before the operator that consumes them),
so for compound constructs this is not the entryPoint
(which names the value-producing node) but the first node that is actually evaluated.
Left undefined whenever both coincide, which is the case for all leaves.
OptionalcfgThe node control flow leaves this subtree at, joining the branches of the construct if it has any.
Left undefined whenever the exitPoints already name it,
which is the case whenever the construct has a single point of exit.
OptionalcutSet by produceDataFlowGraph when a DataflowBudget ended the extraction early. The graph is then partial: everything processed before the bound was hit, and nothing after it.
The entry node into the subgraph
Current environments used for name resolution, probably updated on the next expression-list processing
All already identified exit points (active 'return'/'break'/'next'-likes) of the respective structure. This also tracks (local knowledge of) exceptions thrown within the structure. See the ExitPointType#Error|Error type for more information.
The current constructed dataflow graph
Registered hooks within the current subtree
References which are read within the current subtree.
IdentifierReference - a reference on a variable, parameter, function call, ...
OptionalkillReferences removed from scope within the current subtree (e.g., via rm); undefined unless an rm occurred.
References which are written to within the current subtree
IdentifierReference - a reference on a variable, parameter, function call, ...
References that have not been identified as read or write and will be so on higher processors.
For example, when we analyze the x vertex in x <- 3, we will first create an unknown reference for x
as we have not yet seen the assignment!
IdentifierReference - a reference on a variable, parameter, function call, ...
The dataflow information is one of the fundamental structures we have in the dataflow analysis. It is continuously updated during the dataflow analysis and holds its current state for the respective subtree processed. Each processor during the dataflow analysis may use the information from its children to produce a new state of the dataflow information.
You may initialize a new dataflow information with DataflowInformation.initialize.
See
DataflowCfgInformation - the control flow aspects