== Why is this an issue?

You can't create a variable named "for". Unless you put backticks (``++`++``) around it.


Since that would be the first step down a slippery slope of hopeless confusion, backticks should be removed from identifier names - whether they're keywords or not - and the identifiers renamed as required.


=== Noncompliant code example

[source,swift]
----
var `for` = 1   // Noncompliant
for (var `in` = 0; `in` < 10 && `for` > 0; `in`++) {  // Noncompliant
  // ...
}

var `x` = "hello"  // Noncompliant; why would you do this?
----


=== Compliant solution

[source,swift]
----
var i = a
for (var j=0; j< 10; j++) { 
  // ...
}

var x = "hello"
----


=== Exceptions

When Objective-C libraries are used in Swift, backticks may be needed around parameter names which are keywords in Swift but not in Objective C. Therefore this rule ignores backticks around parameter names.


[source,swift]
----
var protectionSpace: NSURLProtectionSpace = NSURLProtectionSpace(
  host: host,
  port: port,
  `protocol`: prot,  // Compliant
  realm: nil,
  authenticationMethod: authenticationMethod
);
----



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

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

=== Message

Remove backticks ``++`++`` from "xxx".

Remove backticks ``++`++`` from "xxx" and rename it.


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

=== relates to: S1669

=== on 21 May 2015, 08:29:57 Elena Vilchik wrote:
\[~ann.campbell.2] Could you add something about not keyword identifiers used with back ticks. 

----
var x = 1
print(`x`) // Noncompliant, confuses the reader, no reason to do that
----

=== on 21 May 2015, 11:38:32 Ann Campbell wrote:
see what you think now [~elena.vilchik]

=== on 21 May 2015, 11:43:15 Elena Vilchik wrote:
\[~ann.campbell.2] great!

=== on 24 Jun 2015, 10:14:08 Elena Vilchik wrote:
\[~ann.campbell.2] I have 0 issues on ruling for this rule, so backticks are not really used. So I decided to raise issue on every usage of backticked identifier instead of declaration or first backticked usage (as it will not produce a lot of noise and very-very simple to implement). According with it I've updated message and SQALE. Are you ok with that?  

=== on 24 Jun 2015, 12:02:44 Elena Vilchik wrote:
\[~ann.campbell.2] Could you translate "Exceptions" block in normal english language?:)

=== on 24 Jun 2015, 13:54:01 Ann Campbell wrote:
Reworded (so double-check me), but it wasn't bad too start with [~elena.vilchik] :).

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