From ab2dfc7ec5c8db5a3d8239898a6c3d60dede88d9 Mon Sep 17 00:00:00 2001 From: Antonio Cunei Date: Tue, 14 Nov 2017 18:54:27 +0100 Subject: [PATCH 1/8] Restore test run/error This reverts commit 4ac231dd49f8884e0eac057639c2c60eef0342d2. --- sbt/src/sbt-test/run/error/test | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sbt/src/sbt-test/run/error/test b/sbt/src/sbt-test/run/error/test index a603016e6..d3599f40d 100644 --- a/sbt/src/sbt-test/run/error/test +++ b/sbt/src/sbt-test/run/error/test @@ -13,7 +13,6 @@ $ copy-file changes/ThreadRunError.scala src/main/scala/Run.scala $ copy-file changes/RunExplicitSuccess.scala src/main/scala/Run.scala > run -# https://github.com/sbt/sbt/issues/3543 -# # explicitly calling System.exit(1) should fail the 'run' task -# $ copy-file changes/RunExplicitFailure.scala src/main/scala/Run.scala -# -> run +# explicitly calling System.exit(1) should fail the 'run' task +$ copy-file changes/RunExplicitFailure.scala src/main/scala/Run.scala +-> run \ No newline at end of file From 699b53262a627e809956af3c9e025c10d3930eac Mon Sep 17 00:00:00 2001 From: Antonio Cunei Date: Fri, 1 Dec 2017 05:10:31 +0100 Subject: [PATCH 2/8] Convert lastModified() to sbt.io.Milli.getModifiedTime(), more precise --- main-actions/src/main/scala/sbt/compiler/Eval.scala | 4 +++- main/src/main/scala/sbt/Defaults.scala | 3 ++- main/src/main/scala/sbt/internal/LibraryManagement.scala | 3 ++- project/SiteMap.scala | 2 ++ project/Util.scala | 2 ++ 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/main-actions/src/main/scala/sbt/compiler/Eval.scala b/main-actions/src/main/scala/sbt/compiler/Eval.scala index 3bd69b09a..829a8c777 100644 --- a/main-actions/src/main/scala/sbt/compiler/Eval.scala +++ b/main-actions/src/main/scala/sbt/compiler/Eval.scala @@ -21,6 +21,7 @@ import java.net.URLClassLoader import Eval.{ getModule, getValue, WrapValName } import sbt.io.{ DirectoryFilter, FileFilter, GlobFilter, Hash, IO, Path } +import sbt.io.Milli.getModifiedTime // TODO: provide a way to cleanup backing directory @@ -485,7 +486,8 @@ private[sbt] object Eval { def filesModifiedBytes(fs: Array[File]): Array[Byte] = if (fs eq null) filesModifiedBytes(Array[File]()) else seqBytes(fs)(fileModifiedBytes) def fileModifiedBytes(f: File): Array[Byte] = - (if (f.isDirectory) filesModifiedBytes(f listFiles classDirFilter) else bytes(f.lastModified)) ++ + (if (f.isDirectory) filesModifiedBytes(f listFiles classDirFilter) + else bytes(getModifiedTime(f))) ++ bytes(f.getAbsolutePath) def fileExistsBytes(f: File): Array[Byte] = bytes(f.exists) ++ diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 1f2dcfd3a..88fbdcca0 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -47,6 +47,7 @@ import sbt.io.{ DirectoryFilter, Hash }, Path._ +import sbt.io.Milli.getModifiedTime import sbt.librarymanagement.Artifact.{ DocClassifier, SourceClassifier } import sbt.librarymanagement.Configurations.{ Compile, @@ -2315,7 +2316,7 @@ object Classpaths { case Some(period) => val fullUpdateOutput = cacheDirectory / "out" val now = System.currentTimeMillis - val diff = now - fullUpdateOutput.lastModified() + val diff = now - getModifiedTime(fullUpdateOutput) val elapsedDuration = new FiniteDuration(diff, TimeUnit.MILLISECONDS) fullUpdateOutput.exists() && elapsedDuration > period } diff --git a/main/src/main/scala/sbt/internal/LibraryManagement.scala b/main/src/main/scala/sbt/internal/LibraryManagement.scala index a245344dc..a594d0439 100644 --- a/main/src/main/scala/sbt/internal/LibraryManagement.scala +++ b/main/src/main/scala/sbt/internal/LibraryManagement.scala @@ -13,6 +13,7 @@ import sbt.internal.librarymanagement._ import sbt.librarymanagement._ import sbt.librarymanagement.syntax._ import sbt.util.{ CacheStore, CacheStoreFactory, Logger, Tracked } +import sbt.io.Milli.getModifiedTime private[sbt] object LibraryManagement { @@ -126,7 +127,7 @@ private[sbt] object LibraryManagement { } private[this] def fileUptodate(file: File, stamps: Map[File, Long]): Boolean = - stamps.get(file).forall(_ == file.lastModified) + stamps.get(file).forall(_ == getModifiedTime(file)) private[sbt] def transitiveScratch( lm: DependencyResolution, diff --git a/project/SiteMap.scala b/project/SiteMap.scala index ed1f5239e..2cfb5d8ea 100644 --- a/project/SiteMap.scala +++ b/project/SiteMap.scala @@ -68,6 +68,8 @@ object SiteMap { // generates a string suitable for a sitemap file representing the last modified time of the given File private[this] def lastModifiedString(f: File): String = { val formatter = new java.text.SimpleDateFormat("yyyy-MM-dd") + // TODO: replace lastModified() with sbt.io.Milli.getModifiedTime(), once the build + // has been upgraded to a version of sbt that includes sbt.io.Milli. formatter.format(new java.util.Date(f.lastModified)) } // writes the provided XML node to `output` and then gzips it to `gzipped` if `gzip` is true diff --git a/project/Util.scala b/project/Util.scala index 89556cd2e..0b87b02db 100644 --- a/project/Util.scala +++ b/project/Util.scala @@ -105,6 +105,8 @@ object Util { val timestamp = formatter.format(new Date) val content = versionLine(version) + "\ntimestamp=" + timestamp val f = dir / "xsbt.version.properties" + // TODO: replace lastModified() with sbt.io.Milli.getModifiedTime(), once the build + // has been upgraded to a version of sbt that includes sbt.io.Milli. if (!f.exists || f.lastModified < lastCompilationTime(analysis) || !containsVersion(f, version)) { s.log.info("Writing version information to " + f + " :\n" + content) IO.write(f, content) From 8c7b781d3f0d41e373c13f69c7086716fc3b085d Mon Sep 17 00:00:00 2001 From: Antonio Cunei Date: Mon, 4 Dec 2017 22:25:55 +0100 Subject: [PATCH 3/8] Moved Milli._ to IO. --- main-actions/src/main/scala/sbt/compiler/Eval.scala | 2 +- main/src/main/scala/sbt/Defaults.scala | 2 +- main/src/main/scala/sbt/internal/LibraryManagement.scala | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main-actions/src/main/scala/sbt/compiler/Eval.scala b/main-actions/src/main/scala/sbt/compiler/Eval.scala index 829a8c777..5620306e3 100644 --- a/main-actions/src/main/scala/sbt/compiler/Eval.scala +++ b/main-actions/src/main/scala/sbt/compiler/Eval.scala @@ -21,7 +21,7 @@ import java.net.URLClassLoader import Eval.{ getModule, getValue, WrapValName } import sbt.io.{ DirectoryFilter, FileFilter, GlobFilter, Hash, IO, Path } -import sbt.io.Milli.getModifiedTime +import sbt.io.IO.getModifiedTime // TODO: provide a way to cleanup backing directory diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 88fbdcca0..abe66d6be 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -47,7 +47,7 @@ import sbt.io.{ DirectoryFilter, Hash }, Path._ -import sbt.io.Milli.getModifiedTime +import sbt.io.IO.getModifiedTime import sbt.librarymanagement.Artifact.{ DocClassifier, SourceClassifier } import sbt.librarymanagement.Configurations.{ Compile, diff --git a/main/src/main/scala/sbt/internal/LibraryManagement.scala b/main/src/main/scala/sbt/internal/LibraryManagement.scala index a594d0439..2849ce17b 100644 --- a/main/src/main/scala/sbt/internal/LibraryManagement.scala +++ b/main/src/main/scala/sbt/internal/LibraryManagement.scala @@ -13,7 +13,7 @@ import sbt.internal.librarymanagement._ import sbt.librarymanagement._ import sbt.librarymanagement.syntax._ import sbt.util.{ CacheStore, CacheStoreFactory, Logger, Tracked } -import sbt.io.Milli.getModifiedTime +import sbt.io.IO.getModifiedTime private[sbt] object LibraryManagement { From 2129f8ceb550fb26746f8a9121de6214b1ecb420 Mon Sep 17 00:00:00 2001 From: Antonio Cunei Date: Tue, 5 Dec 2017 02:44:46 +0100 Subject: [PATCH 4/8] Use IO.copyModifiedTime() in place of IO.copyLastModified() --- main-actions/src/main/scala/sbt/Sync.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-actions/src/main/scala/sbt/Sync.scala b/main-actions/src/main/scala/sbt/Sync.scala index ec2eb73e3..17f169e47 100644 --- a/main-actions/src/main/scala/sbt/Sync.scala +++ b/main-actions/src/main/scala/sbt/Sync.scala @@ -66,7 +66,7 @@ object Sync { else if (!target.exists) // we don't want to update the last modified time of an existing directory { IO.createDirectory(target) - IO.copyLastModified(source, target) + IO.copyModifiedTime(source, target) } def noDuplicateTargets(relation: Relation[File, File]): Unit = { From 295bcff85156921c8eea2904b1d9f883d41f6d1d Mon Sep 17 00:00:00 2001 From: Antonio Cunei Date: Thu, 7 Dec 2017 01:50:42 +0100 Subject: [PATCH 5/8] Hash calculation may throw exception w/ getModifiedTime(); fix In Eval there is a calculation of hashes by scanning the elements of classpath, and getting the last modification time of each directory. When lastModified() was in use, non-existent elements would return 0L, but getModifiedTime() will throw an exception instead (like getLastModifiedTime(), incidentally). So, we catch the FileNotFoundException and return 0L now as well. --- main-actions/src/main/scala/sbt/compiler/Eval.scala | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/main-actions/src/main/scala/sbt/compiler/Eval.scala b/main-actions/src/main/scala/sbt/compiler/Eval.scala index 5620306e3..a628e5959 100644 --- a/main-actions/src/main/scala/sbt/compiler/Eval.scala +++ b/main-actions/src/main/scala/sbt/compiler/Eval.scala @@ -487,8 +487,12 @@ private[sbt] object Eval { if (fs eq null) filesModifiedBytes(Array[File]()) else seqBytes(fs)(fileModifiedBytes) def fileModifiedBytes(f: File): Array[Byte] = (if (f.isDirectory) filesModifiedBytes(f listFiles classDirFilter) - else bytes(getModifiedTime(f))) ++ - bytes(f.getAbsolutePath) + else + bytes(try { + getModifiedTime(f) + } catch { + case _: java.io.FileNotFoundException => 0L + })) ++ bytes(f.getAbsolutePath) def fileExistsBytes(f: File): Array[Byte] = bytes(f.exists) ++ bytes(f.getAbsolutePath) From 46d6b01f79e5c1e2b1d295ec53a040375fb1d753 Mon Sep 17 00:00:00 2001 From: Antonio Cunei Date: Wed, 13 Dec 2017 15:09:52 +0100 Subject: [PATCH 6/8] Use copyLastModified() in Sync.scala It turns out the code in Sync.scala activiely tries to transfer the invalid modifed time of non-existent files in the source directory over the time of the target file, which may or may not exist. In case it exists, the modification time is set to January 1, 1970. This is arguably a bug in Sync, which should be adjusted to better handle mappings with source files that do not exist. For now, however, we preserve the current behavior, using the deprecated copyLastModified(). --- main-actions/src/main/scala/sbt/Sync.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-actions/src/main/scala/sbt/Sync.scala b/main-actions/src/main/scala/sbt/Sync.scala index 17f169e47..ec2eb73e3 100644 --- a/main-actions/src/main/scala/sbt/Sync.scala +++ b/main-actions/src/main/scala/sbt/Sync.scala @@ -66,7 +66,7 @@ object Sync { else if (!target.exists) // we don't want to update the last modified time of an existing directory { IO.createDirectory(target) - IO.copyModifiedTime(source, target) + IO.copyLastModified(source, target) } def noDuplicateTargets(relation: Relation[File, File]): Unit = { From ae99922101560c30e45af715bdfd2e63b4dbb3dd Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Wed, 13 Dec 2017 16:54:21 +0000 Subject: [PATCH 7/8] Use IO.getModified over importing the method --- main-actions/src/main/scala/sbt/compiler/Eval.scala | 8 ++------ main/src/main/scala/sbt/Defaults.scala | 3 +-- main/src/main/scala/sbt/internal/LibraryManagement.scala | 4 ++-- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/main-actions/src/main/scala/sbt/compiler/Eval.scala b/main-actions/src/main/scala/sbt/compiler/Eval.scala index a628e5959..f756d92b8 100644 --- a/main-actions/src/main/scala/sbt/compiler/Eval.scala +++ b/main-actions/src/main/scala/sbt/compiler/Eval.scala @@ -21,7 +21,6 @@ import java.net.URLClassLoader import Eval.{ getModule, getValue, WrapValName } import sbt.io.{ DirectoryFilter, FileFilter, GlobFilter, Hash, IO, Path } -import sbt.io.IO.getModifiedTime // TODO: provide a way to cleanup backing directory @@ -488,11 +487,8 @@ private[sbt] object Eval { def fileModifiedBytes(f: File): Array[Byte] = (if (f.isDirectory) filesModifiedBytes(f listFiles classDirFilter) else - bytes(try { - getModifiedTime(f) - } catch { - case _: java.io.FileNotFoundException => 0L - })) ++ bytes(f.getAbsolutePath) + bytes(try IO.getModifiedTime(f) catch { case _: java.io.FileNotFoundException => 0L })) ++ + bytes(f.getAbsolutePath) def fileExistsBytes(f: File): Array[Byte] = bytes(f.exists) ++ bytes(f.getAbsolutePath) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index abe66d6be..b006c115d 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -47,7 +47,6 @@ import sbt.io.{ DirectoryFilter, Hash }, Path._ -import sbt.io.IO.getModifiedTime import sbt.librarymanagement.Artifact.{ DocClassifier, SourceClassifier } import sbt.librarymanagement.Configurations.{ Compile, @@ -2316,7 +2315,7 @@ object Classpaths { case Some(period) => val fullUpdateOutput = cacheDirectory / "out" val now = System.currentTimeMillis - val diff = now - getModifiedTime(fullUpdateOutput) + val diff = now - IO.getModifiedTime(fullUpdateOutput) val elapsedDuration = new FiniteDuration(diff, TimeUnit.MILLISECONDS) fullUpdateOutput.exists() && elapsedDuration > period } diff --git a/main/src/main/scala/sbt/internal/LibraryManagement.scala b/main/src/main/scala/sbt/internal/LibraryManagement.scala index 2849ce17b..fc832ffff 100644 --- a/main/src/main/scala/sbt/internal/LibraryManagement.scala +++ b/main/src/main/scala/sbt/internal/LibraryManagement.scala @@ -13,7 +13,7 @@ import sbt.internal.librarymanagement._ import sbt.librarymanagement._ import sbt.librarymanagement.syntax._ import sbt.util.{ CacheStore, CacheStoreFactory, Logger, Tracked } -import sbt.io.IO.getModifiedTime +import sbt.io.IO private[sbt] object LibraryManagement { @@ -127,7 +127,7 @@ private[sbt] object LibraryManagement { } private[this] def fileUptodate(file: File, stamps: Map[File, Long]): Boolean = - stamps.get(file).forall(_ == getModifiedTime(file)) + stamps.get(file).forall(_ == IO.getModifiedTime(file)) private[sbt] def transitiveScratch( lm: DependencyResolution, From 40b86ae41265c49e6e52fa2ac043413be82bd0cc Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 16 Dec 2017 01:41:13 -0500 Subject: [PATCH 8/8] bump modules and plugins --- main-actions/src/main/scala/sbt/compiler/Eval.scala | 6 ++++-- project/Dependencies.scala | 8 ++++---- project/plugins.sbt | 11 ++--------- .../sbt/internal/langserver/ClientCapabilities.scala | 2 +- .../sbt/protocol/CommandMessage.scala | 2 +- .../contraband-scala/sbt/protocol/EventMessage.scala | 2 +- .../sbt/protocol/SettingQueryResponse.scala | 2 +- .../sbt/protocol/testing/TestInitEvent.scala | 2 +- .../sbt/protocol/testing/TestMessage.scala | 2 +- 9 files changed, 16 insertions(+), 21 deletions(-) diff --git a/main-actions/src/main/scala/sbt/compiler/Eval.scala b/main-actions/src/main/scala/sbt/compiler/Eval.scala index f756d92b8..a075f61a8 100644 --- a/main-actions/src/main/scala/sbt/compiler/Eval.scala +++ b/main-actions/src/main/scala/sbt/compiler/Eval.scala @@ -487,8 +487,10 @@ private[sbt] object Eval { def fileModifiedBytes(f: File): Array[Byte] = (if (f.isDirectory) filesModifiedBytes(f listFiles classDirFilter) else - bytes(try IO.getModifiedTime(f) catch { case _: java.io.FileNotFoundException => 0L })) ++ - bytes(f.getAbsolutePath) + bytes( + try IO.getModifiedTime(f) + catch { case _: java.io.FileNotFoundException => 0L })) ++ + bytes(f.getAbsolutePath) def fileExistsBytes(f: File): Array[Byte] = bytes(f.exists) ++ bytes(f.getAbsolutePath) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index a628f6aaf..f8e14429f 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -12,10 +12,10 @@ object Dependencies { val baseScalaVersion = scala212 // sbt modules - private val ioVersion = "1.1.1" - private val utilVersion = "1.1.0" - private val lmVersion = "1.1.0" - private val zincVersion = "1.1.0-RC1" + private val ioVersion = "1.1.2" + private val utilVersion = "1.1.1" + private val lmVersion = "1.1.1" + private val zincVersion = "1.1.0-RC3" private val sbtIO = "org.scala-sbt" %% "io" % ioVersion diff --git a/project/plugins.sbt b/project/plugins.sbt index 4cfe0e774..66097a8b9 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,15 +1,8 @@ scalaVersion := "2.12.3" scalacOptions ++= Seq("-feature", "-language:postfixOps") -addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.1.17") -// addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.6.0") -// addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.9.2") -// addSbtPlugin("com.typesafe.sbt" % "sbt-javaversioncheck" % "0.1.0") -// addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.2.0") - -addSbtPlugin("org.foundweekends" % "sbt-bintray" % "0.5.1") -addSbtPlugin("org.scala-sbt" % "sbt-contraband" % "0.3.1") -addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0-M1") +addSbtPlugin("org.scala-sbt" % "sbt-houserules" % "0.3.4") +addSbtPlugin("org.scala-sbt" % "sbt-contraband" % "0.3.2") addSbtPlugin("com.lucidchart" % "sbt-scalafmt" % "1.14") addSbtPlugin("de.heikoseeberger" % "sbt-header" % "3.0.2") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.7.0") diff --git a/protocol/src/main/contraband-scala/sbt/internal/langserver/ClientCapabilities.scala b/protocol/src/main/contraband-scala/sbt/internal/langserver/ClientCapabilities.scala index 7bbfe152a..8e046ede9 100644 --- a/protocol/src/main/contraband-scala/sbt/internal/langserver/ClientCapabilities.scala +++ b/protocol/src/main/contraband-scala/sbt/internal/langserver/ClientCapabilities.scala @@ -9,7 +9,7 @@ final class ClientCapabilities private () extends Serializable { override def equals(o: Any): Boolean = o match { - case x: ClientCapabilities => true + case _: ClientCapabilities => true case _ => false } override def hashCode: Int = { diff --git a/protocol/src/main/contraband-scala/sbt/protocol/CommandMessage.scala b/protocol/src/main/contraband-scala/sbt/protocol/CommandMessage.scala index 9292dbd16..79b15d024 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/CommandMessage.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/CommandMessage.scala @@ -11,7 +11,7 @@ abstract class CommandMessage() extends Serializable { override def equals(o: Any): Boolean = o match { - case x: CommandMessage => true + case _: CommandMessage => true case _ => false } override def hashCode: Int = { diff --git a/protocol/src/main/contraband-scala/sbt/protocol/EventMessage.scala b/protocol/src/main/contraband-scala/sbt/protocol/EventMessage.scala index 6e934413e..9e4435096 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/EventMessage.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/EventMessage.scala @@ -11,7 +11,7 @@ abstract class EventMessage() extends Serializable { override def equals(o: Any): Boolean = o match { - case x: EventMessage => true + case _: EventMessage => true case _ => false } override def hashCode: Int = { diff --git a/protocol/src/main/contraband-scala/sbt/protocol/SettingQueryResponse.scala b/protocol/src/main/contraband-scala/sbt/protocol/SettingQueryResponse.scala index a63a99897..f8fe40388 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/SettingQueryResponse.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/SettingQueryResponse.scala @@ -10,7 +10,7 @@ abstract class SettingQueryResponse() extends sbt.protocol.EventMessage() with S override def equals(o: Any): Boolean = o match { - case x: SettingQueryResponse => true + case _: SettingQueryResponse => true case _ => false } override def hashCode: Int = { diff --git a/testing/src/main/contraband-scala/sbt/protocol/testing/TestInitEvent.scala b/testing/src/main/contraband-scala/sbt/protocol/testing/TestInitEvent.scala index 978524687..b6178c40f 100644 --- a/testing/src/main/contraband-scala/sbt/protocol/testing/TestInitEvent.scala +++ b/testing/src/main/contraband-scala/sbt/protocol/testing/TestInitEvent.scala @@ -10,7 +10,7 @@ final class TestInitEvent private () extends sbt.protocol.testing.TestMessage() override def equals(o: Any): Boolean = o match { - case x: TestInitEvent => true + case _: TestInitEvent => true case _ => false } override def hashCode: Int = { diff --git a/testing/src/main/contraband-scala/sbt/protocol/testing/TestMessage.scala b/testing/src/main/contraband-scala/sbt/protocol/testing/TestMessage.scala index 406807c6f..3ef0f0a76 100644 --- a/testing/src/main/contraband-scala/sbt/protocol/testing/TestMessage.scala +++ b/testing/src/main/contraband-scala/sbt/protocol/testing/TestMessage.scala @@ -11,7 +11,7 @@ abstract class TestMessage() extends Serializable { override def equals(o: Any): Boolean = o match { - case x: TestMessage => true + case _: TestMessage => true case _ => false } override def hashCode: Int = {