summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-02-26 05:29:06 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-02-26 05:29:06 +0000
commitdf2d69b49ab1c8b42dd6c18fb63df26aec95f364 (patch)
treef352837db7633a5d6355461ca14f0f870d951e86 /parse.y
parent69739b14a5f8950c1da8b86f90a70903ed975fee (diff)
* eval.c (proc_call): should not modify ruby_block->frame.iter
based on ruby_frame->iter altered by PUSH_ITER(). * eval.c (rb_thread_fd_close): should save current context before raising exception. * io.c (set_stdin): preserve original stdin. * io.c (set_outfile): preserve original stdout/stderr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y15
1 files changed, 8 insertions, 7 deletions
diff --git a/parse.y b/parse.y
index 4f6095b6fd..7e4f1a3352 100644
--- a/parse.y
+++ b/parse.y
@@ -1271,7 +1271,12 @@ primary : literal
cref_pop();
class_nest--;
}
- | kCLASS tLSHFT expr term
+ | kCLASS tLSHFT expr
+ {
+ $<num>$ = in_def;
+ in_def = 0;
+ }
+ term
{
$<num>$ = in_single;
in_single = 0;
@@ -1279,10 +1284,6 @@ primary : literal
cref_push();
local_push();
}
- {
- $<num>$ = in_def;
- in_def = 0;
- }
compstmt
kEND
{
@@ -1291,8 +1292,8 @@ primary : literal
local_pop();
cref_pop();
class_nest--;
- in_single = $<num>5;
- in_def = $<num>6;
+ in_def = $<num>4;
+ in_single = $<num>6;
}
| kMODULE cname
{