public abstract class AbstractStaticInvokeTypeFlow extends DirectInvokeTypeFlow
CALLEES_ACCESSORactualParameters, actualReturn, allOriginalCallees, callerMultiMethodKey, isContextInsensitive, originalInvoke, receiverType, targetMethod| Modifier | Constructor and Description |
|---|---|
protected |
AbstractStaticInvokeTypeFlow(BytecodePosition invokeLocation,
AnalysisType receiverType,
PointsToAnalysisMethod targetMethod,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
com.oracle.svm.common.meta.MultiMethod.MultiMethodKey callerMultiMethodKey) |
protected |
AbstractStaticInvokeTypeFlow(PointsToAnalysis bb,
MethodFlowsGraph methodFlows,
AbstractStaticInvokeTypeFlow original) |
| Modifier and Type | Method and Description |
|---|---|
void |
initFlow(PointsToAnalysis bb)
Initialization code for some type flow corner cases.
|
boolean |
needsInitialization()
Type flows that require initialization after the graph is created need to override this
method and return true.
|
String |
toString() |
getAllCallees, getAllComputedCallees, initializeCallees, isDirectInvokeactualParametersCount, canBeStaticallyBound, filterReceiverState, getActualParameter, getActualParameters, getActualReturn, getAllCalleesFlows, getCallerMultiMethodKey, getOriginalCallees, getOriginalCalleesFlows, getOriginalInvoke, getPosition, getReceiver, getReceiverType, getResult, getTargetMethod, isContextInsensitive, isContextInsensitiveVirtualInvoke, linkCallee, linkReturn, markAsContextInsensitive, setActualReturn, setObserved, updateReceiver, updateReceiveraddInput, addObservee, addObserver, addObserver, addState, addState, addUse, addUse, canSaturate, clearInputs, clearObservees, clearObservers, clearUses, copy, declaredTypeFilter, declaredTypeFilter, doAddUse, equals, filter, filterUncheckedInterface, format, formatSource, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, invalidate, isAllInstantiated, isClone, isSaturated, isValid, method, notifyObserverOfSaturation, notifyUseOfSaturation, onInputSaturated, onObservedSaturated, onObservedUpdate, onSaturated, onSaturated, receiver, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setSaturated, setSlot, setState, swapAtObserver, swapAtUse, swapOut, updateisDeoptInvokeTypeFlowprotected AbstractStaticInvokeTypeFlow(BytecodePosition invokeLocation,
AnalysisType receiverType,
PointsToAnalysisMethod targetMethod,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
com.oracle.svm.common.meta.MultiMethod.MultiMethodKey callerMultiMethodKey)
protected AbstractStaticInvokeTypeFlow(PointsToAnalysis bb, MethodFlowsGraph methodFlows, AbstractStaticInvokeTypeFlow original)
public void initFlow(PointsToAnalysis bb)
TypeFlowTypeFlow.needsInitialization() also
needs to be overridden to enable type flow initialization.public boolean needsInitialization()
TypeFlowneedsInitialization in class TypeFlow<BytecodePosition>