@Override public Instr cloneForBlockCloning(InlinerInfo ii) { return new CheckArityInstr(required, opt, rest); }
break; case CHECK_ARITY: ((CheckArityInstr) instr).checkArity(context, currScope, args, block); break; case LINE_NUM:
case CALL: return CallInstr.decode(this); case CHECK_ARGS_ARRAY_ARITY: return CheckArgsArrayArityInstr.decode(this); case CHECK_ARITY: return CheckArityInstr.decode(this); case CHECK_FOR_LJE: return CheckForLJEInstr.decode(this); case CLASS_SUPER: return ClassSuperInstr.decode(this);
break; case CHECK_ARITY: ((CheckArityInstr) instr).checkArity(context, currScope, args, block); break; case LINE_NUM:
case CALL: return CallInstr.decode(this); case CHECK_ARGS_ARRAY_ARITY: return CheckArgsArrayArityInstr.decode(this); case CHECK_ARITY: return CheckArityInstr.decode(this); case CHECK_FOR_LJE: return CheckForLJEInstr.decode(this); case CLASS_SUPER: return ClassSuperInstr.decode(this);
@Override public Instr cloneForBlockCloning(InlinerInfo ii) { return new CheckArityInstr(required, opt, rest); }
((CheckArityInstr)instr).checkArity(context.runtime, args.length); break; case POP_FRAME:
@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); }
((CheckArityInstr)instr).checkArity(context.runtime, args.length); break; case POP_FRAME:
@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); }
public static CheckArityInstr decode(IRReaderDecoder d) { return new CheckArityInstr(d.decodeInt(), d.decodeInt(), d.decodeBoolean(), d.decodeBoolean(), d.decodeInt()); }
public static CheckArityInstr decode(IRReaderDecoder d) { return new CheckArityInstr(d.decodeInt(), d.decodeInt(), d.decodeBoolean(), d.decodeBoolean(), d.decodeInt()); }
s.addInstr(new CheckArityInstr(required, opt, rest));
s.addInstr(new CheckArityInstr(required, opt, rest));
s.addInstr(new CheckArityInstr(required, opt, rest));
s.addInstr(new CheckArityInstr(required, opt, rest));
addInstr(new CheckArityInstr(signature.required(), signature.opt(), signature.hasRest(), argsNode.hasKwargs(), signature.keyRest())); } else if (scope instanceof IRClosure && argsNode.hasKwargs()) { addInstr(new CheckArityInstr(signature.required(), signature.opt(), signature.hasRest(), argsNode.hasKwargs(), signature.keyRest()));
addInstr(new CheckArityInstr(signature.required(), signature.opt(), signature.hasRest(), argsNode.hasKwargs(), signature.keyRest())); } else if (scope instanceof IRClosure && argsNode.hasKwargs()) { addInstr(new CheckArityInstr(signature.required(), signature.opt(), signature.hasRest(), argsNode.hasKwargs(), signature.keyRest()));