summaryrefslogtreecommitdiffhomepage
path: root/src/parse.y
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2015-04-30 15:21:01 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2015-04-30 15:21:01 +0900
commit2fe556d9c039839c20965a2c90dff703f04e40ec (patch)
tree8c6411acd81a830a825268ffa9c0968fab4e8266 /src/parse.y
parentb09f1712af2598957df7aa4281c5161f666a4af3 (diff)
downloadmruby-2fe556d9c039839c20965a2c90dff703f04e40ec.tar.gz
mruby-2fe556d9c039839c20965a2c90dff703f04e40ec.zip
push cmdarg_stack in lambda body; fix [ruby-bug#11107]
Diffstat (limited to 'src/parse.y')
-rw-r--r--src/parse.y7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parse.y b/src/parse.y
index ca2a52861..eb78f47d4 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -2150,11 +2150,16 @@ primary : literal
p->lpar_beg = ++p->paren_nest;
}
f_larglist
+ {
+ $<stack>$ = p->cmdarg_stack;
+ p->cmdarg_stack = 0;
+ }
lambda_body
{
p->lpar_beg = $<num>2;
- $$ = new_lambda(p, $3, $4);
+ $$ = new_lambda(p, $3, $5);
local_unnest(p);
+ p->cmdarg_stack = $<stack>4;
}
| keyword_if expr_value then
compstmt