public class ExtArrayInit extends ExtExpr implements ExtAlloc
| Constructor and Description |
|---|
ExtArrayInit() |
| Modifier and Type | Method and Description |
|---|---|
<DFItem extends polyglot.visit.DataFlow.Item> |
flowDispatch(DataFlowDispatch<DFItem> dataflow,
DFItem dfIn,
polyglot.visit.FlowGraph<DFItem> graph,
polyglot.visit.FlowGraph.Peer<DFItem> peer)
Dispatch function.
|
AllocSiteNode |
getAllocNode(ConstructorContext constructorContext)
Get the AllocSiteNode representing the allocation of a new object
(within the specific constructor context).
|
boolean |
mayBeNull(AnalysisContext context) |
int |
numArgumentsOnResultStack()
During a dataflow analysis, when this term is encountered, how many
arguments should there be on the expression result stack? For example,
for an addition (e1 + e2) there will be two, one for each operand.
|
void |
registerPointerStmts(StmtRegistrar registrar,
RegisterPointerStmtsVisitor v)
This method needs to ensure that: 1.
|
void |
setAllocNode(AllocSiteNode allocNode,
ConstructorContext constructorContext)
Set the AllocSiteNode representing the allocation of a new object
(within the specific constructor context).
|
getConstructorContexts, getReferenceVariable, mayBeNull, recordNullAnalysisResult, setNullResultsNoPeerValid, setReferenceVariableflowDispatch, throwTypesenclosingFinallyDepth, ext, getAnalysisResult, getAnalysisResult, getAnalysisResult, lang, recordAnalysisResult, recordAnalysisResult, recordAnalysisResult, removeAnalysisResult, removeAnalysisResult, removeAnalysisResult, setEnclosingFinallyDepthaddDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, ext, ext, extRewrite, extRewriteEnter, init, initPred, node, pred, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, print, printBlock, printSubStmt, superLang, throwTypes, toString, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitListclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitenclosingFinallyDepth, getAnalysisResult, getAnalysisResult, getAnalysisResult, recordAnalysisResult, recordAnalysisResult, recordAnalysisResult, removeAnalysisResult, removeAnalysisResult, removeAnalysisResult, setEnclosingFinallyDepthaddDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, lang, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitListpublic void setAllocNode(AllocSiteNode allocNode, ConstructorContext constructorContext)
ExtAllocsetAllocNode in interface ExtAllocpublic AllocSiteNode getAllocNode(ConstructorContext constructorContext)
ExtAllocgetAllocNode in interface ExtAllocpublic void registerPointerStmts(StmtRegistrar registrar, RegisterPointerStmtsVisitor v)
ExtExprregisterPointerStmts in interface AccrueExtregisterPointerStmts in class ExtExprpublic boolean mayBeNull(AnalysisContext context)
public <DFItem extends polyglot.visit.DataFlow.Item> java.util.Map<polyglot.visit.FlowGraph.EdgeKey,DFItem> flowDispatch(DataFlowDispatch<DFItem> dataflow, DFItem dfIn, polyglot.visit.FlowGraph<DFItem> graph, polyglot.visit.FlowGraph.Peer<DFItem> peer)
ExtTermDataFlowDispatch d .
This helps extensions implement and extend data flow analyses.flowDispatch in class ExtTermpublic int numArgumentsOnResultStack()
AccrueExtnumArgumentsOnResultStack in interface AccrueExtnumArgumentsOnResultStack in class ExtExprVarContextDataFlow