public static AttrAssignInstr create(IRScope scope, Operand obj, RubySymbol attr, Operand[] args, boolean isPotentiallyRefined) { if (!containsArgSplat(args) && args.length == 1) { return new OneArgOperandAttrAssignInstr(scope, obj, attr, args, isPotentiallyRefined); } return new AttrAssignInstr(scope, obj, attr, args, isPotentiallyRefined); }
public static AttrAssignInstr create(IRScope scope, Operand obj, RubySymbol attr, Operand[] args, boolean isPotentiallyRefined) { if (!containsArgSplat(args) && args.length == 1) { return new OneArgOperandAttrAssignInstr(scope, obj, attr, args, isPotentiallyRefined); } return new AttrAssignInstr(scope, obj, attr, args, isPotentiallyRefined); }
@Override public CallBase specializeForInterpretation() { Operand[] callArgs = getCallArgs(); if (containsSplat(callArgs)) return this; switch (callArgs.length) { case 1: return new OneArgOperandAttrAssignInstr(this); } return this; }
@Override public CallBase specializeForInterpretation() { Operand[] callArgs = getCallArgs(); if (containsSplat(callArgs)) return this; switch (callArgs.length) { case 1: return new OneArgOperandAttrAssignInstr(this); } return this; }
@Override public Instr clone(CloneInfo ii) { return new OneArgOperandAttrAssignInstr(ii.getScope(), getCallType(), getName(), getReceiver().cloneForInlining(ii), cloneCallArgs(ii), isPotentiallyRefined(), getCallSite(), getCallSiteId()); }
@Override public Instr clone(CloneInfo ii) { return new OneArgOperandAttrAssignInstr(ii.getScope(), getCallType(), getName(), getReceiver().cloneForInlining(ii), cloneCallArgs(ii), isPotentiallyRefined(), getCallSite(), getCallSiteId()); }