diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-04-30 07:22:19 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-04-30 07:22:19 +0000 |
commit | fd0e9d2580bf757071683581d34354064c6ceb6a (patch) | |
tree | 20036be1fd5c0d5756a3222f13d6338965d2c5c6 /parse.y | |
parent | 5d071fe3818f94b90559f2b5328c009553fc5a11 (diff) | |
download | ruby-fd0e9d2580bf757071683581d34354064c6ceb6a.tar.gz |
parse.y: push cmdarg_stack
* parse.y (lambda): push and reset cmdarg_stack in lambda body.
[ruby-core:69017] [Bug #11107]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -3518,14 +3518,19 @@ lambda : { { $<num>$ = ruby_sourceline; } + { + $<val>$ = cmdarg_stack; + cmdarg_stack = 0; + } lambda_body { lpar_beg = $<num>2; + cmdarg_stack = $<val>5; /*%%%*/ - $$ = NEW_LAMBDA($3, $5); + $$ = NEW_LAMBDA($3, $6); nd_set_line($$, $<num>4); /*% - $$ = dispatch2(lambda, $3, $5); + $$ = dispatch2(lambda, $3, $6); %*/ dyna_pop($<vars>1); } |