Skip to content

Commit 06b59a6

Browse files
authored
Fix ultra-long invalid Scala version errors (#2724)
1 parent 0e0045c commit 06b59a6

File tree

5 files changed

+14
-13
lines changed

5 files changed

+14
-13
lines changed

modules/core/src/main/scala/scala/build/errors/InvalidBinaryScalaVersionError.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ package scala.build.errors
33
import scala.build.errors.ScalaVersionError.getTheGeneralErrorInfo
44

55
final class InvalidBinaryScalaVersionError(val invalidBinaryVersion: String)
6-
extends ScalaVersionError(s"Cannot find matching Scala version for '$invalidBinaryVersion")
6+
extends ScalaVersionError(s"Cannot find matching Scala version for '$invalidBinaryVersion'")
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package scala.build.errors
22

3-
import scala.build.errors.ScalaVersionError.getTheGeneralErrorInfo
4-
5-
final class NoValidScalaVersionFoundError(val foundVersions: Seq[String]) extends ScalaVersionError(
6-
s"Cannot find a valid matching Scala version among ${foundVersions.mkString(", ")}"
7-
)
3+
final class NoValidScalaVersionFoundError(val versionString: String = "")
4+
extends ScalaVersionError({
5+
val suffix = if versionString.nonEmpty then s" for $versionString" else ""
6+
s"Cannot find a valid matching Scala version$suffix."
7+
})

modules/options/src/main/scala/scala/build/options/BuildOptions.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,9 @@ final case class BuildOptions(
337337
repositories
338338
)
339339
case sv if ScalaVersionUtil.scala2Lts.contains(sv) =>
340-
Left(new ScalaVersionError(s"Invalid Scala version: ${sv}. There is no official LTS version for Scala 2."))
340+
Left(new ScalaVersionError(
341+
s"Invalid Scala version: $sv. There is no official LTS version for Scala 2."
342+
))
341343
case sv if sv == ScalaVersionUtil.scala3Nightly =>
342344
ScalaVersionUtil.GetNightly.scala3(cache)
343345
case scala3NightlyNicknameRegex(threeSubBinaryNum) =>

modules/options/src/main/scala/scala/build/options/ScalaVersionUtil.scala

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ object ScalaVersionUtil {
3333
def scala3Nightly = "3.nightly"
3434
def scala3Lts = List("3.lts", "lts")
3535
// not valid versions, defined only for informative error messages
36-
def scala2Lts = List("2.13.lts", "2.12.lts", "2.lts")
36+
def scala2Lts = List("2.13.lts", "2.12.lts", "2.lts")
3737
extension (cache: FileCache[Task]) {
3838
def fileWithTtl0(artifact: Artifact): Either[ArtifactError, File] =
3939
cache.logger.use {
@@ -65,8 +65,7 @@ object ScalaVersionUtil {
6565
extension (versionsResult: Versions.Result) {
6666
def verify(versionString: String): Either[BuildException, Unit] =
6767
if versionsResult.versions.available.contains(versionString) then Right(())
68-
else
69-
Left(new NoValidScalaVersionFoundError(versionsResult.versions.available))
68+
else Left(NoValidScalaVersionFoundError(versionString))
7069
}
7170

7271
object GetNightly {
@@ -129,8 +128,8 @@ object ScalaVersionUtil {
129128
.versions.available.filter(_.endsWith("-NIGHTLY"))
130129

131130
val threeXNightlies = res.filter(_.startsWith(s"3.$threeSubBinaryNum.")).map(Version(_))
132-
if (threeXNightlies.nonEmpty) Right(threeXNightlies.max.repr)
133-
else Left(new NoValidScalaVersionFoundError(res))
131+
if threeXNightlies.nonEmpty then Right(threeXNightlies.max.repr)
132+
else Left(NoValidScalaVersionFoundError())
134133
}
135134

136135
/** @return

project/deps.sc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ object Scala {
55
def scala213 = "2.13.12"
66
def runnerScala3 = "3.0.2" // the newest version that is compatible with all Scala 3.x versions
77
def scala3 = "3.3.1"
8-
def scala3Lts = "3.3" //the full version should be resolved later
8+
def scala3Lts = "3.3" // the full version should be resolved later
99

1010
// The Scala version used to build the CLI itself.
1111
def defaultInternal = sys.props.get("scala.version.internal").getOrElse(scala3)

0 commit comments

Comments
 (0)