Issue #14562 has been updated by nobu (Nobuyoshi Nakada).


Just remove `if`.
It is the warning for assignment of a **literal**, which is not "conditional".

----------------------------------------
Bug #14562: Do not warn for assignment in conditionals inside ()
https://bugs.ruby-lang.org/issues/14562#change-70731

* Author: matsuda (Akira Matsuda)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.6.0dev (2018-03-01 trunk 62617) [x86_64-darwin16]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
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?



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>