public class NonFatalPostDominatorDataFlow extends PostDominatorDataFlow
PreciseDataFlow.PreciseCFGBuilder<FlowItem extends polyglot.visit.DataFlow.Item>polyglot.visit.DataFlow.BoolItem<FlowItem extends polyglot.visit.DataFlow.Item>, polyglot.visit.DataFlow.ConditionNavigator<FlowItem extends polyglot.visit.DataFlow.Item>, polyglot.visit.DataFlow.FlowGraphSource<FlowItem extends polyglot.visit.DataFlow.Item>, polyglot.visit.DataFlow.Frame<FlowItem extends polyglot.visit.DataFlow.Item>, polyglot.visit.DataFlow.Itemautil, postdoms| Constructor and Description |
|---|
NonFatalPostDominatorDataFlow(polyglot.frontend.Job job,
polyglot.types.TypeSystem ts,
polyglot.ast.NodeFactory nf,
DominationAnalysisUtil autil) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
check(polyglot.visit.FlowGraph<accrue.analysis.domination.ImmediatePostDominator> graph,
polyglot.visit.FlowGraph.Peer<accrue.analysis.domination.ImmediatePostDominator> p) |
protected java.util.Map<polyglot.visit.FlowGraph.EdgeKey,accrue.analysis.domination.ImmediatePostDominator> |
flow(java.util.List<accrue.analysis.domination.ImmediatePostDominator> inItems,
java.util.List<polyglot.visit.FlowGraph.EdgeKey> inItemKeys,
polyglot.visit.FlowGraph<accrue.analysis.domination.ImmediatePostDominator> graph,
polyglot.visit.FlowGraph.Peer<accrue.analysis.domination.ImmediatePostDominator> peer) |
protected java.util.List<polyglot.visit.FlowGraph.Edge<accrue.analysis.domination.ImmediatePostDominator>> |
nonFatalPeers(polyglot.visit.FlowGraph.Peer<accrue.analysis.domination.ImmediatePostDominator> peer) |
check, confluence, createInitialItem, dataflow, intersect, intersect, ipd, performDataflow, recordautil, createCFGBuilder, currentContext, dataFlowNodeIdentifierForPeer, dataFlowNodeIdentifierForPeer, initGraph, peerForDataFlowNodeIdentifierconfluence, constructItemsFromCondition, createFrame, createInitialItem, currentFlowGraph, dataflow, dataflow, dumpFlowGraph, enterCall, filterItems, filterItemsExceptionSubclass, filterItemsNonError, filterItemsNonException, findSCCs, flow, flow, flow, flow, flowBooleanConditions, flowToBooleanFlow, hasTrueFalseBranches, initGraph, itemsToMap, itemToMap, lang, leave, leaveCall, post, safeConfluence, safeConfluence, safeConfluencebegin, catchErrors, enter, enterCall, enterError, errorQueue, hasErrors, job, leaveCall, leaveCall, nodeFactory, typeSystembypass, bypass, bypassChildren, override, visitChildrenpublic NonFatalPostDominatorDataFlow(polyglot.frontend.Job job,
polyglot.types.TypeSystem ts,
polyglot.ast.NodeFactory nf,
DominationAnalysisUtil autil)
protected java.util.Map<polyglot.visit.FlowGraph.EdgeKey,accrue.analysis.domination.ImmediatePostDominator> flow(java.util.List<accrue.analysis.domination.ImmediatePostDominator> inItems,
java.util.List<polyglot.visit.FlowGraph.EdgeKey> inItemKeys,
polyglot.visit.FlowGraph<accrue.analysis.domination.ImmediatePostDominator> graph,
polyglot.visit.FlowGraph.Peer<accrue.analysis.domination.ImmediatePostDominator> peer)
flow in class PostDominatorDataFlowprotected void check(polyglot.visit.FlowGraph<accrue.analysis.domination.ImmediatePostDominator> graph,
polyglot.visit.FlowGraph.Peer<accrue.analysis.domination.ImmediatePostDominator> p)
throws polyglot.types.SemanticException
check in class PostDominatorDataFlowpolyglot.types.SemanticExceptionprotected java.util.List<polyglot.visit.FlowGraph.Edge<accrue.analysis.domination.ImmediatePostDominator>> nonFatalPeers(polyglot.visit.FlowGraph.Peer<accrue.analysis.domination.ImmediatePostDominator> peer)