aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y34
1 files changed, 22 insertions, 12 deletions
diff --git a/parse.y b/parse.y
index 7fc86e1987..3af47099ff 100644
--- a/parse.y
+++ b/parse.y
@@ -3264,6 +3264,28 @@ method_call : operation paren_args
$$ = dispatch3(call, $1, ripper_intern("::"), $3);
%*/
}
+ | primary_value '.' paren_args
+ {
+ /*%%%*/
+ $$ = NEW_CALL($1, rb_intern("call"), $3);
+ fixpos($$, $1);
+ /*%
+ $$ = dispatch3(call, dispatch1(paren, $1),
+ ripper_id2sym('.'), rb_intern("call"));
+ $$ = method_optarg($$, $3);
+ %*/
+ }
+ | primary_value tCOLON2 paren_args
+ {
+ /*%%%*/
+ $$ = NEW_CALL($1, rb_intern("call"), $3);
+ fixpos($$, $1);
+ /*%
+ $$ = dispatch3(call, dispatch1(paren, $1),
+ ripper_id2sym('.'), rb_intern("call"));
+ $$ = method_optarg($$, $3);
+ %*/
+ }
| kSUPER paren_args
{
/*%%%*/
@@ -3280,18 +3302,6 @@ 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);
- %*/
- }
| primary_value '[' opt_call_args rbracket
{
/*%%%*/