2023-06-15 17:09:18 +02:00
|
|
|
== Why is this an issue?
|
2020-06-30 12:47:33 +02:00
|
|
|
|
2023-10-16 12:04:08 +02:00
|
|
|
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
|
2020-06-30 12:47:33 +02:00
|
|
|
|
2022-02-04 17:28:24 +01:00
|
|
|
[source,swift]
|
2020-06-30 12:47:33 +02:00
|
|
|
----
|
|
|
|
public class Foo {
|
|
|
|
public var myField:Int = 0
|
|
|
|
|
|
|
|
public func doSomething() {
|
2023-06-15 17:09:18 +02:00
|
|
|
var myField = 0 /// Noncompliant
|
2023-10-16 12:04:08 +02:00
|
|
|
// ...
|
2020-06-30 12:47:33 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
----
|
|
|
|
|
2023-06-15 17:09:18 +02:00
|
|
|
include::../rspecator.adoc[]
|