なかだです。
不要なNODE_BEGINが残ることがあります。
$ ruby -rNodeDump -e 'begin ensure 0 end; 1'
NodeDump V0.9
NODE_BLOCK:
NODE_BEGIN:
NODE_NIL:
NODE_LIT: Fixnum: 1
Index: parse.y
===================================================================
RCS file: /cvs/ruby/src/ruby/parse.y,v
retrieving revision 1.347
diff -U2 -p -d -r1.347 parse.y
--- parse.y 27 Sep 2004 06:02:27 -0000 1.347
+++ parse.y 2 Oct 2004 07:48:59 -0000
@@ -652,5 +652,5 @@
{
/*%%%*/
- $$ = newline_node($1);
+ $$ = newline_node(remove_begin($1));
/*%
$$ = dispatch2(stmts_add, dispatch0(stmts_new), $1);
@@ -660,5 +660,5 @@
{
/*%%%*/
- $$ = block_append($1, newline_node($3));
+ $$ = block_append($1, newline_node(remove_begin($3)));
/*%
$$ = dispatch2(stmts_add, $1, $3);
@@ -667,5 +667,5 @@
| error stmt
{
- $$ = $2;
+ $$ = remove_begin($2);
}
;
@@ -3320,9 +3320,5 @@
{
/*%%%*/
- if ($2)
- $$ = $2;
- else
- /* place holder */
- $$ = NEW_NIL();
+ $$ = $2;
/*%
$$ = dispatch1(ensure, $2);
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦