summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormarcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-03-14 21:10:34 +0000
committermarcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-03-14 21:10:34 +0000
commit7316302483182a73136b00ad368585e551cbd86f (patch)
treed32188711001581a5e7e21d6669f6c4e91fcb497 /eval.c
parent35c356ea72094dbbf1397d8f5acd065bd23d1177 (diff)
* include/ruby/intern.h: Add rb_check_arity, rb_error_arity [#6085]
* array.c: Use rb_check_arity / rb_error_arity * class.c: ditto * enumerator.c: ditto * eval.c: ditto * file.c: ditto * hash.c: ditto * numeric.c: ditto * proc.c: ditto * process.c: ditto * random.c: ditto * re.c: ditto * signal.c: ditto * string.c: ditto * struct.c: ditto * transcode.c: ditto * vm_eval.c: ditto * vm_insnhelper.c: ditto & implementation of rb_error_arity * test/ruby/test_arity.rb: tests for above git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/eval.c b/eval.c
index 34ff32c0cf..43ddb4197c 100644
--- a/eval.c
+++ b/eval.c
@@ -555,7 +555,7 @@ make_exception(int argc, VALUE *argv, int isstr)
}
break;
default:
- rb_raise(rb_eArgError, "wrong number of arguments (%d for 0..3)", argc);
+ rb_check_arity(argc, 0, 3);
break;
}
if (argc > 0) {
@@ -889,10 +889,7 @@ rb_mod_mix_into(int argc, VALUE *argv, VALUE klass)
st_table *const_tbl = 0, *method_tbl = 0;
int i = 0;
- if (argc < 1 || argc > 3) {
- wrong_args:
- rb_raise(rb_eArgError, "wrong number of arguments (%d for 1)", argc);
- }
+ rb_check_arity(argc, 1, 3);
module = argv[i++];
switch (TYPE(module)) {
@@ -922,7 +919,7 @@ rb_mod_mix_into(int argc, VALUE *argv, VALUE klass)
}
methods = tmp;
}
- if (i < argc) goto wrong_args;
+ if (i < argc) rb_raise(rb_eArgError, "wrong arguments");
if (!NIL_P(constants)) {
VALUE hash = rb_hash_new();
for (i = 0; i < RARRAY_LEN(constants); ++i) {
@@ -1015,9 +1012,7 @@ rb_obj_extend(int argc, VALUE *argv, VALUE obj)
{
int i;
- if (argc == 0) {
- rb_raise(rb_eArgError, "wrong number of arguments (at least 1)");
- }
+ rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
for (i = 0; i < argc; i++)
Check_Type(argv[i], T_MODULE);
while (argc--) {