From: Yusuke ENDOH Date: 2007-12-19T22:52:02+09:00 Subject: [ruby-dev:32645] unparenthesized method call with block 遠藤と申します。 以下でエラーも数字も出力されないのは変ではないでしょうか。 $ ./ruby -ve '1.upto 10 {|v| p v }' ruby 1.9.0 (2007-12-19 patchlevel 0) [i686-linux] $ parse.y に事実上 cmd_brace_block を使ってないルールが 2 つありました。 こうなったのは r10235 からで、その Changelog に * parse.y: remove some obsolete syntax rules (unparenthesized method calls in argument list). とありました。おそらくこのルールは除去されるべきなんではないでしょうか。 Index: parse.y =================================================================== --- parse.y (revision 14333) +++ parse.y (working copy) @@ -1260,17 +1260,6 @@ $$ = dispatch2(command, $1, $2); %*/ } - | operation command_args cmd_brace_block - { - /*%%%*/ - $$ = NEW_FCALL($1, $2); - block_dup_check($2,$3); - fixpos($$, $2); - /*% - $$ = dispatch2(command, $1, $2); - $$ = method_add_block($$, $3); - %*/ - } | primary_value '.' operation2 command_args %prec tLOWEST { /*%%%*/ @@ -1280,17 +1269,6 @@ $$ = dispatch4(command_call, $1, ripper_id2sym('.'), $3, $4); %*/ } - | primary_value '.' operation2 command_args cmd_brace_block - { - /*%%%*/ - $$ = NEW_CALL($1, $3, $4); - block_dup_check($4,$5); - fixpos($$, $1); - /*% - $$ = dispatch4(command_call, $1, ripper_id2sym('.'), $3, $4); - $$ = method_add_block($$, $5); - %*/ - } | primary_value tCOLON2 operation2 command_args %prec tLOWEST { /*%%%*/ -- Yusuke ENDOH