Skip to content

Renaming specialized on import results in "unused import" warnings #20536

Closed
@satorg

Description

@satorg

Compiler version

v3.3.3, v3.4.2

Minimized code

import scala.{specialized => sp}

trait ImportUnusedSpecializedRename[@sp Int]

Script that I used for testing:

set -v

scala-cli clean ImportUnusedSpecializedRename.scala

scala-cli compile --server=false -j 17 -S 2.12.19 -Xlint:unused ImportUnusedSpecializedRename.scala
scala-cli compile --server=false -j 17 -S 2.13.14 -Wunused ImportUnusedSpecializedRename.scala
scala-cli compile --server=false -j 17 -S 3.3.3 -Wunused:imports ImportUnusedSpecializedRename.scala
scala-cli compile --server=false -j 17 -S 3.4.2 -Wunused:imports ImportUnusedSpecializedRename.scala

Output

scala-cli clean ImportUnusedSpecializedRename.scala

scala-cli compile --server=false -j 17 -S 2.12.19 -Xlint:unused ImportUnusedSpecializedRename.scala
scala-cli compile --server=false -j 17 -S 2.13.14 -Wunused ImportUnusedSpecializedRename.scala
scala-cli compile --server=false -j 17 -S 3.3.3 -Wunused:imports ImportUnusedSpecializedRename.scala
-- Warning: /Users/.../ImportUnusedSpecializedRename.scala:1:26 
1 |import scala.{specialized => sp}
  |              ^^^^^^^^^^^^^^^^^
  |              unused import
1 warning found
scala-cli compile --server=false -j 17 -S 3.4.2 -Wunused:imports ImportUnusedSpecializedRename.scala
-- Warning: /Users/.../ImportUnusedSpecializedRename.scala:1:26 
1 |import scala.{specialized => sp}
  |              ^^^^^^^^^^^^^^^^^
  |              unused import
1 warning found

Expectation

Scala3 should compile the above example without the "unused import" warnings.
As long as Scala2 compilers can do.

Additional Information

This issues causes a lot of extra warnings added up while compiling Cats for Scala3.
Historically, Cats uses import scala.{specialized => sp} in a bunch of files across the repository.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:lintingLinting warnings enabled with -W or -Xlintitype:bug

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions