diff options
author | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-03-14 21:10:34 +0000 |
---|---|---|
committer | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-03-14 21:10:34 +0000 |
commit | 7316302483182a73136b00ad368585e551cbd86f (patch) | |
tree | d32188711001581a5e7e21d6669f6c4e91fcb497 /eval.c | |
parent | 35c356ea72094dbbf1397d8f5acd065bd23d1177 (diff) | |
download | ruby-7316302483182a73136b00ad368585e551cbd86f.tar.gz |
* 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.c | 13 |
1 files changed, 4 insertions, 9 deletions
@@ -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--) { |