summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-06-15 08:53:15 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-06-15 08:53:15 +0000
commitbae638ad5b782c44c80efe33834cb9039279af46 (patch)
tree24b40413daece9611aa532bfd04662645a80f783
parent4fb5888a4dbc10b6f6d3f847f680baae60b9f757 (diff)
parse.y: Deprecate flip-flops
Ref #5400 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--parse.y6
-rw-r--r--test/ruby/test_syntax.rb2
2 files changed, 6 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index b1ddc1b..51f7d3f 100644
--- a/parse.y
+++ b/parse.y
@@ -9809,8 +9809,10 @@ cond0(struct parser_params *p, NODE *node, int method_op, const YYLTYPE *loc)
case NODE_DOT3:
node->nd_beg = range_op(p, node->nd_beg, loc);
node->nd_end = range_op(p, node->nd_end, loc);
- if (nd_type(node) == NODE_DOT2) nd_set_type(node,NODE_FLIP2);
- else if (nd_type(node) == NODE_DOT3) nd_set_type(node, NODE_FLIP3);
+ if (nd_type(node) == NODE_DOT2 || nd_type(node) == NODE_DOT3) {
+ nd_set_type(node, nd_type(node) == NODE_DOT2 ? NODE_FLIP2 : NODE_FLIP3);
+ parser_warn(p, node, "flip-flop is deprecated");
+ }
if (!method_op && !e_option_supplied(p)) {
int b = literal_node(node->nd_beg);
int e = literal_node(node->nd_end);
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index 6798543..564fc21 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -940,7 +940,9 @@ eom
eval('1 if !//')
end
assert_warn('') do
+ verbose_bak, $VERBOSE = $VERBOSE, nil
eval('1 if !(true..false)')
+ $VERBOSE = verbose_bak
end
assert_warning('') do
eval('1 if !1')