@@ -34,16 +34,17 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
3434 // https://github.com/scalameta/scalameta/issues/2485
3535 lazy val coreScalaVersions = Seq (scala212, scala213)
3636 lazy val cliScalaVersions = {
37- val scala3Versions = Seq (scala33, scala35, scala36, scala37)
37+ val scala3Versions = Seq (scala33, scala35, scala36, scala37, scala38 )
3838 val jdk = System .getProperty(" java.specification.version" ).toDouble
3939 val unsupportedVersions =
4040 if (jdk >= 25 ) Seq (scala212, scala35, scala36)
41+ else if (jdk < 17 ) Seq (scala38)
4142 else Nil
4243 (coreScalaVersions ++ scala3Versions :+ scala3Next)
4344 .diff(unsupportedVersions)
4445 }
4546 lazy val cliScalaVersionsWithTargets : Seq [(String , TargetAxis )] =
46- cliScalaVersions.map(sv => (sv, TargetAxis (sv))) ++
47+ cliScalaVersions.map(sv => (sv, TargetAxis (sv))) ++ {
4748 cliScalaVersions.intersect(Seq (scala213, scala212)).flatMap { sv =>
4849 def previousVersions (scalaVersion : String ): Seq [String ] = {
4950 val split = scalaVersion.split('.' )
@@ -66,6 +67,10 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
6667 (scala3Next, TargetAxis (scala213)),
6768 (scala3Next, TargetAxis (scala3LTS))
6869 )
70+ }.filter { case (sv, target) =>
71+ val jdk = System .getProperty(" java.specification.version" ).toDouble
72+ jdk >= 17 || (sv != scala38 && target.scalaVersion != scala38)
73+ }
6974
7075 lazy val publishLocalTransitive =
7176 taskKey[Unit ](" Run publishLocal on this project and its dependencies" )
@@ -85,16 +90,21 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
8590 scalaVersion.value.startsWith(" 2.12" )
8691 }
8792 lazy val warnUnused = Def .setting {
88- if (isScala3.value)
93+ val minor = scalaVersion.value.split('.' )(1 ).toInt
94+ if (isScala3.value && minor >= 7 )
95+ Seq (" -Wunused:all" )
96+ else if (isScala3.value)
8997 Seq (
9098 " -Wunused:all" ,
91- " -Wunused:unsafe-warn-patvars" // only needed for <3.7.0
99+ " -Wunused:unsafe-warn-patvars"
92100 )
93101 else if (isScala213.value) Seq (" -Wunused" )
94102 else Seq (" -Ywarn-unused" )
95103 }
96104 lazy val targetJvm = Def .setting {
97- if (isScala3.value) Seq (" -release:8" )
105+ val minor = scalaVersion.value.split('.' )(1 ).toInt
106+ if (isScala3.value && minor >= 8 ) Seq (" -release:17" )
107+ else if (isScala3.value) Seq (" -release:8" )
98108 else if (isScala213.value) Seq (" -release" , " 8" )
99109 else Seq (" -target:jvm-1.8" )
100110 }
@@ -150,6 +160,7 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
150160 " scala35" -> scala35,
151161 " scala36" -> scala36,
152162 " scala37" -> scala37,
163+ " scala38" -> scala38,
153164 " scala3LTS" -> scala3LTS,
154165 " scala3Next" -> scala3Next,
155166 sbtVersion
@@ -241,7 +252,8 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
241252 )
242253
243254 private val PreviousScalaVersion : Map [String , Option [String ]] = Map (
244- scala37 -> Some (" 3.7.3" )
255+ scala37 -> Some (" 3.7.3" ),
256+ scala38 -> None
245257 )
246258
247259 override def buildSettings : Seq [Setting [_]] = List (
0 commit comments