Skip to content

Commit 90b3820

Browse files
committed
sbt-dotty: Fix minimum sbt version check
This fixes #5671. Also bump the minimum version to 1.2.7 due to scalaCompilerBridgeBinaryJar usage, etc.
1 parent dd9fd11 commit 90b3820

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

sbt-dotty/src/dotty/tools/sbtplugin/DottyPlugin.scala

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ package dotty.tools.sbtplugin
22

33
import sbt._
44
import sbt.Keys._
5-
import sbt.librarymanagement._
5+
import sbt.librarymanagement.{
6+
ivy, DependencyResolution, ScalaModuleInfo, SemanticSelector, UpdateConfiguration, UnresolvedWarningConfiguration,
7+
VersionNumber
8+
}
69
import sbt.internal.inc.ScalaInstance
710
import xsbti.compile._
811
import java.net.URLClassLoader
@@ -99,20 +102,6 @@ object DottyPlugin extends AutoPlugin {
99102
override def requires: Plugins = plugins.JvmPlugin
100103
override def trigger = allRequirements
101104

102-
// Adapted from CrossVersionUtil#sbtApiVersion
103-
private def sbtFullVersion(v: String): Option[(Int, Int, Int)] =
104-
{
105-
val ReleaseV = """(\d+)\.(\d+)\.(\d+)(-\d+)?""".r
106-
val CandidateV = """(\d+)\.(\d+)\.(\d+)(-RC\d+)""".r
107-
val NonReleaseV = """(\d+)\.(\d+)\.(\d+)([-\w+]*)""".r
108-
v match {
109-
case ReleaseV(x, y, z, ht) => Some((x.toInt, y.toInt, z.toInt))
110-
case CandidateV(x, y, z, ht) => Some((x.toInt, y.toInt, z.toInt))
111-
case NonReleaseV(x, y, z, ht) if z.toInt > 0 => Some((x.toInt, y.toInt, z.toInt))
112-
case _ => None
113-
}
114-
}
115-
116105
/** Patches the IncOptions so that .tasty and .hasTasty files are pruned as needed.
117106
*
118107
* This code is adapted from `scalaJSPatchIncOptions` in Scala.js, which needs
@@ -142,12 +131,13 @@ object DottyPlugin extends AutoPlugin {
142131

143132
override val globalSettings: Seq[Def.Setting[_]] = Seq(
144133
onLoad in Global := onLoad.in(Global).value.andThen { state =>
134+
135+
val requiredVersion = ">=1.2.7"
136+
145137
val sbtV = sbtVersion.value
146-
sbtFullVersion(sbtV) match {
147-
case Some((1, sbtMinor, sbtPatch)) if sbtMinor > 1 || (sbtMinor == 1 && sbtPatch >= 5) =>
148-
case _ =>
149-
sys.error(s"The sbt-dotty plugin cannot work with this version of sbt ($sbtV), sbt >= 1.1.5 is required.")
150-
}
138+
if (!VersionNumber(sbtV).matchesSemVer(SemanticSelector(requiredVersion)))
139+
sys.error(s"The sbt-dotty plugin cannot work with this version of sbt ($sbtV), sbt $requiredVersion is required.")
140+
151141
state
152142
}
153143
)

0 commit comments

Comments
 (0)