Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 44 additions & 32 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ import scoverage._
import xerial.sbt.Sonatype._

def scala213 = Def.setting(scalaVersion.value.startsWith("2.13"))
def scala3 = Def.setting(scalaVersion.value.startsWith("3."))

lazy val crossVersionSourcesSettings =
Seq(Compile, Test).map { sc =>
(sc / unmanagedSourceDirectories) ++= {
(sc / unmanagedSourceDirectories).value.flatMap { dir =>
if (dir.getPath.endsWith("scala"))
Seq(new File(dir.getPath + (if (scala213.value) "_2.13+" else "_2.13-")))
Seq(new File(dir.getPath + (if (scala213.value || scala3.value) "_2.13+" else "_2.13-")))
else
Seq.empty
}
Expand Down Expand Up @@ -54,41 +56,51 @@ val publishSettings = sonatypeSettings ++ Seq(
val commonSettings = Seq(
organization := "com.daodecode",
scalaVersion := "2.13.11",
crossScalaVersions := Seq(scalaVersion.value, "2.12.18"),
crossScalaVersions := Seq(scalaVersion.value, "2.12.18", "3.3.0"),
scalafmtConfig := Some(scalaj.base / "scalafmt-config/.scalafmt.conf")
) ++ releaseSettings ++ crossVersionSourcesSettings

val Scala212ScalacOptions = Seq(
"-Xlint",
"-unchecked",
"-deprecation",
"-Xfatal-warnings",
"-Ywarn-inaccessible",
"-Ywarn-dead-code",
"-Ywarn-adapted-args",
"-Ywarn-nullary-unit",
"-feature",
"-Ywarn-unused",
"-Ywarn-unused-import",
"-encoding", "UTF-8"
)

val Scala213ScalacOptions = Seq(
"-Xlint",
"-unchecked",
"-deprecation",
"-Xfatal-warnings",
"-Ywarn-dead-code",
"-feature",
"-Ywarn-unused",
"-encoding", "UTF-8",
"-Wconf:origin=scala.collection.compat.*:s"
)

val Scala3ScalacOptions = Seq(
"-unchecked",
"-deprecation",
"-Werror",
"-feature",
"-encoding", "UTF-8"
)

val moduleSettings = commonSettings ++ Seq(
scalacOptions :=
(if (scala213.value)
Seq(
"-Xlint",
"-unchecked",
"-deprecation",
"-Xfatal-warnings",
"-Ywarn-dead-code",
"-feature",
"-Ywarn-unused",
"-encoding",
"UTF-8",
"-Wconf:origin=scala.collection.compat.*:s"
)
else
Seq(
"-Xlint",
"-unchecked",
"-deprecation",
"-Xfatal-warnings",
"-Ywarn-inaccessible",
"-Ywarn-dead-code",
"-Ywarn-adapted-args",
"-Ywarn-nullary-unit",
"-feature",
"-Ywarn-unused",
"-Ywarn-unused-import",
"-encoding",
"UTF-8"
)),
scalacOptions := (
if (scala3.value) Scala3ScalacOptions
else if (scala213.value) Scala213ScalacOptions
else Scala212ScalacOptions
),
libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "3.2.16" % "test"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ package object collection extends StdLibDecorators with JavaAliases {
/******************************************** deepAsJava converters ********************************************/
implicit class DeepSeqAsJavaList[A](val scalaSeq: GenSeq[A]) extends AnyVal {
private def toJava[T](genSeq: GenSeq[T]): JList[T] = genSeq match {
case buffer: MBuffer[T] => buffer.asJava
case mSeq: MSeq[T] => mSeq.asJava
case buffer: MBuffer[_] => buffer.asJava.asInstanceOf[JList[T]]
case mSeq: MSeq[_] => mSeq.asJava.asInstanceOf[JList[T]]
case _ => genSeq.asJava
}

Expand Down Expand Up @@ -104,7 +104,7 @@ package object collection extends StdLibDecorators with JavaAliases {

implicit class DeepMapAsJavaMap[A, B](val scalaMap: GenMap[A, B]) extends AnyVal {
private def toJava[T, U](genMap: GenMap[T, U]): JMap[T, U] = genMap match {
case mMap: MMap[T, U] => mMap.asJava
case mMap: MMap[_, _] => mMap.asJava.asInstanceOf[JMap[T, U]]
case _ => genMap.asJava
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,12 +208,12 @@ class SimpleJConvertersTest extends ScalaJSpec {
"return same array with self conversions" in {
{
val scalaArray = Array("ss")
scalaArray.deepAsJava should be theSameInstanceAs scalaArray
scalaArray.deepAsJava[String] should be theSameInstanceAs scalaArray
}
{
class A
val scalaArray = Array(new A)
scalaArray.deepAsJava should be theSameInstanceAs scalaArray
scalaArray.deepAsJava[A] should be theSameInstanceAs scalaArray
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,20 +115,20 @@ class SimpleSConvertersTest extends ScalaJSpec with JListBuilder with JSetBuilde
"return same array with primitives and self conversions" in {
{
val javaArray = Array[Int](1)
javaArray.deepAsScala should be theSameInstanceAs javaArray
javaArray.deepAsScala[Int] should be theSameInstanceAs javaArray
}
{
val javaArray = Array[Char]('s')
javaArray.deepAsScala should be theSameInstanceAs javaArray
javaArray.deepAsScala[Char] should be theSameInstanceAs javaArray
}
{
val javaArray = Array[Double](12d)
javaArray.deepAsScala should be theSameInstanceAs javaArray
javaArray.deepAsScala[Double] should be theSameInstanceAs javaArray
}
{
class A
val javaArray = Array[A](new A)
javaArray.deepAsScala should be theSameInstanceAs javaArray
javaArray.deepAsScala[A] should be theSameInstanceAs javaArray
}
}
}
Expand Down