scapegoat icon indicating copy to clipboard operation
scapegoat copied to clipboard

false positive VariableShadowing when use copy in map

Open btomala opened this issue 3 years ago • 1 comments

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

btomala avatar Oct 01 '21 05:10 btomala