summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker
diff options
context:
space:
mode:
authorEugene Vigdorchik <eugene.vigdorchik@gmail.com>2013-03-04 19:10:49 +0400
committerEugene Vigdorchik <eugene.vigdorchik@gmail.com>2013-03-05 12:19:59 +0400
commit1666f6e3f4f3959a489007d830484247c1384a74 (patch)
tree808c8f800688bd720cae12402fb924607622bd5b /src/compiler/scala/tools/nsc/typechecker
parentce32c1af462de7d7c6b90efd56217e202a18d1e6 (diff)
downloadscala-1666f6e3f4f3959a489007d830484247c1384a74.tar.gz
scala-1666f6e3f4f3959a489007d830484247c1384a74.tar.bz2
scala-1666f6e3f4f3959a489007d830484247c1384a74.zip
Since the problem in SI-6758 is fixed, it's ok to move checking for unused imports to Analyzer. This allows the check to be used in the IDE.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Contexts.scala19
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala2
2 files changed, 10 insertions, 11 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
index 22a28b7895..0ae5c2be03 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
@@ -51,20 +51,17 @@ trait Contexts { self: Analyzer =>
private lazy val allImportInfos =
mutable.Map[CompilationUnit, List[ImportInfo]]() withDefaultValue Nil
- def clearUnusedImports() {
- allUsedSelectors.clear()
- allImportInfos.clear()
- }
def warnUnusedImports(unit: CompilationUnit) = {
- val imps = allImportInfos(unit).reverse.distinct
-
- for (imp <- imps) {
- val used = allUsedSelectors(imp)
- def isMask(s: ImportSelector) = s.name != nme.WILDCARD && s.rename == nme.WILDCARD
+ for (imps <- allImportInfos.remove(unit)) {
+ for (imp <- imps.reverse.distinct) {
+ val used = allUsedSelectors(imp)
+ def isMask(s: ImportSelector) = s.name != nme.WILDCARD && s.rename == nme.WILDCARD
- imp.tree.selectors filterNot (s => isMask(s) || used(s)) foreach { sel =>
- unit.warning(imp posOf sel, "Unused import")
+ imp.tree.selectors filterNot (s => isMask(s) || used(s)) foreach { sel =>
+ unit.warning(imp posOf sel, "Unused import")
+ }
}
+ allUsedSelectors --= imps
}
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala b/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
index af484a47e2..20fc44bed1 100644
--- a/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala
@@ -486,6 +486,8 @@ trait TypeDiagnostics {
}
def apply(unit: CompilationUnit) = {
+ warnUnusedImports(unit)
+
val p = new UnusedPrivates
p traverse unit.body
val unused = p.unusedTerms