public class ExtNewArray extends ExtExpr implements ExtAlloc
Constructor and Description |
---|
ExtNewArray() |
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) |
boolean |
mayThrowNegativeArraySizeException() |
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).
|
java.util.Collection<ThrowableType> |
throwTypes(polyglot.types.TypeSystem ts,
AnalysisContext context)
Get the collection of types of exceptions that might be thrown
|
getConstructorContexts, getReferenceVariable, mayBeNull, numArgumentsOnResultStack, recordNullAnalysisResult, setNullResultsNoPeerValid, setReferenceVariable
flowDispatch
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, numArgumentsOnResultStack, 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 boolean mayThrowNegativeArraySizeException()
public java.util.Collection<ThrowableType> throwTypes(polyglot.types.TypeSystem ts, AnalysisContext context)
ExtTerm
throwTypes
in class ExtTerm
ts
- Polyglot type systemcontext
- Data flow analysis context