From 7a81cc62e20ef85a88ae38f7685c2f80d7346101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Wro=C5=84ski?= Date: Thu, 20 Jan 2022 14:11:20 +0100 Subject: [PATCH] For -S 3.x input use latest release from 3.x versions --- .../main/scala/scala/build/options/BuildOptions.scala | 10 ++++++---- .../scala/scala/build/tests/BuildOptionsTests.scala | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/build/src/main/scala/scala/build/options/BuildOptions.scala b/modules/build/src/main/scala/scala/build/options/BuildOptions.scala index 13063d7917..0f35f7d68f 100644 --- a/modules/build/src/main/scala/scala/build/options/BuildOptions.scala +++ b/modules/build/src/main/scala/scala/build/options/BuildOptions.scala @@ -284,15 +284,17 @@ final case class BuildOptions( sv match { case Some(sv0) => val prefix = if (sv0.endsWith(".")) sv0 else sv0 + "." - val matchingVersions = allVersions.filter(_.startsWith(prefix)) + val matchingVersions = allVersions.filter(_.startsWith(prefix)).map(Version(_)) if (matchingVersions.isEmpty) Left(new InvalidBinaryScalaVersionError(sv0)) else { val validMaxVersions = maxSupportedScalaVersions .filter(_.repr.startsWith(prefix)) - val validMatchingVersions = matchingVersions - .map(Version(_)) - .filter(v => validMaxVersions.exists(v <= _)) + val validMatchingVersions = + if (prefix.startsWith("3.") && prefix.length > 2) matchingVersions + else + matchingVersions + .filter(v => validMaxVersions.exists(v <= _)) if (validMatchingVersions.isEmpty) Left(new UnsupportedScalaVersionError(sv0)) else diff --git a/modules/build/src/test/scala/scala/build/tests/BuildOptionsTests.scala b/modules/build/src/test/scala/scala/build/tests/BuildOptionsTests.scala index 207c346738..456a8e19a0 100644 --- a/modules/build/src/test/scala/scala/build/tests/BuildOptionsTests.scala +++ b/modules/build/src/test/scala/scala/build/tests/BuildOptionsTests.scala @@ -35,7 +35,8 @@ class BuildOptionsTests extends munit.FunSuite { Some("2.12") -> defaultScala212Version, Some("2") -> defaultScala213Version, Some("2.13.2") -> "2.13.2", - Some("3.0.1") -> "3.0.1" + Some("3.0.1") -> "3.0.1", + Some("3.0") -> "3.0.2" ) for ((prefix, expectedScalaVersion) <- expectedScalaVersions) @@ -61,6 +62,7 @@ class BuildOptionsTests extends munit.FunSuite { val expectedScalaConfVersions = Seq( Some("3") -> "3.0.1", + Some("3.0") -> "3.0.2", None -> "3.0.1", Some("2.13") -> "2.13.4", Some("2.12") -> "2.12.13",