diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-05-18 00:34:41 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-05-18 00:34:41 +0000 |
commit | c59869494a1a299cad47676e626cfc918c92364e (patch) | |
tree | 3f5a9f77ae12e51ecc8147ddcb141447ea7820a2 /eval.c | |
parent | c8bd43a967355ddb5acb2fad757db3faaf7465fb (diff) | |
download | ruby-c59869494a1a299cad47676e626cfc918c92364e.tar.gz |
arity bug
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_3@470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -5523,10 +5523,10 @@ proc_arity(proc) int n; Data_Get_Struct(proc, struct BLOCK, data); - if (data->var == 0) return 0; + if (data->var == 0) return FIX2INT(-1); switch (nd_type(data->var)) { default: - return INT2FIX(-1); + return INT2FIX(-2); case NODE_MASGN: list = data->var->nd_head; n = 0; @@ -5534,7 +5534,7 @@ proc_arity(proc) n++; list = list->nd_next; } - if (data->var->nd_args) return INT2FIX(-n); + if (data->var->nd_args) return INT2FIX(-n-1); return INT2FIX(n); } } @@ -5717,7 +5717,7 @@ method_arity(method) body = body->nd_head; if (!body) return INT2FIX(0); n = body->nd_cnt; - if (body->nd_rest) n = -n; + if (body->nd_rest) n = -n-1; return INT2FIX(n); } } |