@@ -11,8 +11,8 @@ lazy val scalac: Seq[String] = Seq(
1111 " -unchecked" , // Enable additional warnings where generated code depends on assumptions.
1212 " -Xfatal-warnings" , // Fail the compilation if there are any warnings.
1313 // "-Ypartial-unification", // Enable partial unification in type constructor inference
14- " -Ywarn-dead-code" , // Warn when dead code is identified.
15- " -Ywarn-numeric-widen" // Warn when numerics are widened.
14+ // "-Ywarn-dead-code", // Warn when dead code is identified.
15+ // "-Ywarn-numeric-widen" // Warn when numerics are widened.
1616 // "-Xlog-free-terms",
1717)
1818
@@ -25,6 +25,8 @@ lazy val scalac211: Seq[String] = Seq(
2525 " -Ywarn-nullary-override" , // Warn when non-nullary `def f()' overrides nullary `def f'.
2626 " -Ywarn-nullary-unit" , // Warn when nullary methods return Unit.
2727 " -Xfuture" , // Turn on future language features.
28+ " -Ywarn-dead-code" , // Warn when dead code is identified.
29+ " -Ywarn-numeric-widen" // Warn when numerics are widened.
2830)
2931
3032lazy val scalac212 : Seq [String ] = Seq (
@@ -63,6 +65,8 @@ lazy val scalac212: Seq[String] = Seq(
6365 " -Xlint:unsound-match" , // Pattern match may not be typesafe.
6466 " -Ywarn-infer-any" , // Warn when a type argument is inferred to be `Any`.
6567 " -Xfuture" , // Turn on future language features.
68+ " -Ywarn-dead-code" , // Warn when dead code is identified.
69+ " -Ywarn-numeric-widen" // Warn when numerics are widened.
6670)
6771
6872lazy val scalac213 : Seq [String ] = Seq (
@@ -93,11 +97,19 @@ lazy val scalac213: Seq[String] = Seq(
9397 " -Xlint:private-shadow" , // A private field (or class parameter) shadows a superclass field.
9498 " -Xlint:stars-align" , // Pattern sequence wildcard must align with sequence component.
9599 " -Xlint:type-parameter-shadow" , // A local type parameter shadows a type already in scope.
100+ " -Ywarn-dead-code" , // Warn when dead code is identified.
101+ " -Ywarn-numeric-widen" // Warn when numerics are widened.
96102)
97103
98- lazy val scala213 = " 2.13.8"
99- lazy val scala212 = " 2.12.15"
104+ lazy val scalac3 : Seq [String ] = Seq (
105+ " -source:3.0-migration" // makes the compiler forgiving on most of the dropped features, printing warnings in place of errors
106+ )
107+
108+ lazy val scala213 = " 2.13.16"
109+ lazy val scala212 = " 2.12.20"
100110lazy val scala211 = " 2.11.12"
111+ lazy val scala3 = " 3.3.5"
112+ lazy val scalatestVersion = " 3.2.19"
101113
102114organization := " org.scorexfoundation"
103115
@@ -108,22 +120,45 @@ def deboxSettings = Seq(
108120 description := " Fast, deboxed, specialized data structures for Scala (fork of non/debox)" ,
109121
110122 resolvers += Resolver .sonatypeRepo(" public" ),
111- libraryDependencies ++= Seq (
112- scalaOrganization.value % " scala-reflect" % scalaVersion.value % " provided" ,
113- " org.scalatest" %%% " scalatest" % " 3.3.0-SNAP3" % Test ,
114- " org.scalatest" %%% " scalatest-propspec" % " 3.3.0-SNAP3" % Test ,
115- " org.scalatest" %%% " scalatest-shouldmatchers" % " 3.3.0-SNAP3" % Test ,
116- " org.scalatestplus" %%% " scalacheck-1-15" % " 3.3.0.0-SNAP3" % Test ,
117- " org.scalacheck" %%% " scalacheck" % " 1.15.2" % Test
118- ),
119- scalacOptions := {
123+ libraryDependencies ++= {
124+ val base = Seq (
125+ " org.scalatest" %%% " scalatest" % scalatestVersion % Test ,
126+ " org.scalatest" %%% " scalatest-propspec" % scalatestVersion % Test ,
127+ " org.scalatest" %%% " scalatest-shouldmatchers" % scalatestVersion % Test
128+ )
129+ val reflect = Seq (scalaOrganization.value % " scala-reflect" % scalaVersion.value % " provided" )
130+ val core211 = Seq (
131+ " org.typelevel" %%% " spire-macros" % " 0.17.0-M1" ,
132+ " org.scalatestplus" %%% " scalacheck-1-15" % " 3.2.4.0-M1" % Test ,
133+ " org.scalacheck" %%% " scalacheck" % " 1.15.2" % Test
134+ )
135+ val spireMacros = Seq (" org.typelevel" %%% " spire-macros" % " 0.17.0" )
136+ val spire = Seq (" org.typelevel" %%% " spire" % " 0.18.0" )
137+ val scalacheck = Seq (
138+ " org.scalatestplus" %%% " scalacheck-1-18" % " 3.2.19.0" % Test ,
139+ " org.scalacheck" %%% " scalacheck" % " 1.18.1" % Test
140+ )
141+ CrossVersion .partialVersion(scalaVersion.value) match {
142+ case Some ((2 , 11 )) =>
143+ base ++ core211
144+ case Some ((2 , 12 )) =>
145+ base ++ scalacheck ++ spireMacros ++ reflect
146+ case Some ((2 , 13 )) =>
147+ base ++ scalacheck ++ spireMacros ++ reflect
148+ case Some ((3 , _)) =>
149+ base ++ scalacheck ++ spire
150+ }
151+ },
152+ scalacOptions ++= {
120153 CrossVersion .partialVersion(scalaVersion.value) match {
121- case Some ((2 , n)) if n == 13 =>
122- scalac ++ scalac213
123- case Some ((2 , n)) if n == 12 =>
124- scalac ++ scalac212
125154 case Some ((2 , 11 )) =>
126155 scalac ++ scalac211
156+ case Some ((2 , 12 )) =>
157+ scalac ++ scalac212
158+ case Some ((2 , 13 )) =>
159+ scalac ++ scalac213
160+ case Some ((3 , _)) =>
161+ scalac ++ scalac3
127162 }
128163 },
129164 javacOptions ++= javacReleaseOption,
@@ -157,18 +192,12 @@ lazy val core = crossProject(JSPlatform, JVMPlatform)
157192 .settings(moduleName := " debox" )
158193 .settings(deboxSettings)
159194 .jvmSettings(
160- libraryDependencies ++= Seq (
161- " org.typelevel" %%% " spire-macros" % " 0.17.0-M1" // The last version published for Scala 2.11-2.13
162- ),
163195 scalaVersion := scala213,
164- crossScalaVersions := Seq (scala211, scala212, scala213)
196+ crossScalaVersions := Seq (scala211, scala212, scala213, scala3 )
165197 )
166198 .jsSettings(
167199 scalaVersion := scala213,
168- crossScalaVersions := Seq (scala213, scala212),
169- libraryDependencies ++= Seq (
170- " org.typelevel" %%% " spire-macros" % " 0.17.0" // Version supporting Scala.js 1.x 2.13, 3.x
171- ),
200+ crossScalaVersions := Seq (scala212, scala213, scala3),
172201 Test / parallelExecution := false
173202 )
174203
@@ -177,7 +206,7 @@ lazy val benchmark = project
177206 .dependsOn(core.jvm)
178207 .settings(
179208 moduleName := " debox-benchmark" ,
180- crossScalaVersions := Seq (scala211, scala212, scala213),
209+ crossScalaVersions := Seq (scala211, scala212, scala213, scala3 ),
181210 scalaVersion := scala213,
182211 )
183212 .enablePlugins(JmhPlugin )
0 commit comments