Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Scala 2.13.15 marks pattern vars as unused in for comprehension if there is a filter #13041

@dragisak

Description

@dragisak

Reproduction steps

Scala version: 2.13.15
Sbt: 1.10.2
Scalac options:

ThisBuild / scalacOptions ++= List(
  "-Xfatal-warnings",
  "-Ywarn-unused:patvars"
)
  val m = Map(
    "first" -> Map((true, 1), (false, 2), (true, 3)),
    "second" -> Map((true, 1), (false, 2), (true, 3))
  )
  m.map { case (a, m1) =>
    for {
      (status, lag) <- m1 if status
    } yield (a, status, lag)
  }

Problem

Getting compilation error:

[error] pattern var lag in value $anonfun is never used
[error]       (status, lag) <- m1 if status

If I remove if clause, it compiles:

  val m = Map(
    "first" -> Map((true, 1), (false, 2), (true, 3)),
    "second" -> Map((true, 1), (false, 2), (true, 3))
  )
  m.map { case (a, m1) =>
    for {
      (status, lag) <- m1
    } yield (a, status, lag)
  }

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions