@Override public Instr cloneForInlining(InlinerInfo ii) { return new RaiseArgumentErrorInstr(required, opt, rest, numArgs); }
@Override public Instr clone(CloneInfo ii) { return new RaiseArgumentErrorInstr(required, opt, rest, numArgs); }
@Override public Instr clone(CloneInfo ii) { return new RaiseArgumentErrorInstr(required, opt, rest, numArgs); }
@Override public Instr cloneForInlining(InlinerInfo ii) { return new RaiseArgumentErrorInstr(required, opt, rest, numArgs); }
public static RaiseArgumentErrorInstr decode(IRReaderDecoder d) { return new RaiseArgumentErrorInstr(d.decodeInt(), d.decodeInt(), d.decodeBoolean(), d.decodeInt()); }
@Override public Instr cloneForInlinedScope(InlinerInfo ii) { if (ii.canMapArgsStatically()) { // Since we know arity at a callsite, arity check passes or we have an ArgumentError int numArgs = ii.getArgsCount(); if ((numArgs < required) || ((rest == -1) && (numArgs > (required + opt)))) { return new RaiseArgumentErrorInstr(required, opt, rest, rest); } return null; } else { return new CheckArgsArrayArityInstr(ii.getArgs(), required, opt, rest); } }
@Override public Instr cloneForInlinedScope(InlinerInfo ii) { if (ii.canMapArgsStatically()) { // Since we know arity at a callsite, arity check passes or we have an ArgumentError int numArgs = ii.getArgsCount(); if ((numArgs < required) || ((rest == -1) && (numArgs > (required + opt)))) { return new RaiseArgumentErrorInstr(required, opt, rest, rest); } return null; } else { return new CheckArgsArrayArityInstr(ii.getArgs(), required, opt, rest); } }
public static RaiseArgumentErrorInstr decode(IRReaderDecoder d) { return new RaiseArgumentErrorInstr(d.decodeInt(), d.decodeInt(), d.decodeBoolean(), d.decodeInt()); }
@Override public Instr clone(CloneInfo info) { if (info instanceof SimpleCloneInfo) return new CheckArityInstr(required, opt, rest, receivesKeywords, restKey); InlineCloneInfo ii = (InlineCloneInfo) info; if (ii.canMapArgsStatically()) { // we can error on bad arity or remove check_arity int numArgs = ii.getArgsCount(); if (numArgs < required || (!rest && numArgs > (required + opt))) { return new RaiseArgumentErrorInstr(required, opt, rest, numArgs); } return null; } return new CheckArgsArrayArityInstr(ii.getArgs(), required, opt, rest); }
@Override public Instr clone(CloneInfo info) { if (info instanceof SimpleCloneInfo) return new CheckArityInstr(required, opt, rest, receivesKeywords, restKey); InlineCloneInfo ii = (InlineCloneInfo) info; if (ii.canMapArgsStatically()) { // we can error on bad arity or remove check_arity int numArgs = ii.getArgsCount(); if (numArgs < required || (!rest && numArgs > (required + opt))) { return new RaiseArgumentErrorInstr(required, opt, rest, numArgs); } return null; } return new CheckArgsArrayArityInstr(ii.getArgs(), required, opt, rest); }