summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-05-11 05:23:14 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-05-11 05:23:14 +0000
commit4bbb0f9801a2d3ff3635078cb38e1b4922f32573 (patch)
tree74366a2669a2cad0bcdac57b44fba614ac9236b8 /parse.y
parentaf310963abb1ef737d52b29ec77f6598ac505472 (diff)
Bug #6419: fix cmdarg begin
* parse.y (primary): begin/end block should be isolated from outside. [ruby-dev:45631][Bug #6419] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y3
1 files changed, 3 insertions, 0 deletions
diff --git a/parse.y b/parse.y
index 7dd3a8a159..098e946abd 100644
--- a/parse.y
+++ b/parse.y
@@ -2684,6 +2684,8 @@ primary : literal
}
| k_begin
{
+ $<val>1 = cmdarg_stack;
+ cmdarg_stack = 0;
/*%%%*/
$<num>$ = ruby_sourceline;
/*%
@@ -2692,6 +2694,7 @@ primary : literal
bodystmt
k_end
{
+ cmdarg_stack = $<val>1;
/*%%%*/
if ($3 == NULL) {
$$ = NEW_NIL();