public class ExtCall extends ExtExpr implements ExtProcedureCall
Constructor and Description |
---|
ExtCall() |
Modifier and Type | Method and Description |
---|---|
boolean |
canTerminateNormally(AnalysisContext context) |
<DFItem extends polyglot.visit.DataFlow.Item> |
flowDispatch(DataFlowDispatch<DFItem> d,
DFItem dfIn,
polyglot.visit.FlowGraph<DFItem> graph,
polyglot.visit.FlowGraph.Peer<DFItem> peer)
Dispatch function.
|
CallSiteNode |
getCallSiteNode() |
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 |
setCallSiteNode(CallSiteNode callSiteNode) |
boolean |
targetMayBeNull(AnalysisContext 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, 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 registerPointerStmts(StmtRegistrar registrar, RegisterPointerStmtsVisitor v)
ExtExpr
registerPointerStmts
in interface AccrueExt
registerPointerStmts
in class ExtExpr
public void recordPreciseExResults(AnalysisContext context, java.util.Set<ThrowableType> throwTypes, boolean canTerminateNormally)
recordPreciseExResults
in interface ExtProcedureCall
public java.util.Collection<ThrowableType> throwTypes(polyglot.types.TypeSystem ts, AnalysisContext context)
ExtTerm
throwTypes
in interface ExtProcedureCall
throwTypes
in class ExtTerm
ts
- Polyglot type systemcontext
- Data flow analysis contextpublic boolean targetMayBeNull(AnalysisContext context)
public boolean canTerminateNormally(AnalysisContext context)
canTerminateNormally
in interface ExtProcedureCall
public <DFItem extends polyglot.visit.DataFlow.Item> java.util.Map<polyglot.visit.FlowGraph.EdgeKey,DFItem> flowDispatch(DataFlowDispatch<DFItem> d, 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 void setCallSiteNode(CallSiteNode callSiteNode)
setCallSiteNode
in interface ExtProcedureCall
public CallSiteNode getCallSiteNode()
getCallSiteNode
in interface ExtProcedureCall