rspec/rules/S1117/swift/rule.adoc
Marco Borgeaud 98517de0ff
Modify rule S1117: Migrate To LayC - shadow variables (#3270)
The languages for this rule fall into two categories:

* CFamily, JS, and PLSQL: "Variables should not be shadowed" (general
case of shadowing)
* C#, Flex, Java, PHP, Swift: "Local variables should not shadow
field/property/enum case/..." (narrow case of shadowing)

For CFamily, these tickets are also handled: CPP-2785 CPP-3589
2023-10-16 12:04:08 +02:00

26 lines
711 B
Plaintext

== Why is this an issue?
Shadowing occurs when a local variable has the same name as a variable, field, or `enum case` in an outer scope.
include::../problems.adoc[]
To avoid these problems, rename the shadowing, shadowed, or both identifiers to accurately represent their purpose with unique and meaningful names.
It improves clarity and allows reasoning locally about the code without considering other software parts.
This rule focuses on variables shadowing fields or ``enum case``s.
=== Noncompliant code example
[source,swift]
----
public class Foo {
public var myField:Int = 0
public func doSomething() {
var myField = 0 /// Noncompliant
// ...
}
}
----
include::../rspecator.adoc[]