@Override public Instr cloneForInlining(InlinerInfo ii) { return new RaiseArgumentErrorInstr(required, opt, rest, numArgs); }
@Override public void encode(IRWriterEncoder e) { super.encode(e); e.encode(getRequired()); e.encode(getOpt()); e.encode(getRest()); e.encode(getNumArgs()); }
case PUT_FIELD: return PutFieldInstr.decode(this); case PUT_GLOBAL_VAR: return PutGlobalVarInstr.decode(this); case RAISE_ARGUMENT_ERROR: return RaiseArgumentErrorInstr.decode(this); case RAISE_REQUIRED_KEYWORD_ARGUMENT_ERROR: return RaiseRequiredKeywordArgumentError.decode(this); case RECORD_END_BLOCK: return RecordEndBlockInstr.decode(this);
case PUT_FIELD: return PutFieldInstr.decode(this); case PUT_GLOBAL_VAR: return PutGlobalVarInstr.decode(this); case RAISE_ARGUMENT_ERROR: return RaiseArgumentErrorInstr.decode(this); case RAISE_REQUIRED_KEYWORD_ARGUMENT_ERROR: return RaiseRequiredKeywordArgumentError.decode(this); case RECORD_END_BLOCK: return RecordEndBlockInstr.decode(this);
@Override public Instr clone(CloneInfo ii) { return new RaiseArgumentErrorInstr(required, opt, rest, numArgs); }
@Override public void encode(IRWriterEncoder e) { super.encode(e); e.encode(getRequired()); e.encode(getOpt()); e.encode(getRest()); e.encode(getNumArgs()); }
@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); }