public class MethodTypeFlow extends TypeFlow<AnalysisMethod>
| Modifier and Type | Field and Description |
|---|---|
protected PointsToAnalysisMethod |
method |
declaredType, graphRef, id, inQueue, nextId, source, state, usedAsAParameter, usedAsAReceiver| Constructor and Description |
|---|
MethodTypeFlow(PointsToAnalysisMethod method) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
ensureFlowsGraphCreated(PointsToAnalysis bb,
InvokeTypeFlow reason)
Trigger parsing and create the flows graph, blocking until ready.
|
boolean |
flowsGraphCreated()
The flows graph is created lazily only when the method is implementation invoked.
|
TypeState |
foldTypeFlow(PointsToAnalysis bb,
TypeFlow<?> originalTypeFlow)
Return the type state of the original flow.
|
Collection<MethodFlowsGraph> |
getFlows() |
org.graalvm.collections.EconomicMap<Object,InvokeTypeFlow> |
getInvokes() |
PointsToAnalysisMethod |
getMethod() |
MethodFlowsGraph |
getMethodFlowsGraph()
Accessor for the flowsGraph that assumes that the graph was already created.
|
MethodFlowsGraph |
getOrCreateMethodFlowsGraph(PointsToAnalysis bb,
InvokeTypeFlow reason)
Returns the flows graph for this method, blocking until parsing is finished if necessary.
|
Iterable<TypeFlow<?>> |
getParameters() |
StackTraceElement[] |
getParsingContext() |
int |
getReturnedParameterIndex()
Returns the index of the parameter that is the only return value of this method, or -1 if the
method does not always return a parameter.
|
protected void |
initFlowsGraph(PointsToAnalysis bb) |
boolean |
isSaturated(PointsToAnalysis bb,
TypeFlow<?> originalTypeFlow)
Check if the type flow is saturated, i.e., any of its clones is saturated.
|
String |
toString() |
void |
update(PointsToAnalysis bb) |
addInput, addObservee, addObserver, addObserver, addState, addState, addUse, addUse, canSaturate, copy, declaredTypeFilter, doAddUse, equals, filter, format, formatSource, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initFlow, isAllInstantiated, isClone, isContextInsensitive, isSaturated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObserverOfSaturation, notifyUseOfSaturation, onInputSaturated, onObservedSaturated, onObservedUpdate, onSaturated, onSaturated, receiver, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setObserved, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapAtObserver, swapAtUse, swapOutprotected final PointsToAnalysisMethod method
public MethodTypeFlow(PointsToAnalysisMethod method)
public PointsToAnalysisMethod getMethod()
public MethodFlowsGraph getOrCreateMethodFlowsGraph(PointsToAnalysis bb, InvokeTypeFlow reason)
public MethodFlowsGraph getMethodFlowsGraph()
public boolean flowsGraphCreated()
protected void ensureFlowsGraphCreated(PointsToAnalysis bb, InvokeTypeFlow reason)
protected void initFlowsGraph(PointsToAnalysis bb)
public Collection<MethodFlowsGraph> getFlows()
public org.graalvm.collections.EconomicMap<Object,InvokeTypeFlow> getInvokes()
public boolean isSaturated(PointsToAnalysis bb, TypeFlow<?> originalTypeFlow)
public TypeState foldTypeFlow(PointsToAnalysis bb, TypeFlow<?> originalTypeFlow)
public int getReturnedParameterIndex()
public StackTraceElement[] getParsingContext()
public void update(PointsToAnalysis bb)
update in class TypeFlow<AnalysisMethod>public String toString()
toString in class TypeFlow<AnalysisMethod>