== Why is this an issue?

Redundant boolean literals should be removed from expressions to improve readability.

=== Code examples

==== Noncompliant code example

[source,swift,diff-id=1,diff-type=noncompliant]
----
if condition == true  { /* ... */ } // Noncompliant
if condition != false { /* ... */ } // Noncompliant
if condition && true  { /* ... */ } // Noncompliant
if condition || false { /* ... */ } // Noncompliant
doSomething(!false)                 // Noncompliant
doSomething(condition == true)      // Noncompliant

v = condition ? true  : false   // Noncompliant
v = condition ? true  : exp     // Noncompliant
v = condition ? false : exp     // Noncompliant
v = condition ? exp   : true    // Noncompliant
v = condition ? exp   : false   // Noncompliant
----

==== Compliant solution

[source,swift,diff-id=1,diff-type=compliant]
----
if condition { /* ... */ }
if condition { /* ... */ }
if condition { /* ... */ }
if condition { /* ... */ }
doSomething(true)
doSomething(condition)

v = condition
v = condition  || exp
v = !condition && exp
v = !condition || exp
v = condition  && exp
----

=== Exceptions

Expression statements are ignored.

[source,swift]
----
expect(value) == true // ignored
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

'''

endif::env-github,rspecator-view[]
