You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[scapegoat] [VariableShadowing] Variable shadowing
[warn] Variable shadowing is very useful, but can easily lead to nasty bugs in your code. Shadowed variables can be potentially confusing to other maintainers when the same name is adopted to have a new meaning in a nested scope.
[warn] <artifact> val x$3: String = cat.copy$default$2
[warn] Some(cat).map(_ => cat.copy(age = cat.age + 1))
[warn] ^
final case class Cat(name: String, owner: String, age: Int)
def grow(cat: Cat): Option[Cat] = {
Some(cat).map(_ => cat.copy(age = cat.age + 1))
}
What is important is that Cat has more than two fields and copy has to be done in map.
The above code where collect is inside of collect also generate false positive for variable shadowing
[scapegoat] [VariableShadowing] Variable shadowing
[error] Variable shadowing is very useful, but can easily lead to nasty bugs in your code. Shadowed variables can be potentially confusing to other maintainers when the same name is adopted to have a new meaning in a nested scope.
[error] <synthetic> val default: A1 => B1 = _
[error] private def test() = Vector(Vector(1, 23), Vector(2, 3, 5, 6)).collect(_.collect(_ == 5))
Bellow code generate VariableShadowing warning.
What is important is that
Cat
has more than two fields andcopy
has to be done inmap
.java: 11.0.12
scala: 2.13.6
sbt.version: 1.5.5
scapegoat: 1.4.10
sbt-scapegoat: 1.1.1
The text was updated successfully, but these errors were encountered: