From d74e0534a427414f74a9770fc5a44cbb1e9e7560 Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 14:44:18 -0700 Subject: [PATCH 1/9] Bump Scala 3 to 3.3.4 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index cd886319e..34f87b675 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -6,7 +6,7 @@ object Dependencies { // WARNING: Please Scala update versions in PluginCross.scala too val scala212 = "2.12.20" val scala213 = "2.13.12" - val scala3 = "3.3.1" + val scala3 = "3.3.4" val checkPluginCross = settingKey[Unit]("Make sure scalaVersion match up") val baseScalaVersion = scala3 def nightlyVersion: Option[String] = From ed23024c757e847190019bdcbe8f5ed966d300a0 Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:27:37 -0700 Subject: [PATCH 2/9] Try fix inode pattern match error --- .../src/main/scala/sbt/internal/util/INode.scala | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/util-collection/src/main/scala/sbt/internal/util/INode.scala b/util-collection/src/main/scala/sbt/internal/util/INode.scala index c870ea1ab..e89406697 100644 --- a/util-collection/src/main/scala/sbt/internal/util/INode.scala +++ b/util-collection/src/main/scala/sbt/internal/util/INode.scala @@ -42,10 +42,8 @@ abstract class EvaluateSettings[ScopeType]: case u: Uniform[s, A] => UniformNode(u.inputs.map(transform[s]), u.f) case a: Apply[k, A] => MixedNode[k, A](TupleMapExtension.transform(a.inputs)(transform), a.f) - case b: Bind[s, A] => BindNode[s, A](transform(b.in), x => transform(b.f(x))) - case v: Value[A] => constant(v.value) - case v: ValidationCapture[a] => strictConstant(v.key: A) - case t: TransformCapture => strictConstant(t.f: A) + case b: Bind[s, A] => BindNode[s, A](transform(b.in), x => transform(b.f(x))) + case v: Value[A] => constant(v.value) case o: Optional[s, A] => o.a match case None => constant(() => o.f(None)) From f87ffc8042367678adc348423f3d55b26b459382 Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:41:34 -0700 Subject: [PATCH 3/9] Fix CI compile errors --- internal/util-complete/src/test/scala/ParserTest.scala | 2 +- main-actions/src/main/scala/sbt/Pkg.scala | 1 - main-settings/src/test/scala/sbt/TupleSyntaxTest.scala | 1 - main-settings/src/test/scala/sbt/std/UsageTest.scala | 1 - 4 files changed, 1 insertion(+), 4 deletions(-) diff --git a/internal/util-complete/src/test/scala/ParserTest.scala b/internal/util-complete/src/test/scala/ParserTest.scala index 2db039b43..5aef1f089 100644 --- a/internal/util-complete/src/test/scala/ParserTest.scala +++ b/internal/util-complete/src/test/scala/ParserTest.scala @@ -18,7 +18,7 @@ object JLineTest { val four = token("color" ~> Space) ~> token(ID, "") val num = token(NatBasic) - val five = (num ~ token("+" | "-") ~ num) <~ token('=') flatMap { + val five = (num ~ token("+" | "-") ~ num) <~ token('=') collect { case a ~ "+" ~ b => token((a + b).toString) case a ~ "-" ~ b => token((a - b).toString) } diff --git a/main-actions/src/main/scala/sbt/Pkg.scala b/main-actions/src/main/scala/sbt/Pkg.scala index 0c4146abc..96564b8e4 100644 --- a/main-actions/src/main/scala/sbt/Pkg.scala +++ b/main-actions/src/main/scala/sbt/Pkg.scala @@ -22,7 +22,6 @@ import sjsonnew.{ LNil, Unbuilder, deserializationError, - flatUnionFormat4 } import sbt.util.Logger diff --git a/main-settings/src/test/scala/sbt/TupleSyntaxTest.scala b/main-settings/src/test/scala/sbt/TupleSyntaxTest.scala index ff727b92b..7b7d4e0d0 100644 --- a/main-settings/src/test/scala/sbt/TupleSyntaxTest.scala +++ b/main-settings/src/test/scala/sbt/TupleSyntaxTest.scala @@ -9,7 +9,6 @@ package sbt.test import sbt._ -import sbt.Def.Initialize object TupleSyntaxTest: def t1[A](a: SettingKey[A], b: TaskKey[A], c: Def.Initialize[A], d: Def.Initialize[Task[A]]) = { diff --git a/main-settings/src/test/scala/sbt/std/UsageTest.scala b/main-settings/src/test/scala/sbt/std/UsageTest.scala index 4aea6ccdc..b9a7ab6ca 100644 --- a/main-settings/src/test/scala/sbt/std/UsageTest.scala +++ b/main-settings/src/test/scala/sbt/std/UsageTest.scala @@ -32,7 +32,6 @@ end UseTask object Assign { import java.io.File - import sbt.std.FullInstance.given import Def.{ Initialize, inputKey, From 375e4f1d2ea3f17dd05318f876fe5e2c5b52910f Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:53:22 -0700 Subject: [PATCH 4/9] Fix bunch of unused imports --- main/src/main/scala/sbt/Main.scala | 3 --- main/src/main/scala/sbt/ScopeFilter.scala | 1 - main/src/main/scala/sbt/internal/Continuous.scala | 2 +- main/src/main/scala/sbt/internal/IncrementalTest.scala | 3 +-- main/src/main/scala/sbt/internal/LintUnused.scala | 2 +- main/src/main/scala/sbt/internal/Load.scala | 2 +- .../main/scala/sbt/internal/server/BuildServerProtocol.scala | 1 - main/src/main/scala/sbt/internal/server/NetworkChannel.scala | 1 - main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala | 1 - 9 files changed, 4 insertions(+), 12 deletions(-) diff --git a/main/src/main/scala/sbt/Main.scala b/main/src/main/scala/sbt/Main.scala index 488c2a7f0..f32e80764 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -16,12 +16,9 @@ import java.util.Properties import java.util.concurrent.ForkJoinPool import java.util.concurrent.atomic.AtomicBoolean -import sbt.BasicCommandStrings.{ JavaClient, Shell, Shutdown, TemplateCommand } import sbt.Project.LoadAction import sbt.ProjectExtra.* -import sbt.internal.EvalImports import sbt.internal.Aggregation.AnyKeys -import sbt.internal.CommandStrings.BootCommand import sbt.internal._ import sbt.internal.client.BspClient import sbt.internal.inc.ScalaInstance diff --git a/main/src/main/scala/sbt/ScopeFilter.scala b/main/src/main/scala/sbt/ScopeFilter.scala index c6d9a9756..08f78d390 100644 --- a/main/src/main/scala/sbt/ScopeFilter.scala +++ b/main/src/main/scala/sbt/ScopeFilter.scala @@ -13,7 +13,6 @@ import sbt.internal.util.{ AttributeKey, Dag } import sbt.librarymanagement.{ ConfigRef, Configuration } import sbt.internal.util.Types.const import Def.Initialize -import sbt.Project.inScope import java.net.URI sealed abstract class ScopeFilter { self => diff --git a/main/src/main/scala/sbt/internal/Continuous.scala b/main/src/main/scala/sbt/internal/Continuous.scala index bfd03bc91..fb0eecbe1 100644 --- a/main/src/main/scala/sbt/internal/Continuous.scala +++ b/main/src/main/scala/sbt/internal/Continuous.scala @@ -31,7 +31,7 @@ import sbt.internal.io.WatchState import sbt.internal.nio._ import sbt.internal.ui.UITask import sbt.internal.util.JoinThread._ -import sbt.internal.util.complete.DefaultParsers.{ Space, matched } +import sbt.internal.util.complete.DefaultParsers.Space import sbt.internal.util.complete.Parser._ import sbt.internal.util.complete.{ Parser, Parsers } import sbt.internal.util._ diff --git a/main/src/main/scala/sbt/internal/IncrementalTest.scala b/main/src/main/scala/sbt/internal/IncrementalTest.scala index 180333b20..a9735acbf 100644 --- a/main/src/main/scala/sbt/internal/IncrementalTest.scala +++ b/main/src/main/scala/sbt/internal/IncrementalTest.scala @@ -11,14 +11,13 @@ package internal import java.io.File import java.util.concurrent.ConcurrentHashMap -import Keys.{ test, fileConverter, fullClasspath, streams } +import Keys.{ fileConverter, fullClasspath, streams } import sbt.Def.Initialize import sbt.internal.inc.Analysis import sbt.internal.util.Attributed import sbt.internal.util.Types.const import sbt.io.{ GlobFilter, IO, NameFilter } import sbt.protocol.testing.TestResult -import sbt.SlashSyntax0.* import sbt.util.{ ActionCache, BuildWideCacheConfiguration, CacheLevelTag, Digest } import sbt.util.CacheImplicits.given import scala.collection.concurrent diff --git a/main/src/main/scala/sbt/internal/LintUnused.scala b/main/src/main/scala/sbt/internal/LintUnused.scala index 745b719d6..6671cd70d 100644 --- a/main/src/main/scala/sbt/internal/LintUnused.scala +++ b/main/src/main/scala/sbt/internal/LintUnused.scala @@ -10,7 +10,7 @@ package sbt package internal import Keys._ -import Def.{ Setting, ScopedKey } +import Def.{ ScopedKey } import sbt.internal.util.{ FilePosition, NoPosition, SourcePosition } import java.io.File import ProjectExtra.{ extract, scopedKeyData } diff --git a/main/src/main/scala/sbt/internal/Load.scala b/main/src/main/scala/sbt/internal/Load.scala index b9a66cdb6..c2b16d0b2 100755 --- a/main/src/main/scala/sbt/internal/Load.scala +++ b/main/src/main/scala/sbt/internal/Load.scala @@ -23,7 +23,7 @@ import sbt.internal.util.Attributed.data import sbt.internal.util.Types.const import sbt.internal.util.{ Attributed, Settings } import sbt.internal.server.BuildServerEvalReporter -import sbt.io.{ GlobFilter, IO, Path } +import sbt.io.{ GlobFilter, IO } import sbt.librarymanagement.ivy.{ InlineIvyConfiguration, IvyDependencyResolution, IvyPaths } import sbt.librarymanagement.{ Configuration, Configurations, Resolver } import sbt.nio.Settings diff --git a/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala b/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala index c43d6bc0b..ed9f338a4 100644 --- a/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala +++ b/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala @@ -15,7 +15,6 @@ import sbt.BuildExtra.* import sbt.BuildPaths.{ configurationSources, projectStandard } import sbt.Def._ import sbt.Keys._ -import sbt.Project._ import sbt.ProjectExtra.* import sbt.ScopeFilter.Make._ import sbt.Scoped.richTaskSeq diff --git a/main/src/main/scala/sbt/internal/server/NetworkChannel.scala b/main/src/main/scala/sbt/internal/server/NetworkChannel.scala index 6af553be7..d6abd1aec 100644 --- a/main/src/main/scala/sbt/internal/server/NetworkChannel.scala +++ b/main/src/main/scala/sbt/internal/server/NetworkChannel.scala @@ -562,7 +562,6 @@ final class NetworkChannel( override def shutdown(): Unit = { shutdown(true) } - import sjsonnew.BasicJsonProtocol.BooleanJsonFormat override def shutdown(logShutdown: Boolean): Unit = shutdown(logShutdown, remainingCommands = None) diff --git a/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala b/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala index d367cc57c..6d3bee3b3 100644 --- a/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala +++ b/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala @@ -13,7 +13,6 @@ import java.io.File import sbt.Def._ import sbt.Keys._ -import sbt.Project._ import sbt.ProjectExtra.* import sbt.internal.graph._ import sbt.internal.graph.backend.SbtUpdateReport From b1c4c09a7fc747d7a9c204f8e4a1a2435101e9a3 Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:12:11 -0700 Subject: [PATCH 5/9] Fix bunch more compiler errors --- internal/util-complete/src/test/scala/ParserTest.scala | 3 ++- main/src/main/scala/sbt/Main.scala | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/util-complete/src/test/scala/ParserTest.scala b/internal/util-complete/src/test/scala/ParserTest.scala index 5aef1f089..a3d490329 100644 --- a/internal/util-complete/src/test/scala/ParserTest.scala +++ b/internal/util-complete/src/test/scala/ParserTest.scala @@ -18,9 +18,10 @@ object JLineTest { val four = token("color" ~> Space) ~> token(ID, "") val num = token(NatBasic) - val five = (num ~ token("+" | "-") ~ num) <~ token('=') collect { + val five = (num ~ token("+" | "-") ~ num) <~ token('=') flatMap { case a ~ "+" ~ b => token((a + b).toString) case a ~ "-" ~ b => token((a - b).toString) + case _ => failure("Unexpected pattern") } val parsers = Map("1" -> one, "2" -> two, "3" -> three, "4" -> four, "5" -> five) diff --git a/main/src/main/scala/sbt/Main.scala b/main/src/main/scala/sbt/Main.scala index f32e80764..ac71342df 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -16,6 +16,7 @@ import java.util.Properties import java.util.concurrent.ForkJoinPool import java.util.concurrent.atomic.AtomicBoolean +import sbt.BasicCommandStrings.JavaClient import sbt.Project.LoadAction import sbt.ProjectExtra.* import sbt.internal.Aggregation.AnyKeys From cdab4c10be8e3f0453a376882e243e33bbd1434c Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:21:45 -0700 Subject: [PATCH 6/9] Scalafmt --- internal/util-complete/src/test/scala/ParserTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/util-complete/src/test/scala/ParserTest.scala b/internal/util-complete/src/test/scala/ParserTest.scala index a3d490329..2bc1688aa 100644 --- a/internal/util-complete/src/test/scala/ParserTest.scala +++ b/internal/util-complete/src/test/scala/ParserTest.scala @@ -21,7 +21,7 @@ object JLineTest { val five = (num ~ token("+" | "-") ~ num) <~ token('=') flatMap { case a ~ "+" ~ b => token((a + b).toString) case a ~ "-" ~ b => token((a - b).toString) - case _ => failure("Unexpected pattern") + case _ => failure("Unexpected pattern") } val parsers = Map("1" -> one, "2" -> two, "3" -> three, "4" -> four, "5" -> five) From a959acd2309dc3771e305b36929ce6896f9b6c9c Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:27:54 -0700 Subject: [PATCH 7/9] Fix more compile errors --- main/src/main/scala/sbt/Main.scala | 3 +-- main/src/main/scala/sbt/internal/LintUnused.scala | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/main/src/main/scala/sbt/Main.scala b/main/src/main/scala/sbt/Main.scala index ac71342df..7393a55b6 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -16,7 +16,6 @@ import java.util.Properties import java.util.concurrent.ForkJoinPool import java.util.concurrent.atomic.AtomicBoolean -import sbt.BasicCommandStrings.JavaClient import sbt.Project.LoadAction import sbt.ProjectExtra.* import sbt.internal.Aggregation.AnyKeys @@ -61,7 +60,7 @@ private[sbt] object xMain: private[sbt] def run(configuration: xsbti.AppConfiguration): xsbti.MainResult = boundary { try { - import BasicCommandStrings.{ DashDashClient, DashDashServer, runEarly } + import BasicCommandStrings.{ JavaClient, DashDashClient, DashDashServer, runEarly } import BasicCommands.early import BuiltinCommands.defaults import sbt.internal.CommandStrings.{ BootCommand, DefaultsCommand, InitCommand } diff --git a/main/src/main/scala/sbt/internal/LintUnused.scala b/main/src/main/scala/sbt/internal/LintUnused.scala index 6671cd70d..e78ec6854 100644 --- a/main/src/main/scala/sbt/internal/LintUnused.scala +++ b/main/src/main/scala/sbt/internal/LintUnused.scala @@ -10,7 +10,6 @@ package sbt package internal import Keys._ -import Def.{ ScopedKey } import sbt.internal.util.{ FilePosition, NoPosition, SourcePosition } import java.io.File import ProjectExtra.{ extract, scopedKeyData } From 32388ba171b9ae33827bf0e33defc76c6ce8453f Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 17:00:53 -0700 Subject: [PATCH 8/9] Suppress "Match case Unreachable Error" --- .../src/main/scala/sbt/internal/util/INode.scala | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/util-collection/src/main/scala/sbt/internal/util/INode.scala b/util-collection/src/main/scala/sbt/internal/util/INode.scala index e89406697..3ae954a43 100644 --- a/util-collection/src/main/scala/sbt/internal/util/INode.scala +++ b/util-collection/src/main/scala/sbt/internal/util/INode.scala @@ -9,8 +9,9 @@ package sbt.internal.util import java.lang.Runnable -import java.util.concurrent.{ atomic, Executor, LinkedBlockingQueue } +import java.util.concurrent.{ Executor, LinkedBlockingQueue, atomic } import atomic.{ AtomicBoolean, AtomicInteger } +import scala.annotation.nowarn enum EvaluationState: case New @@ -35,6 +36,7 @@ abstract class EvaluateSettings[ScopeType]: private def getStatic[A](key: ScopedKey[A]): INode[A] = static.get(key).getOrElse { sys.error("Illegal reference to key " + key) } + @nowarn private val transform: [A] => Initialize[A] => INode[A] = [A] => (fa: Initialize[A]) => fa match @@ -42,8 +44,10 @@ abstract class EvaluateSettings[ScopeType]: case u: Uniform[s, A] => UniformNode(u.inputs.map(transform[s]), u.f) case a: Apply[k, A] => MixedNode[k, A](TupleMapExtension.transform(a.inputs)(transform), a.f) - case b: Bind[s, A] => BindNode[s, A](transform(b.in), x => transform(b.f(x))) - case v: Value[A] => constant(v.value) + case b: Bind[s, A] => BindNode[s, A](transform(b.in), x => transform(b.f(x))) + case v: Value[A] => constant(v.value) + case v: ValidationCapture[a] => strictConstant(v.key: A) + case t: TransformCapture => strictConstant(t.f: A) case o: Optional[s, A] => o.a match case None => constant(() => o.f(None)) From 5a1c66b109b8a1fccde444691f5c851baac2d6d6 Mon Sep 17 00:00:00 2001 From: Friendseeker <66892505+Friendseeker@users.noreply.github.com> Date: Mon, 21 Oct 2024 17:13:09 -0700 Subject: [PATCH 9/9] Fix BuildServerTest --- server-test/src/test/scala/testpkg/BuildServerTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server-test/src/test/scala/testpkg/BuildServerTest.scala b/server-test/src/test/scala/testpkg/BuildServerTest.scala index c32b78939..7952e21b8 100644 --- a/server-test/src/test/scala/testpkg/BuildServerTest.scala +++ b/server-test/src/test/scala/testpkg/BuildServerTest.scala @@ -93,7 +93,7 @@ class BuildServerTest extends AbstractServerTest { "project/src/main/scala-3", s"project/src/main/scala-sbt-${TestProperties.version}", "project/src/main/scala/", - "target/out/jvm/scala-3.3.1/buildserver-build/src_managed/main" + "target/out/jvm/scala-3.3.4/buildserver-build/src_managed/main" ).map(rel => new File(svr.baseDirectory.getAbsoluteFile, rel).toURI).sorted assert(sources == expectedSources) }