From 121e7f5d9e647baffa35207dbbf00d8da7f5eb1f Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Sun, 19 Jun 2016 11:42:31 +0100 Subject: [PATCH] Add -Ywarn-unused & -Ywarn-unused-import, & fix warnings --- build.sbt | 1 + .../scala/sbt/internal/util/appmacro/ContextUtil.scala | 1 - .../main/scala/sbt/internal/util/appmacro/Instance.scala | 1 - .../scala/sbt/internal/util/appmacro/KListBuilder.scala | 3 --- .../scala/sbt/internal/util/appmacro/TupleBuilder.scala | 2 -- .../scala/sbt/internal/util/appmacro/TupleNBuilder.scala | 5 +---- .../src/main/scala/sbt/internal/util/Cache.scala | 2 +- .../src/main/scala/sbt/internal/util/CacheIO.scala | 2 +- .../src/main/scala/sbt/internal/util/FileInfo.scala | 2 +- .../src/main/scala/sbt/internal/util/SeparatedCache.scala | 6 ++---- .../src/main/scala/sbt/internal/util/Dag.scala | 1 - .../src/main/scala/sbt/internal/util/INode.scala | 2 +- .../src/main/scala/sbt/internal/util/Param.scala | 2 -- .../src/main/scala/sbt/internal/util/Settings.scala | 6 ------ internal/util-collection/src/test/scala/LiteralTest.scala | 4 +--- .../util-collection/src/test/scala/SettingsExample.scala | 1 - .../src/main/scala/sbt/internal/util/LineReader.scala | 3 +-- .../scala/sbt/internal/util/complete/EditDistance.scala | 3 +-- .../scala/sbt/internal/util/complete/HistoryCommands.scala | 1 - .../scala/sbt/internal/util/complete/JLineCompletion.scala | 2 +- .../src/main/scala/sbt/internal/util/ConsoleOut.scala | 1 - internal/util-logging/src/test/scala/LogWriterTest.scala | 2 +- .../main/scala/sbt/internal/scripted/ScriptedTests.scala | 7 ++----- .../scala/sbt/internal/scripted/TestScriptParser.scala | 4 ++-- .../src/main/scala/sbt/internal/util/Tracked.scala | 4 +--- 25 files changed, 18 insertions(+), 50 deletions(-) diff --git a/build.sbt b/build.sbt index 802fa7b17..06f510900 100644 --- a/build.sbt +++ b/build.sbt @@ -14,6 +14,7 @@ def commonSettings: Seq[Setting[_]] = Seq( testOptions += Tests.Argument(TestFrameworks.ScalaCheck, "-w", "1"), javacOptions in compile ++= Seq("-target", "6", "-source", "6", "-Xlint", "-Xlint:-serial"), crossScalaVersions := Seq(scala210, scala211), + scalacOptions ++= Seq("-Ywarn-unused", "-Ywarn-unused-import"), previousArtifact := None, // Some(organization.value %% moduleName.value % "1.0.0"), publishArtifact in Compile := true, publishArtifact in Test := false diff --git a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/ContextUtil.scala b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/ContextUtil.scala index ee3b56361..b9b968a23 100644 --- a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/ContextUtil.scala +++ b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/ContextUtil.scala @@ -3,7 +3,6 @@ package appmacro import scala.reflect._ import macros._ -import scala.tools.nsc.Global import ContextUtil.{ DynamicDependencyError, DynamicReferenceError } object ContextUtil { diff --git a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/Instance.scala b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/Instance.scala index 3177d59c4..a10fdfb18 100644 --- a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/Instance.scala +++ b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/Instance.scala @@ -23,7 +23,6 @@ trait MonadInstance extends Instance { import scala.reflect._ import macros._ -import reflect.internal.annotations.compileTimeOnly object Instance { final val ApplyName = "app" diff --git a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/KListBuilder.scala b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/KListBuilder.scala index cab5058cb..65b061e66 100644 --- a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/KListBuilder.scala +++ b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/KListBuilder.scala @@ -1,8 +1,6 @@ package sbt.internal.util package appmacro -import Types.Id -import scala.tools.nsc.Global import scala.reflect._ import macros._ @@ -59,7 +57,6 @@ object KListBuilder extends TupleBuilder { val klistType: Type = (inputs :\ knilType)((in, klist) => kconsType(in.tpe, klist)) val representationC = internal.polyType(tcVariable :: Nil, klistType) - val resultType = appliedType(representationC, idTC :: Nil) val input = klist val alistInstance: ctx.universe.Tree = TypeApply(select(Ident(alist), "klist"), TypeTree(representationC) :: Nil) def extract(param: ValDef) = bindKList(param, Nil, inputs.map(_.local)) diff --git a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/TupleBuilder.scala b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/TupleBuilder.scala index c36baa78a..1186f3549 100644 --- a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/TupleBuilder.scala +++ b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/TupleBuilder.scala @@ -1,8 +1,6 @@ package sbt.internal.util package appmacro -import Types.Id -import scala.tools.nsc.Global import scala.reflect._ import macros._ diff --git a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/TupleNBuilder.scala b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/TupleNBuilder.scala index f902db25e..1c5430e4c 100644 --- a/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/TupleNBuilder.scala +++ b/internal/util-appmacro/src/main/scala/sbt/internal/util/appmacro/TupleNBuilder.scala @@ -1,7 +1,6 @@ package sbt.internal.util package appmacro -import Types.Id import scala.tools.nsc.Global import scala.reflect._ import macros._ @@ -17,11 +16,10 @@ object TupleNBuilder extends TupleBuilder { def make(c: blackbox.Context)(mt: c.Type, inputs: Inputs[c.universe.type]): BuilderResult[c.type] = new BuilderResult[c.type] { val util = ContextUtil[c.type](c) - import c.universe.{ Apply => ApplyTree, _ } + import c.universe._ import util._ val global: Global = c.universe.asInstanceOf[Global] - val mTC: Type = mt.asInstanceOf[c.universe.Type] val ctx: c.type = c val representationC: PolyType = { @@ -30,7 +28,6 @@ object TupleNBuilder extends TupleBuilder { val tuple = global.definitions.tupleType(tupleTypeArgs) internal.polyType(tcVariable :: Nil, tuple.asInstanceOf[Type]) } - val resultType = appliedType(representationC, idTC :: Nil) val input: Tree = mkTuple(inputs.map(_.expr)) val alistInstance: Tree = { diff --git a/internal/util-cache/src/main/scala/sbt/internal/util/Cache.scala b/internal/util-cache/src/main/scala/sbt/internal/util/Cache.scala index 12ae1f7e4..411771300 100644 --- a/internal/util-cache/src/main/scala/sbt/internal/util/Cache.scala +++ b/internal/util-cache/src/main/scala/sbt/internal/util/Cache.scala @@ -7,7 +7,7 @@ import sbinary.{ CollectionTypes, DefaultProtocol, Format, Input, JavaFormats, O import java.io.{ ByteArrayInputStream, ByteArrayOutputStream, File, InputStream, OutputStream } import java.net.{ URI, URL } import Types.:+: -import DefaultProtocol.{ asProduct2, asSingleton, BooleanFormat, ByteFormat, IntFormat, wrap } +import DefaultProtocol.{ asSingleton, BooleanFormat, ByteFormat, IntFormat, wrap } import scala.xml.NodeSeq import scala.language.existentials diff --git a/internal/util-cache/src/main/scala/sbt/internal/util/CacheIO.scala b/internal/util-cache/src/main/scala/sbt/internal/util/CacheIO.scala index 95c00f47a..afa5d12a6 100644 --- a/internal/util-cache/src/main/scala/sbt/internal/util/CacheIO.scala +++ b/internal/util-cache/src/main/scala/sbt/internal/util/CacheIO.scala @@ -3,7 +3,7 @@ */ package sbt.internal.util -import java.io.{ File, FileNotFoundException } +import java.io.File import sbinary.{ DefaultProtocol, Format, Operations } import scala.reflect.Manifest import sbt.io.IO diff --git a/internal/util-cache/src/main/scala/sbt/internal/util/FileInfo.scala b/internal/util-cache/src/main/scala/sbt/internal/util/FileInfo.scala index 1b6ac418c..8bd025397 100644 --- a/internal/util-cache/src/main/scala/sbt/internal/util/FileInfo.scala +++ b/internal/util-cache/src/main/scala/sbt/internal/util/FileInfo.scala @@ -3,7 +3,7 @@ */ package sbt.internal.util -import java.io.{ File, IOException } +import java.io.File import sbinary.{ DefaultProtocol, Format } import DefaultProtocol._ import scala.reflect.Manifest diff --git a/internal/util-cache/src/main/scala/sbt/internal/util/SeparatedCache.scala b/internal/util-cache/src/main/scala/sbt/internal/util/SeparatedCache.scala index 379cdbff7..ff735a528 100644 --- a/internal/util-cache/src/main/scala/sbt/internal/util/SeparatedCache.scala +++ b/internal/util-cache/src/main/scala/sbt/internal/util/SeparatedCache.scala @@ -3,10 +3,8 @@ */ package sbt.internal.util -import Types.:+: -import sbinary.{ DefaultProtocol, Format, Input, Output => Out } -import DefaultProtocol.ByteFormat -import java.io.{ File, InputStream, OutputStream } +import sbinary.{ Format, Input, Output => Out } +import java.io.File import sbt.io.Using trait InputCache[I] { diff --git a/internal/util-collection/src/main/scala/sbt/internal/util/Dag.scala b/internal/util-collection/src/main/scala/sbt/internal/util/Dag.scala index 5cad287da..1c9d93ea0 100644 --- a/internal/util-collection/src/main/scala/sbt/internal/util/Dag.scala +++ b/internal/util-collection/src/main/scala/sbt/internal/util/Dag.scala @@ -94,7 +94,6 @@ object Dag { */ private[sbt] def findNegativeCycle[Node](graph: DirectedSignedGraph[Node]): List[graph.Arrow] = { - import scala.annotation.tailrec import graph._ val finished = new mutable.HashSet[Node] val visited = new mutable.HashSet[Node] diff --git a/internal/util-collection/src/main/scala/sbt/internal/util/INode.scala b/internal/util-collection/src/main/scala/sbt/internal/util/INode.scala index d7a15eee8..d85cadf3f 100644 --- a/internal/util-collection/src/main/scala/sbt/internal/util/INode.scala +++ b/internal/util-collection/src/main/scala/sbt/internal/util/INode.scala @@ -3,7 +3,7 @@ package sbt.internal.util import java.lang.Runnable import java.util.concurrent.{ atomic, Executor, LinkedBlockingQueue } import atomic.{ AtomicBoolean, AtomicInteger } -import Types.{ :+:, ConstK, Id } +import Types.{ ConstK, Id } object EvaluationState extends Enumeration { val New, Blocked, Ready, Calling, Evaluated = Value diff --git a/internal/util-collection/src/main/scala/sbt/internal/util/Param.scala b/internal/util-collection/src/main/scala/sbt/internal/util/Param.scala index 68671c8ca..dbded9292 100644 --- a/internal/util-collection/src/main/scala/sbt/internal/util/Param.scala +++ b/internal/util-collection/src/main/scala/sbt/internal/util/Param.scala @@ -3,8 +3,6 @@ */ package sbt.internal.util -import Types._ - // Used to emulate ~> literals trait Param[A[_], B[_]] { type T diff --git a/internal/util-collection/src/main/scala/sbt/internal/util/Settings.scala b/internal/util-collection/src/main/scala/sbt/internal/util/Settings.scala index a85a3faa6..3bee6fb9c 100644 --- a/internal/util-collection/src/main/scala/sbt/internal/util/Settings.scala +++ b/internal/util-collection/src/main/scala/sbt/internal/util/Settings.scala @@ -278,7 +278,6 @@ trait Init[Scope] { def flattenLocals(compiled: CompiledMap): Map[ScopedKey[_], Flattened] = { - import collection.breakOut val locals = compiled flatMap { case (key, comp) => if (key.key.isLocal) Seq[Compiled[_]](comp) else Nil } val ordered = Dag.topologicalSort(locals)(_.dependencies.flatMap(dep => if (dep.key.isLocal) Seq[Compiled[_]](compiled(dep)) else Nil)) def flatten(cmap: Map[ScopedKey[_], Flattened], key: ScopedKey[_], deps: Iterable[ScopedKey[_]]): Flattened = @@ -340,11 +339,6 @@ trait Init[Scope] { derivsByDef.getOrElseUpdate(key, new Deriveds(key, new mutable.ListBuffer)).settings += s } - // sort derived settings so that dependencies come first - // this is necessary when verifying that a derived setting's dependencies exist - val ddeps = (d: Deriveds) => d.dependencies.flatMap(derivsByDef.get) - val sortedDerivs = Dag.topologicalSort(derivsByDef.values)(ddeps) - // index derived settings by triggering key. This maps a key to the list of settings potentially derived from it. val derivedBy = new mutable.HashMap[AttributeKey[_], mutable.ListBuffer[Derived]] for (s <- derived; d <- s.triggeredBy) diff --git a/internal/util-collection/src/test/scala/LiteralTest.scala b/internal/util-collection/src/test/scala/LiteralTest.scala index b50d02632..9353a07bf 100644 --- a/internal/util-collection/src/test/scala/LiteralTest.scala +++ b/internal/util-collection/src/test/scala/LiteralTest.scala @@ -3,8 +3,6 @@ */ package sbt.internal.util -import Types._ - // compilation test object LiteralTest { def x[A[_], B[_]](f: A ~> B) = f @@ -14,4 +12,4 @@ object LiteralTest { val a: List[Int] = f(Some(3)) val b: List[String] = f(Some("aa")) -} \ No newline at end of file +} diff --git a/internal/util-collection/src/test/scala/SettingsExample.scala b/internal/util-collection/src/test/scala/SettingsExample.scala index 5dd408282..0dd910773 100644 --- a/internal/util-collection/src/test/scala/SettingsExample.scala +++ b/internal/util-collection/src/test/scala/SettingsExample.scala @@ -32,7 +32,6 @@ object SettingsExample extends Init[Scope] { object SettingsUsage { import SettingsExample._ - import Types._ // Define some keys val a = AttributeKey[Int]("a") diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala b/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala index a345099fd..c05a7427d 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala @@ -5,9 +5,8 @@ package sbt.internal.util import jline.console.ConsoleReader import jline.console.history.{ FileHistory, MemoryHistory } -import java.io.{ File, InputStream, PrintWriter, FileInputStream, FileDescriptor, FilterInputStream } +import java.io.{ File, InputStream, FileInputStream, FileDescriptor, FilterInputStream } import complete.Parser -import java.util.concurrent.atomic.AtomicBoolean import scala.concurrent.duration.Duration import scala.annotation.tailrec diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/complete/EditDistance.scala b/internal/util-complete/src/main/scala/sbt/internal/util/complete/EditDistance.scala index 8cb617348..79f488554 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/complete/EditDistance.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/complete/EditDistance.scala @@ -23,7 +23,6 @@ object EditDistance { for (i <- 1 to n; s_i = s(i - 1); j <- 1 to m) { val t_j = t(j - 1) val cost = if (s_i == t_j) matchCost else if (lower(s_i) == lower(t_j)) caseCost else subCost - val tcost = if (s_i == t_j) matchCost else transposeCost val c1 = d(i - 1)(j) + deleteCost val c2 = d(i)(j - 1) + insertCost @@ -39,4 +38,4 @@ object EditDistance { d(n)(m) } -} \ No newline at end of file +} diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/complete/HistoryCommands.scala b/internal/util-complete/src/main/scala/sbt/internal/util/complete/HistoryCommands.scala index 350a36610..f18f1619f 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/complete/HistoryCommands.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/complete/HistoryCommands.scala @@ -4,7 +4,6 @@ package sbt.internal.util package complete -import java.io.File import sbt.io.IO object HistoryCommands { diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/complete/JLineCompletion.scala b/internal/util-complete/src/main/scala/sbt/internal/util/complete/JLineCompletion.scala index e098f59f6..0b8b50502 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/complete/JLineCompletion.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/complete/JLineCompletion.scala @@ -5,7 +5,7 @@ package sbt.internal.util package complete import jline.console.ConsoleReader -import jline.console.completer.{ CandidateListCompletionHandler, Completer, CompletionHandler } +import jline.console.completer.{ Completer, CompletionHandler } import scala.annotation.tailrec import collection.JavaConversions diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleOut.scala b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleOut.scala index cffec8781..30da238da 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleOut.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleOut.scala @@ -1,6 +1,5 @@ package sbt.internal.util -import sbt.util._ import java.io.{ BufferedWriter, PrintStream, PrintWriter } sealed trait ConsoleOut { diff --git a/internal/util-logging/src/test/scala/LogWriterTest.scala b/internal/util-logging/src/test/scala/LogWriterTest.scala index 4b1aace56..f00663b4b 100644 --- a/internal/util-logging/src/test/scala/LogWriterTest.scala +++ b/internal/util-logging/src/test/scala/LogWriterTest.scala @@ -5,7 +5,7 @@ package sbt.internal.util import sbt.util._ import org.scalacheck._ -import Arbitrary.{ arbitrary => arb, _ } +import Arbitrary._ import Gen.{ listOfN, oneOf } import Prop._ diff --git a/internal/util-scripted/src/main/scala/sbt/internal/scripted/ScriptedTests.scala b/internal/util-scripted/src/main/scala/sbt/internal/scripted/ScriptedTests.scala index 9575f2f6c..197a58403 100644 --- a/internal/util-scripted/src/main/scala/sbt/internal/scripted/ScriptedTests.scala +++ b/internal/util-scripted/src/main/scala/sbt/internal/scripted/ScriptedTests.scala @@ -6,7 +6,7 @@ import java.io.File import sbt.util.Logger import sbt.internal.util.{ ConsoleLogger, BufferedLogger, FullLogger } import sbt.io.IO.wrapNull -import sbt.io.{ DirectoryFilter, HiddenFileFilter, Path, GlobFilter } +import sbt.io.{ DirectoryFilter, HiddenFileFilter } import sbt.io.syntax._ import sbt.internal.io.Resources @@ -49,9 +49,6 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, handl def scriptedTest(group: String, name: String, log: Logger): Seq[() => Option[String]] = scriptedTest(group, name, { _ => () }, log) def scriptedTest(group: String, name: String, prescripted: File => Unit, log: Logger): Seq[() => Option[String]] = { - import Path._ - import GlobFilter._ - var failed = false for (groupDir <- (resourceBaseDirectory * group).get; nme <- (groupDir * name).get) yield { val g = groupDir.getName val n = nme.getName @@ -173,4 +170,4 @@ final class ListTests(baseDirectory: File, accept: ScriptedTest => Boolean, log: class PendingTestSuccessException(label: String) extends Exception { override def getMessage: String = s"The pending test $label succeeded. Mark this test as passing to remove this failure." -} \ No newline at end of file +} diff --git a/internal/util-scripted/src/main/scala/sbt/internal/scripted/TestScriptParser.scala b/internal/util-scripted/src/main/scala/sbt/internal/scripted/TestScriptParser.scala index 2e8b7f7f6..74f96eb81 100644 --- a/internal/util-scripted/src/main/scala/sbt/internal/scripted/TestScriptParser.scala +++ b/internal/util-scripted/src/main/scala/sbt/internal/scripted/TestScriptParser.scala @@ -5,7 +5,7 @@ package sbt package internal package scripted -import java.io.{ BufferedReader, File, InputStreamReader } +import java.io.File import scala.util.parsing.combinator._ import scala.util.parsing.input.Positional import Character.isWhitespace @@ -80,4 +80,4 @@ class TestScriptParser(handlers: Map[Char, StatementHandler]) extends RegexParse ((newline | err("expected start character " + handlers.keys.mkString("(", "", ")"))) ~> failure("end of input")) def newline = """\s*([\n\r]|$)""".r -} \ No newline at end of file +} diff --git a/internal/util-tracking/src/main/scala/sbt/internal/util/Tracked.scala b/internal/util-tracking/src/main/scala/sbt/internal/util/Tracked.scala index 28ee9c21e..51e70a8a5 100644 --- a/internal/util-tracking/src/main/scala/sbt/internal/util/Tracked.scala +++ b/internal/util-tracking/src/main/scala/sbt/internal/util/Tracked.scala @@ -8,9 +8,8 @@ import CacheIO.{ fromFile, toFile } import sbinary.Format import scala.pickling.PicklingException import scala.reflect.Manifest -import scala.collection.mutable import sbt.io.IO.{ delete, read, write } -import sbt.io.{ IO, Path } +import sbt.io.IO import sbt.io.Using import sbt.io.syntax._ import sbt.serialization._ @@ -257,7 +256,6 @@ object FileFunction { def cached(cacheBaseDirectory: File)(inStyle: FilesInfo.Style, outStyle: FilesInfo.Style)(action: UpdateFunction): Set[File] => Set[File] = { - import Path._ lazy val inCache = Difference.inputs(cacheBaseDirectory / "in-cache", inStyle) lazy val outCache = Difference.outputs(cacheBaseDirectory / "out-cache", outStyle) inputs =>