public class ExtNew extends ExtExpr implements ExtAlloc, ExtProcedureCall
| Constructor and Description |
|---|
ExtNew() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canTerminateNormally(AnalysisContext context) |
<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).
|
CallSiteNode |
getCallSiteNode() |
boolean |
mayBeNull(AnalysisContext context) |
void |
recordPreciseExResults(AnalysisContext context,
java.util.Set<ThrowableType> throwTypes,
boolean canTerminateNormally) |
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).
|
void |
setCallSiteNode(CallSiteNode callSiteNode) |
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, setReferenceVariableflowDispatchenclosingFinallyDepth, 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, numArgumentsOnResultStack, 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 void recordPreciseExResults(AnalysisContext context, java.util.Set<ThrowableType> throwTypes, boolean canTerminateNormally)
recordPreciseExResults in interface ExtProcedureCallpublic java.util.Collection<ThrowableType> throwTypes(polyglot.types.TypeSystem ts, AnalysisContext context)
ExtTermthrowTypes in interface ExtProcedureCallthrowTypes in class ExtTermts - Polyglot type systemcontext - Data flow analysis contextpublic boolean canTerminateNormally(AnalysisContext context)
canTerminateNormally in interface ExtProcedureCallpublic <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 void setCallSiteNode(CallSiteNode callSiteNode)
setCallSiteNode in interface ExtProcedureCallpublic CallSiteNode getCallSiteNode()
getCallSiteNode in interface ExtProcedureCall