public class SlotSet extends Procedure3 implements Inlineable
Modifier and Type | Field and Description |
---|---|
static SlotSet |
setField |
static SlotSet |
setStaticField |
applyToObject
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey
nameKey
Constructor and Description |
---|
SlotSet(java.lang.String name,
boolean isStatic) |
Modifier and Type | Method and Description |
---|---|
static void |
apply(boolean isStatic,
java.lang.Object obj,
java.lang.Object member,
java.lang.Object value) |
java.lang.Object |
apply3(java.lang.Object obj,
java.lang.Object fname,
java.lang.Object value) |
void |
compile(ApplyExp exp,
Compilation comp,
Target target) |
static Member |
lookupMember(ObjectType clas,
java.lang.String name,
ClassType caller)
Get a setter property - field or 'set' accessor method.
|
static void |
setField(java.lang.Object obj,
java.lang.String name,
java.lang.Object value) |
static void |
setStaticField(java.lang.Object obj,
java.lang.String name,
java.lang.Object value) |
apply0, apply1, apply2, apply4, applyN, applyToObject, numArgs
applyL, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getReturnType, getSetter, getSourceLocation, isSideEffectFree, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
public static final SlotSet setField
public static final SlotSet setStaticField
public static void setField(java.lang.Object obj, java.lang.String name, java.lang.Object value)
public static void setStaticField(java.lang.Object obj, java.lang.String name, java.lang.Object value)
public static void apply(boolean isStatic, java.lang.Object obj, java.lang.Object member, java.lang.Object value)
public java.lang.Object apply3(java.lang.Object obj, java.lang.Object fname, java.lang.Object value)
apply3
in class Procedure3
public static Member lookupMember(ObjectType clas, java.lang.String name, ClassType caller)
clas
- the class type declaring the property.name
- the source (unmangled) name of the property.
Note if a method is returned it may not be the most specific/appropriate,
since we don't take the setter value into account here.
Therefore it is best to just use the method name, and do a second lookup
that takes arguments into account, as in CompileReflect#makeSetterCall.public void compile(ApplyExp exp, Compilation comp, Target target)
compile
in interface Inlineable