diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-06-23 11:56:48 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-06-23 11:56:48 +0000 |
commit | af4ba5c12a54cff78cb46832132e7dc8c4fd86cc (patch) | |
tree | b2de6089808cea65aa1d68edbc0632d4d775e527 /compile.c | |
parent | d391697331fc0cdef9c3084e248af0d446cd9dd0 (diff) |
parse.y: should not warn op method call
* parse.y (void_expr_gen): should warn operator expression style
calls only, but not method style calls. [Fix GH-1660]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'compile.c')
-rw-r--r-- | compile.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -3644,11 +3644,12 @@ defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *const ret, /* method dispatch */ case NODE_CALL: + case NODE_OPCALL: case NODE_VCALL: case NODE_FCALL: case NODE_ATTRASGN:{ const int explicit_receiver = - (type == NODE_CALL || + (type == NODE_CALL || type == NODE_OPCALL || (type == NODE_ATTRASGN && !private_recv_p(node))); if (!lfinish[1] && (node->nd_args || explicit_receiver)) { @@ -5237,6 +5238,7 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, NODE *node, int popp break; } case NODE_CALL: + case NODE_OPCALL: /* optimization shortcut * "literal".freeze -> opt_str_freeze("literal") */ @@ -5363,7 +5365,7 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, NODE *node, int popp } #endif /* receiver */ - if (type == NODE_CALL || type == NODE_QCALL) { + if (type == NODE_CALL || type == NODE_OPCALL || type == NODE_QCALL) { CHECK(COMPILE(recv, "recv", node->nd_recv)); if (type == NODE_QCALL) { lskip = NEW_LABEL(line); |