From 5f2e56a5a8ed62d8601605ea37111392356b651d Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Sun, 19 Jun 2016 11:14:12 +0100 Subject: [PATCH 1/4] Fix compilation warnings, migrate to blackbox.Context --- .../src/test/scala/sbt/complete/FileExamplesTest.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/util-complete/src/test/scala/sbt/complete/FileExamplesTest.scala b/internal/util-complete/src/test/scala/sbt/complete/FileExamplesTest.scala index 2af9388a7..9cb416840 100644 --- a/internal/util-complete/src/test/scala/sbt/complete/FileExamplesTest.scala +++ b/internal/util-complete/src/test/scala/sbt/complete/FileExamplesTest.scala @@ -54,6 +54,7 @@ class FileExamplesTest extends UnitSpec { } } + // TODO: Remove DelayedInit - https://github.com/scala/scala/releases/tag/v2.11.0-RC1 class DirectoryStructure(withCompletionPrefix: String = "") extends DelayedInit { var fileExamples: FileExamples = _ var baseDir: File = _ From 8cc4a54c40eec7f4ee5907cc970b9c8a6dcc26ce Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Sun, 19 Jun 2016 11:42:31 +0100 Subject: [PATCH 2/4] Add -Ywarn-unused & -Ywarn-unused-import, & fix warnings --- .../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 +- 10 files changed, 5 insertions(+), 20 deletions(-) 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 From c4e6caf0ed2787c2b6e2f5f2a4d983755b545cc9 Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Sun, 19 Jun 2016 21:21:08 +0100 Subject: [PATCH 3/4] Remove Attribute#rawLabel --- .../src/main/scala/sbt/internal/util/Attributes.scala | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/internal/util-collection/src/main/scala/sbt/internal/util/Attributes.scala b/internal/util-collection/src/main/scala/sbt/internal/util/Attributes.scala index 25cf298d7..33591506c 100644 --- a/internal/util-collection/src/main/scala/sbt/internal/util/Attributes.scala +++ b/internal/util-collection/src/main/scala/sbt/internal/util/Attributes.scala @@ -19,9 +19,6 @@ sealed trait AttributeKey[T] { /** The runtime evidence for `T` */ def manifest: Manifest[T] - @deprecated("Should only be used for compatibility during the transition from hyphenated labels to camelCase labels.", "0.13.0") - def rawLabel: String - /** The label is the identifier for the key and is camelCase by convention. */ def label: String @@ -73,7 +70,6 @@ object AttributeKey { private[this] def make[T](name: String, description0: Option[String], extend0: Seq[AttributeKey[_]], rank0: Int)(implicit mf: Manifest[T]): AttributeKey[T] = new SharedAttributeKey[T] { def manifest = mf - def rawLabel = name val label = Util.hyphenToCamel(name) def description = description0 def extend = extend0 @@ -81,7 +77,6 @@ object AttributeKey { } private[sbt] def local[T](implicit mf: Manifest[T]): AttributeKey[T] = new AttributeKey[T] { def manifest = mf - def rawLabel = LocalLabel def label = LocalLabel def description = None def extend = Nil @@ -207,4 +202,4 @@ object Attributed { /** Associates an empty metadata map with `data`. */ def blank[T](data: T): Attributed[T] = Attributed(data)(AttributeMap.empty) -} \ No newline at end of file +} From 84af84c3017c722c6ba75a512eeada76b7504968 Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Sun, 19 Jun 2016 23:16:59 +0100 Subject: [PATCH 4/4] Un-deprecate now-private methods --- .../src/main/scala/sbt/internal/util/Settings.scala | 3 --- 1 file changed, 3 deletions(-) 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 3bee6fb9c..ed23e377a 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 @@ -452,9 +452,7 @@ trait Init[Scope] { def settings = this :: Nil def definitive: Boolean = !init.dependencies.contains(key) def dependencies: Seq[ScopedKey[_]] = remove(init.dependencies, key) - @deprecated("Will be made private.", "0.13.2") def mapReferenced(g: MapScoped): Setting[T] = make(key, init mapReferenced g, pos) - @deprecated("Will be made private.", "0.13.2") def validateReferenced(g: ValidateRef): Either[Seq[Undefined], Setting[T]] = (init validateReferenced g).right.map(newI => make(key, newI, pos)) private[sbt] def validateKeyReferenced(g: ValidateKeyRef): Either[Seq[Undefined], Setting[T]] = @@ -462,7 +460,6 @@ trait Init[Scope] { def mapKey(g: MapScoped): Setting[T] = make(g(key), init, pos) def mapInit(f: (ScopedKey[T], T) => T): Setting[T] = make(key, init(t => f(key, t)), pos) - @deprecated("Will be made private.", "0.13.2") def mapConstant(g: MapConstant): Setting[T] = make(key, init mapConstant g, pos) def withPos(pos: SourcePosition) = make(key, init, pos) def positionString: Option[String] = pos match {