public class ExtCast extends ExtExpr
| Constructor and Description |
|---|
ExtCast() |
| Modifier and Type | Method and Description |
|---|---|
<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.
|
boolean |
mayThrowClassCastException(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 |
recordClassCastAnalysisResult(AnalysisUtil<?> autil) |
void |
registerPointerStmts(StmtRegistrar registrar,
RegisterPointerStmtsVisitor v)
This method needs to ensure that: 1.
|
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, 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, waitaddDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitListpublic void registerPointerStmts(StmtRegistrar registrar, RegisterPointerStmtsVisitor v)
ExtExprregisterPointerStmts in interface AccrueExtregisterPointerStmts in class ExtExprpublic int numArgumentsOnResultStack()
AccrueExtnumArgumentsOnResultStack in interface AccrueExtnumArgumentsOnResultStack in class ExtExprVarContextDataFlowpublic java.util.Collection<ThrowableType> throwTypes(polyglot.types.TypeSystem ts, AnalysisContext context)
ExtTermthrowTypes in class ExtTermts - Polyglot type systemcontext - Data flow analysis contextpublic void recordClassCastAnalysisResult(AnalysisUtil<?> autil)
public boolean mayThrowClassCastException(AnalysisContext context)
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)
ExtTermDataFlowDispatch d .
This helps extensions implement and extend data flow analyses.flowDispatch in class ExtTerm