summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-04 15:18:38 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-04 15:18:38 +0000
commit710b99a16b9093e2542e8e8a76999fb6b4b6c643 (patch)
treed50d1c1e900a70e0c8d7ea44cdbdb7810412f60e /parse.y
parentc9a8baddbc1fb8e87bd82a47bcd5593f595658de (diff)
* eval.c (formal_assign): returns position of rest arguments variable.
* parse.y (f_rest_arg): use anonymous variable for rest arguments. fixed: [ruby-dev:26647] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y7
1 files changed, 6 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index 8dcdf0646d..e4c419ea61 100644
--- a/parse.y
+++ b/parse.y
@@ -4169,7 +4169,12 @@ f_rest_arg : restarg_mark tIDENTIFIER
| restarg_mark
{
/*%%%*/
- $$ = (NODE*)Qnil;
+ if (dyna_in_block()) {
+ $$ = NEW_DASGN_CURR(internal_id(), 0);
+ }
+ else {
+ $$ = NEW_NODE(NODE_LASGN,0,0,local_append(0));
+ }
/*%
$$ = dispatch1(restparam, Qnil);
%*/