diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-10-04 12:15:27 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-10-04 12:16:31 +0900 |
commit | 28392d30451bbf13cdacf6b745eb4f5147741bdf (patch) | |
tree | bf49a105ca844d77d4b01f248fb5c5bd27d3ebfe | |
parent | da139317a59acb2d79f460bf92331450efa310fe (diff) |
The same warning for static symbol literal
-rw-r--r-- | parse.y | 4 | ||||
-rw-r--r-- | test/ruby/test_syntax.rb | 6 |
2 files changed, 7 insertions, 3 deletions
@@ -11758,6 +11758,7 @@ cond0(struct parser_params *p, NODE *node, enum cond_type type, const YYLTYPE *l break; case NODE_DSYM: + warn_symbol: SWITCH_BY_COND_TYPE(type, warning, "symbol ") break; @@ -11770,6 +11771,9 @@ cond0(struct parser_params *p, NODE *node, enum cond_type type, const YYLTYPE *l node->nd_lit == Qfalse) { /* booleans are OK, e.g., while true */ } + else if (SYMBOL_P(node->nd_lit)) { + goto warn_symbol; + } else { SWITCH_BY_COND_TYPE(type, warning, "") } diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index bf59ee5379..667eb205dc 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -1061,16 +1061,16 @@ eom end def test_warning_literal_in_condition - assert_warn(/literal in condition/) do + assert_warn(/string literal in condition/) do eval('1 if ""') end - assert_warn(/literal in condition/) do + assert_warn(/regex literal in condition/) do eval('1 if //') end assert_warning(/literal in condition/) do eval('1 if 1') end - assert_warning(/literal in condition/) do + assert_warning(/symbol literal in condition/) do eval('1 if :foo') end assert_warning(/symbol literal in condition/) do |