include::../description.adoc[]

== Noncompliant Code Example

----
if (val = value() && check()) { // Noncompliant
  // ...
}
----

== Compliant Solution

----
val = value();
if (val && check()) {
  // ...
}
----

== Exceptions

The rule does not raise issues for the following patterns:


* assignments at declaration-level: ``++let a = b = 0;++``
* chained assignments: ``++a = b = c = 0;++``
* relational assignments: ``++(a = 0) != b++``
* sequential assignments: ``++a = 0, b = 1, c = 2++``
* assignments in lambda body: ``++() => a = 0++``
* conditional assignment idiom: ``++a || (a = 0)++``
* assignments in (do-)while conditions: ``++while (a = 0);++``

include::../see.adoc[]

ifdef::rspecator-view[]
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]
endif::rspecator-view[]
