-
Notifications
You must be signed in to change notification settings - Fork 94
Open
Labels
Description
Bellow code generate VariableShadowing warning.
[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.
java: 11.0.12
scala: 2.13.6
sbt.version: 1.5.5
scapegoat: 1.4.10
sbt-scapegoat: 1.1.1