public class AntiDepDataFlow extends VarContextDataFlow<AntiDepAbsVal>
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.Item| Modifier and Type | Field and Description |
|---|---|
protected AntiDepAnalysisUtil |
autil |
protected java.util.Map<DataFlowNodeIdentifier,java.lang.Integer> |
nodePostordering |
DONT_TRACK_BOTTOM, output, WARN_ON_MISSING_EDGES, workQueue| Constructor and Description |
|---|
AntiDepDataFlow(AntiDepAnalysisUtil autil,
WorkQueue<VarContext<AntiDepAbsVal>> workQueue,
polyglot.frontend.Job job,
polyglot.types.TypeSystem ts,
polyglot.ast.NodeFactory nf) |
| Modifier and Type | Method and Description |
|---|---|
static <T> void |
addResults(java.lang.String resultKey,
AccrueExt rec,
AnalysisContext ctx,
java.util.Set<T> results)
Adds a set of results to the current set
|
protected void |
check(polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> p) |
protected void |
check(polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.ast.Term n,
boolean entry,
VarContext<AntiDepAbsVal> inItem,
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> outItems) |
protected AntiDepAbsVal |
createHeapUse(java.util.Set<AbstractLocation> locs,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
protected AntiDepAbsVal |
createLocalUse(java.lang.String defined,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
protected FinalVarContext<AntiDepAbsVal> |
flowArithmeticException(VarContext<AntiDepAbsVal> dfIn,
polyglot.ast.Binary cause,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowArrayAccess(polyglot.ast.ArrayAccess n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowArrayAccessAssign(polyglot.ast.ArrayAccessAssign n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowArrayInit(polyglot.ast.ArrayInit n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowBinary(polyglot.ast.Binary n,
VarContext<AntiDepAbsVal> dfIn,
VarContext<AntiDepAbsVal> trueItem,
VarContext<AntiDepAbsVal> falseItem,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowCall(polyglot.ast.Call n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowCast(polyglot.ast.Cast n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowCatch(polyglot.ast.Catch n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
protected FinalVarContext<AntiDepAbsVal> |
flowClassCastException(VarContext<AntiDepAbsVal> dfIn,
polyglot.ast.Cast cause,
AntiDepAbsVal causeDFI,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowCodeDecl(polyglot.ast.CodeDecl n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowConstructorCall(polyglot.ast.ConstructorCall n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowExpr(polyglot.ast.Expr n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowField(polyglot.ast.Field n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowFieldAssign(polyglot.ast.FieldAssign n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowFieldDecl(polyglot.ast.FieldDecl n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowFormal(polyglot.ast.Formal n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowIf(polyglot.ast.If n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
protected java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowImpl(VarContext<AntiDepAbsVal> trueItem,
VarContext<AntiDepAbsVal> falseItem,
VarContext<AntiDepAbsVal> otherItem,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
protected FinalVarContext<AntiDepAbsVal> |
flowImpossibleException(FinalVarContext<AntiDepAbsVal> res,
polyglot.types.ClassType exType,
polyglot.ast.Node cause) |
protected FinalVarContext<AntiDepAbsVal> |
flowImpossibleException(VarContext<AntiDepAbsVal> dfIn,
polyglot.types.ClassType exType,
polyglot.ast.Node cause,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowInstanceof(polyglot.ast.Instanceof n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowLit(polyglot.ast.Lit n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowLocal(polyglot.ast.Local n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowLocalAssign(polyglot.ast.LocalAssign n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowLocalDecl(polyglot.ast.LocalDecl n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowNew(polyglot.ast.New n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowNewArray(polyglot.ast.NewArray n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
protected FinalVarContext<AntiDepAbsVal> |
flowNullPointerException(VarContext<AntiDepAbsVal> dfIn,
polyglot.ast.Node cause,
AntiDepAbsVal causeDFI,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
protected FinalVarContext<AntiDepAbsVal> |
flowOutOfBoundsException(VarContext<AntiDepAbsVal> dfIn,
polyglot.ast.Expr cause,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowReturn(polyglot.ast.Return n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowSpecial(polyglot.ast.Special n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowStmt(polyglot.ast.Stmt n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowThrow(polyglot.ast.Throw n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowTry(polyglot.ast.Try n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowTypeNode(polyglot.ast.TypeNode n,
VarContext<AntiDepAbsVal> dfIn,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
flowUnary(polyglot.ast.Unary n,
VarContext<AntiDepAbsVal> dfIn,
VarContext<AntiDepAbsVal> trueItem,
VarContext<AntiDepAbsVal> falseItem,
polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
Compute the dataflow for
n |
protected FinalVarContext<AntiDepAbsVal> |
flowUncheckedException(VarContext<AntiDepAbsVal> dfIn,
polyglot.types.ClassType exType,
polyglot.ast.Node cause,
polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer) |
protected static java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> |
itemToMapWithExceptionResults(VarContext<AntiDepAbsVal> dfIn,
java.util.Set<polyglot.visit.FlowGraph.EdgeKey> edgeKeys) |
protected int |
postorderNodeIDs(polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> p,
int count,
java.util.Set<NodeIdentifier> visited) |
protected AntiDepAbsVal |
upperBound(java.util.Collection<AntiDepAbsVal> l) |
argumentsOnResultStack, autil, checkInvariants, confluence, constructMissingContextForEdgeKey, createInitialItem, dataflow, edgeKeyConvert, finalVarContextToDataFlowMap, flow, flow, flowAssert, flowAssign, flowBlock, flowBranch, flowConditional, flowConstructorDecl, flowDo, flowEmpty, flowEval, flowFinally, flowInitializer, flowLabeled, flowMethodDecl, flowSuppress, flowSynchronized, flowWhile, ignoreNode, keyConvert, post, postFieldDecl, safeConfluence, setWarnOnEdgesMissingDatacreateCFGBuilder, currentContext, dataFlowNodeIdentifierForPeer, dataFlowNodeIdentifierForPeer, initGraph, peerForDataFlowNodeIdentifierconfluence, constructItemsFromCondition, createFrame, createInitialItem, currentFlowGraph, dataflow, dataflow, dataflow, dumpFlowGraph, enterCall, filterItems, filterItemsExceptionSubclass, filterItemsNonError, filterItemsNonException, findSCCs, flow, flow, flow, flowBooleanConditions, flowToBooleanFlow, hasTrueFalseBranches, initGraph, itemsToMap, itemToMap, lang, leave, leaveCall, safeConfluence, safeConfluencebegin, catchErrors, enter, enterCall, enterError, errorQueue, hasErrors, job, leaveCall, leaveCall, nodeFactory, typeSystembypass, bypass, bypassChildren, override, visitChildrenprotected AntiDepAnalysisUtil autil
protected java.util.Map<DataFlowNodeIdentifier,java.lang.Integer> nodePostordering
public AntiDepDataFlow(AntiDepAnalysisUtil autil, WorkQueue<VarContext<AntiDepAbsVal>> workQueue, polyglot.frontend.Job job, polyglot.types.TypeSystem ts, polyglot.ast.NodeFactory nf)
public static <T> void addResults(java.lang.String resultKey,
AccrueExt rec,
AnalysisContext ctx,
java.util.Set<T> results)
resultKey - The key of the analysis result to record.rec - The extension object to record these results on.ctx - The AnalysisContext to associate these results with.results - protected int postorderNodeIDs(polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> p, int count, java.util.Set<NodeIdentifier> visited)
protected void check(polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> p) throws polyglot.types.SemanticException
check in class polyglot.visit.DataFlow<VarContext<AntiDepAbsVal>>polyglot.types.SemanticExceptionprotected void check(polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.ast.Term n, boolean entry, VarContext<AntiDepAbsVal> inItem, java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> outItems)
check in class polyglot.visit.DataFlow<VarContext<AntiDepAbsVal>>protected java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowImpl(VarContext<AntiDepAbsVal> trueItem, VarContext<AntiDepAbsVal> falseItem, VarContext<AntiDepAbsVal> otherItem, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
flowImpl in class VarContextDataFlow<AntiDepAbsVal>public java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowCodeDecl(polyglot.ast.CodeDecl n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
VarContextDataFlownflowCodeDecl in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowLocalDecl(polyglot.ast.LocalDecl n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowLocalDecl in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowLocalDecl in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowFormal(polyglot.ast.Formal n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowFormal in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowFormal in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowLocal(polyglot.ast.Local n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowLocal in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowLocal in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowLocalAssign(polyglot.ast.LocalAssign n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowLocalAssign in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowLocalAssign in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowField(polyglot.ast.Field n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowField in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowField in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowFieldDecl(polyglot.ast.FieldDecl n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowFieldDecl in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowFieldDecl in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowFieldAssign(polyglot.ast.FieldAssign n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowFieldAssign in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowFieldAssign in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowArrayAccess(polyglot.ast.ArrayAccess n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowArrayAccess in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowArrayAccess in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurrence of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowArrayAccessAssign(polyglot.ast.ArrayAccessAssign n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowArrayAccessAssign in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowArrayAccessAssign in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowArrayInit(polyglot.ast.ArrayInit n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowArrayInit in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowArrayInit in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowNewArray(polyglot.ast.NewArray n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowNewArray in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowNewArray in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowCall(polyglot.ast.Call n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowCall in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowCall in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowNew(polyglot.ast.New n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowNew in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowNew in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowConstructorCall(polyglot.ast.ConstructorCall n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowConstructorCall in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowConstructorCall in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowThrow(polyglot.ast.Throw n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowThrow in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowThrow in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowReturn(polyglot.ast.Return n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowReturn in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowReturn in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowExpr(polyglot.ast.Expr n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowExpr in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowExpr in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowCast(polyglot.ast.Cast n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowCast in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowCast in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowBinary(polyglot.ast.Binary n, VarContext<AntiDepAbsVal> dfIn, VarContext<AntiDepAbsVal> trueItem, VarContext<AntiDepAbsVal> falseItem, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowBinary in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowBinary in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowSpecial(polyglot.ast.Special n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowSpecial in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowSpecial in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowLit(polyglot.ast.Lit n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowLit in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowLit in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowInstanceof(polyglot.ast.Instanceof n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowInstanceof in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowInstanceof in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowUnary(polyglot.ast.Unary n, VarContext<AntiDepAbsVal> dfIn, VarContext<AntiDepAbsVal> trueItem, VarContext<AntiDepAbsVal> falseItem, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowUnary in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowUnary in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowStmt(polyglot.ast.Stmt n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
VarContextDataFlownflowStmt in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowTypeNode(polyglot.ast.TypeNode n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowTypeNode in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowTypeNode in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowTry(polyglot.ast.Try n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowTry in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowTry in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowCatch(polyglot.ast.Catch n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowCatch in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowCatch in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphpublic java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> flowIf(polyglot.ast.If n, VarContext<AntiDepAbsVal> dfIn, polyglot.visit.FlowGraph<VarContext<AntiDepAbsVal>> graph, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
DataFlowDispatchnflowIf in interface DataFlowDispatch<VarContext<AntiDepAbsVal>>flowIf in class VarContextDataFlow<AntiDepAbsVal>n - AST node to compute the dataflow fordfIn - input dataflow itemgraph - dataflow graphpeer - occurance of the dataflow node in the flowgraphprotected FinalVarContext<AntiDepAbsVal> flowUncheckedException(VarContext<AntiDepAbsVal> dfIn, polyglot.types.ClassType exType, polyglot.ast.Node cause, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
protected FinalVarContext<AntiDepAbsVal> flowImpossibleException(VarContext<AntiDepAbsVal> dfIn, polyglot.types.ClassType exType, polyglot.ast.Node cause, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
protected FinalVarContext<AntiDepAbsVal> flowImpossibleException(FinalVarContext<AntiDepAbsVal> res, polyglot.types.ClassType exType, polyglot.ast.Node cause)
protected FinalVarContext<AntiDepAbsVal> flowNullPointerException(VarContext<AntiDepAbsVal> dfIn, polyglot.ast.Node cause, AntiDepAbsVal causeDFI, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
protected FinalVarContext<AntiDepAbsVal> flowArithmeticException(VarContext<AntiDepAbsVal> dfIn, polyglot.ast.Binary cause, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
protected FinalVarContext<AntiDepAbsVal> flowOutOfBoundsException(VarContext<AntiDepAbsVal> dfIn, polyglot.ast.Expr cause, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
protected FinalVarContext<AntiDepAbsVal> flowClassCastException(VarContext<AntiDepAbsVal> dfIn, polyglot.ast.Cast cause, AntiDepAbsVal causeDFI, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
protected AntiDepAbsVal upperBound(java.util.Collection<AntiDepAbsVal> l)
protected AntiDepAbsVal createLocalUse(java.lang.String defined, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
protected AntiDepAbsVal createHeapUse(java.util.Set<AbstractLocation> locs, polyglot.visit.FlowGraph.Peer<VarContext<AntiDepAbsVal>> peer)
protected static java.util.Map<polyglot.visit.FlowGraph.EdgeKey,VarContext<AntiDepAbsVal>> itemToMapWithExceptionResults(VarContext<AntiDepAbsVal> dfIn, java.util.Set<polyglot.visit.FlowGraph.EdgeKey> edgeKeys)