summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-04-30 07:22:19 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-04-30 07:22:19 +0000
commitfd0e9d2580bf757071683581d34354064c6ceb6a (patch)
tree20036be1fd5c0d5756a3222f13d6338965d2c5c6 /parse.y
parent5d071fe3818f94b90559f2b5328c009553fc5a11 (diff)
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.y9
1 files changed, 7 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index f80f7d926f..75b3d48213 100644
--- a/parse.y
+++ b/parse.y
@@ -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);
}