== Why is this an issue?

Brevity may be the soul of wit, but concise (yet readable!) code is the soul of good programming. For that reason, you should never use a ``++let++`` or ``++var++`` keyword that can be left out with the same effect.


=== Noncompliant code example

[source,swift]
----
if let x = x, let y = y {  // Noncompliant
  // ...
}

if let p = p, var q = q {
  // ...
}

if case (let x?, let y?) = foo {  // Noncompliant 
  // ...
}
----


=== Compliant solution

[source,swift]
----
if let x = x, y = y {  
  // ...
}

if let p = p, var q = q {
  // ...
}

if case (x?,  y?) = foo {
  // ...
}
----



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

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

=== Message

* Remove the other "[let|var]" keywords in this condition.
* Remove the "let" keywords in this case.


=== Highlighting

* primary: the first ``++let++``|``++var++``
* secondary: the other ``++let++``|``++var++`` instances


'''
== Comments And Links
(visible only on this page)

=== on 8 Jul 2016, 19:50:43 Ann Campbell wrote:
http://ericasadun.com/2015/11/17/a-handful-of-swift-style-rules-swiftlang/ - Rule of Pattern Matching Keywords + Rule of Conditional Binding Cascades

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