public class ExtExpr extends ExtTerm
Constructor and Description |
---|
ExtExpr() |
Modifier and Type | Method and Description |
---|---|
java.util.Set<ConstructorContext> |
getConstructorContexts() |
ReferenceVariable |
getReferenceVariable(ConstructorContext constructorContext) |
boolean |
mayBeNull(AnalysisContext context) |
boolean |
mayBeNull(AnalysisContext context,
polyglot.visit.FlowGraph.PeerKey peerKey) |
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 |
recordNullAnalysisResult(AnalysisContext context,
polyglot.visit.FlowGraph.PeerKey peerKey,
boolean maybeNull) |
void |
registerPointerStmts(StmtRegistrar registrar,
RegisterPointerStmtsVisitor v)
This method needs to ensure that: 1.
|
void |
setNullResultsNoPeerValid() |
void |
setReferenceVariable(ReferenceVariable node,
ConstructorContext constructorContext) |
flowDispatch, 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
addDecls, 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, visitList
public void setReferenceVariable(ReferenceVariable node, ConstructorContext constructorContext)
public ReferenceVariable getReferenceVariable(ConstructorContext constructorContext)
public java.util.Set<ConstructorContext> getConstructorContexts()
public void registerPointerStmts(StmtRegistrar registrar, RegisterPointerStmtsVisitor v)
registerPointerStmts
in interface AccrueExt
registerPointerStmts
in class AccrueExt_c
public int numArgumentsOnResultStack()
AccrueExt
numArgumentsOnResultStack
in interface AccrueExt
numArgumentsOnResultStack
in class AccrueExt_c
VarContextDataFlow
public boolean mayBeNull(AnalysisContext context, polyglot.visit.FlowGraph.PeerKey peerKey)
public boolean mayBeNull(AnalysisContext context)
public void recordNullAnalysisResult(AnalysisContext context, polyglot.visit.FlowGraph.PeerKey peerKey, boolean maybeNull)
public void setNullResultsNoPeerValid()