-
Couldn't load subscription status.
- Fork 1.1k
Open
Labels
area:lintingLinting warnings enabled with -W or -XlintLinting warnings enabled with -W or -Xlintitype:bug
Description
Steps
See #17394, which was reported in May 2023
See also sbt/sbt#7726
Problem
Under -Wunused:imports Scala 3 reports false warnings:
[warn] Unable to find a link for Id(Project) in extraProjects: dotty.tools.dotc.core.TypeError$$anon$1:
Toplevel definition overrideConfigs is defined in
[warn] /home/runner/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/main_3/2.0.0-M2/main_3-2.0.0-M2.jar(sbt/BuildCommon.class)
[warn] and also in
[warn] /home/runner/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/main_3/2.0.0-M2/main_3-2.0.0-M2.jar(sbt/ProjectExtra.class)
[warn] One of these files should be removed from the classpath.Expectation
I have not looked into the details, but it seems like there's a feature interference between the -Wunused:imports linter and "One of these files should be removed from the classpath" error in dropStale (
scala3/compiler/src/dotty/tools/dotc/core/SymDenotations.scala
Lines 2546 to 2557 in cc4a324
| // pick the variant(s) from the youngest class file | |
| val lastModDate = assocFiles.map(_.lastModified).max | |
| val youngest = assocFiles.filter(_.lastModified == lastModDate) | |
| val chosen = youngest.head | |
| def ambiguousFilesMsg(f: AbstractFile) = | |
| i"""Toplevel definition $name is defined in | |
| | $chosen | |
| |and also in | |
| | $f""" | |
| if youngest.size > 1 then | |
| throw TypeError(em"""${ambiguousFilesMsg(youngest.tail.head)} | |
| |One of these files should be removed from the classpath.""") |
-Werror, I suggest one of the two features to be removed in the short-term, assuming removal of a linter is relatively easy thing to do.
If someone has the bandwidth to fix the interference, then the linter can always come back.
Metadata
Metadata
Assignees
Labels
area:lintingLinting warnings enabled with -W or -XlintLinting warnings enabled with -W or -Xlintitype:bug