parse.y: relax literal in condition warnings

* parse.y (cond0): do not warn literal boolean (true and false) in
  condition expressions, as they are often used as infinite loops,
  deactivated code block, etc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2018-05-18 00:36:24 +00:00
Родитель a20158381e
Коммит 4dc5b6ff58
1 изменённых файлов: 4 добавлений и 0 удалений

Просмотреть файл

@ -9823,6 +9823,10 @@ cond0(struct parser_params *p, NODE *node, int method_op, const YYLTYPE *loc)
warn_unless_e_option(p, node, "regex literal in condition");
nd_set_type(node, NODE_MATCH);
}
else if (node->nd_lit == Qtrue ||
node->nd_lit == Qfalse) {
/* booleans are OK, e.g., while true */
}
else {
if (!method_op)
parser_warning(p, node, "literal in condition");