diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-03-05 16:34:21 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-03-05 16:34:21 +0000 |
commit | c46bdadb84bec5fd4484e4375e2935d740984618 (patch) | |
tree | e2293bd39003a28ae4ce9fcee1fa9b6de9896e82 /parse.y | |
parent | 45f3651d1c0fbc286a3083eb03624fc9bc696232 (diff) |
* parse.y (block_call): rules for block_call after block_call.
based on a patch by pasberth https://github.com/ruby/ruby/pull/102
[ruby-dev:45308][Bug #6115]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -3856,6 +3856,30 @@ block_call : command do_block $$ = method_optarg($$, $4); %*/ } + | block_call dot_or_colon operation2 opt_paren_args brace_block + { + /*%%%*/ + block_dup_check($4, $5); + $5->nd_iter = NEW_CALL($1, $3, $4); + $$ = $5; + fixpos($$, $1); + /*% + $$ = dispatch4(command_call, $1, $2, $3, $4); + $$ = method_add_block($$, $5); + %*/ + } + | block_call dot_or_colon operation2 command_args do_block + { + /*%%%*/ + block_dup_check($4, $5); + $5->nd_iter = NEW_CALL($1, $3, $4); + $$ = $5; + fixpos($$, $1); + /*% + $$ = dispatch4(command_call, $1, $2, $3, $4); + $$ = method_add_block($$, $5); + %*/ + } ; method_call : operation |