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, setReferenceVariable
flowDispatch, throwTypes
enclosingFinallyDepth, ext, getAnalysisResult, getAnalysisResult, getAnalysisResult, lang, recordAnalysisResult, recordAnalysisResult, recordAnalysisResult, removeAnalysisResult, removeAnalysisResult, removeAnalysisResult, setEnclosingFinallyDepth
addDecls, 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, visitList
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
enclosingFinallyDepth, getAnalysisResult, getAnalysisResult, getAnalysisResult, recordAnalysisResult, recordAnalysisResult, recordAnalysisResult, removeAnalysisResult, removeAnalysisResult, removeAnalysisResult, setEnclosingFinallyDepth
addDecls, 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, visitList
public void setAllocNode(AllocSiteNode allocNode, ConstructorContext constructorContext)
ExtAlloc
setAllocNode
in interface ExtAlloc
public AllocSiteNode getAllocNode(ConstructorContext constructorContext)
ExtAlloc
getAllocNode
in interface ExtAlloc
public void registerPointerStmts(StmtRegistrar registrar, RegisterPointerStmtsVisitor v)
ExtExpr
registerPointerStmts
in interface AccrueExt
registerPointerStmts
in class ExtExpr
public 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)
ExtTerm
DataFlowDispatch d
.
This helps extensions implement and extend data flow analyses.flowDispatch
in class ExtTerm
public int numArgumentsOnResultStack()
AccrueExt
numArgumentsOnResultStack
in interface AccrueExt
numArgumentsOnResultStack
in class ExtExpr
VarContextDataFlow