Actions
Bug #14562
closedDo not warn for assignment in conditionals inside ()
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.6.0dev (2018-03-01 trunk 62617) [x86_64-darwin16]
Description
Ruby warns against this code, which is very helpful.
% ruby -we 'if a=1; p a; end'
-e:1: warning: found = in conditional, should be ==
1
So there's a commonly known practice. In order to express that we're intentionally assigning (not missing one more = sign), we usually add parens around the assignment.
But in fact, Ruby still warns...
% ruby -we 'if (a=1); p a; end'
-e:1: warning: found = in conditional, should be ==
1
Can this behavior changed not to warn when parenthesized?
Updated by nobu (Nobuyoshi Nakada) almost 7 years ago
Just remove if
.
It is the warning for assignment of a literal, which is not "conditional".
Updated by nobu (Nobuyoshi Nakada) almost 7 years ago
- Status changed from Open to Closed
Applied in changeset trunk|r62620.
parse.y: refine assign_in_cond warning
- parse.y (assign_in_cond): refine a warning message for
assignment of a literal in conditinal expression.
[ruby-core:85872] [Bug #14562]
Updated by nobu (Nobuyoshi Nakada) over 5 years ago
- Has duplicate Feature #15848: Silence warning when conditional assignments are wrapped in parentheses added
Actions
Like0
Like0Like0Like0