public class MethodHandle extends Operand
| Modifier and Type | Field and Description |
|---|---|
private CacheEntry |
cachedMethod |
protected Operand |
methodName |
protected Operand |
receiver |
private IRubyObject |
receiverObj |
private java.lang.String |
resolvedMethodName |
EMPTY_ARRAY| Constructor and Description |
|---|
MethodHandle(Operand methodName,
Operand receiver) |
| Modifier and Type | Method and Description |
|---|---|
void |
addUsedVariables(java.util.List<Variable> l)
Append the list of variables used in this operand to the input list -- force every operand
to implement this because a missing implementation can cause bad failures.
|
boolean |
canCopyPropagate()
Can we replace every use of a variable 'v' that contains the value of this operand
with the operand itself? This takes importance when there are at least two uses
of 'v' within this scope.
|
Operand |
cloneForInlining(InlinerInfo ii) |
Operand |
getMethodNameOperand() |
IRubyObject |
getReceiverObj() |
DynamicMethod |
getResolvedMethod() |
java.lang.String |
getResolvedMethodName() |
Operand |
getSimplifiedOperand(java.util.Map<Operand,Operand> valueMap,
boolean force) |
java.lang.Object |
retrieve(ThreadContext context,
IRubyObject self,
DynamicScope currDynScope,
java.lang.Object[] temp) |
java.lang.String |
toString() |
void |
visit(IRVisitor visitor) |
fetchCompileTimeArrayElement, getValue, hasKnownValueprotected final Operand methodName
protected final Operand receiver
private java.lang.String resolvedMethodName
private CacheEntry cachedMethod
private IRubyObject receiverObj
public Operand getMethodNameOperand()
public DynamicMethod getResolvedMethod()
public java.lang.String getResolvedMethodName()
public IRubyObject getReceiverObj()
public void addUsedVariables(java.util.List<Variable> l)
OperandaddUsedVariables in class Operandpublic boolean canCopyPropagate()
OperandcanCopyPropagate in class Operandpublic Operand getSimplifiedOperand(java.util.Map<Operand,Operand> valueMap, boolean force)
getSimplifiedOperand in class Operandpublic java.lang.String toString()
toString in class java.lang.Objectpublic Operand cloneForInlining(InlinerInfo ii)
cloneForInlining in class Operandpublic java.lang.Object retrieve(ThreadContext context, IRubyObject self, DynamicScope currDynScope, java.lang.Object[] temp)