Warn "literal in condition" for __LINE__

Print warning for a code like

```ruby
if __LINE__
end

# => warning: literal in condition
```
This commit is contained in:
yui-knk 2024-01-01 10:17:08 +09:00 committed by Yuichiro Kaneko
parent 9368782d5c
commit 6ec4d203f7
2 changed files with 9 additions and 0 deletions

View File

@ -14260,6 +14260,12 @@ cond0(struct parser_params *p, NODE *node, enum cond_type type, const YYLTYPE *l
else {
SWITCH_BY_COND_TYPE(type, warning, "");
}
break;
case NODE_LINE:
SWITCH_BY_COND_TYPE(type, warning, "");
break;
default:
break;
}

View File

@ -1216,6 +1216,9 @@ eom
assert_warning(/literal in condition/) do
eval('1 if 1')
end
assert_warning(/literal in condition/) do
eval('1 if __LINE__')
end
assert_warning(/symbol literal in condition/) do
eval('1 if :foo')
end