diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-06-02 07:26:10 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-06-02 07:26:10 +0000 |
commit | 34adacb036e1aac4b6b914e1515e4a907c30a0b7 (patch) | |
tree | cf3603e802f78e3bb5b3dce4ae7d0cb927d9179a | |
parent | f2469dc78a869cac2d1b2264cb9c131ee882cf19 (diff) | |
download | ruby-34adacb036e1aac4b6b914e1515e4a907c30a0b7.tar.gz |
* parse.y (method_call): new experiment: "(expr)(args...)" to
invoke "expr.call(args...)". [EXPERIMENTAL]
* parse.y (command): revert implicit "call" for local variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | parse.y | 16 |
2 files changed, 23 insertions, 2 deletions
@@ -13,6 +13,15 @@ Wed Jun 1 11:30:09 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> * bcc32/Makefile.sub: Dir.glob in 1.9 doesn't treat \ as path separator. [ruby-dev:26254] +Wed Jun 1 00:11:06 2005 Yukihiro Matsumoto <matz@ruby-lang.org> + + * parse.y (method_call): new experiment: "(expr)(args...)" to + invoke "expr.call(args...)". [EXPERIMENTAL] + +Tue May 31 23:43:41 2005 Yukihiro Matsumoto <matz@ruby-lang.org> + + * parse.y (command): revert implicit "call" for local variables. + Tue May 31 15:52:45 2005 GOTOU Yuuzou <gotoyuzo@notwork.org> * lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should @@ -3316,6 +3316,18 @@ method_call : operation paren_args $$ = dispatch0(zsuper); %*/ } + | tLPAREN compstmt ')' paren_args + { + /*%%%*/ + if (!$2) $2 = NEW_NIL(); + $$ = new_call($2, rb_intern("call"), $4); + fixpos($$, $2); + /*% + $$ = dispatch3(call, dispatch1(paren, $2), + ripper_id2sym('.'), rb_intern("call")); + $$ = method_optarg($$, $4); + %*/ + } ; brace_block : '{' @@ -7869,10 +7881,10 @@ new_fcall_gen(parser, m, a) NODE *a; { if (a && nd_type(a) == NODE_BLOCK_PASS) { - a->nd_iter = fcall_gen(parser,m,a->nd_head); + a->nd_iter = NEW_FCALL(m,a->nd_head); return a; } - return fcall_gen(parser, m,a); + return NEW_FCALL(m, a); } static NODE* |