aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.sbt13
-rw-r--r--core/shared/src/main/scala/interface.scala8
-rw-r--r--core/shared/src/main/scala/magnolia.scala4
-rw-r--r--examples/shared/src/main/scala/decode.scala2
-rw-r--r--project/plugins.sbt12
5 files changed, 19 insertions, 20 deletions
diff --git a/build.sbt b/build.sbt
index 8a2a8c3..0239960 100644
--- a/build.sbt
+++ b/build.sbt
@@ -127,13 +127,12 @@ lazy val publishSettings = Seq(
)
)
-lazy val unmanagedSettings = unmanagedBase := (scalaVersion.value
- .split("\\.")
- .map(_.toInt)
- .to[List] match {
- case List(2, 12, _) => baseDirectory.value / "lib" / "2.12"
- case List(2, 11, _) => baseDirectory.value / "lib" / "2.11"
-})
+lazy val unmanagedSettings = unmanagedBase :=
+ baseDirectory.value / "lib" /
+ (CrossVersion.partialVersion(scalaVersion.value) match {
+ case Some((2, 11)) => "2.11"
+ case _ => "2.12"
+ })
lazy val scalaMacroDependencies: Seq[Setting[_]] = Seq(
libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value,
diff --git a/core/shared/src/main/scala/interface.scala b/core/shared/src/main/scala/interface.scala
index 6eea9f1..af4fb51 100644
--- a/core/shared/src/main/scala/interface.scala
+++ b/core/shared/src/main/scala/interface.scala
@@ -21,7 +21,7 @@ import scala.annotation.tailrec
*
* @tparam Typeclass type constructor for the typeclass being derived
* @tparam Type generic type of this parameter */
-trait Subtype[Typeclass[_], Type] {
+trait Subtype[Typeclass[_], Type] extends Serializable {
/** the type of subtype */
type SType <: Type
@@ -47,7 +47,7 @@ trait Subtype[Typeclass[_], Type] {
*
* @tparam Typeclass type constructor for the typeclass being derived
* @tparam Type generic type of this parameter */
-trait Param[Typeclass[_], Type] {
+trait Param[Typeclass[_], Type] extends Serializable {
/** the type of the parameter being represented
*
@@ -136,7 +136,7 @@ abstract class CaseClass[Typeclass[_], Type] private[magnolia] (
val isValueClass: Boolean,
parametersArray: Array[Param[Typeclass, Type]],
annotationsArray: Array[Any]
-) {
+) extends Serializable {
override def toString: String = s"CaseClass(${typeName.full}, ${parameters.mkString(",")})"
/** constructs a new instance of the case class type
@@ -196,7 +196,7 @@ final class SealedTrait[Typeclass[_], Type](
val typeName: TypeName,
subtypesArray: Array[Subtype[Typeclass, Type]],
annotationsArray: Array[Any]
-) {
+) extends Serializable {
override def toString: String = s"SealedTrait($typeName, Array[${subtypes.mkString(",")}])"
diff --git a/core/shared/src/main/scala/magnolia.scala b/core/shared/src/main/scala/magnolia.scala
index d776718..1ec6649 100644
--- a/core/shared/src/main/scala/magnolia.scala
+++ b/core/shared/src/main/scala/magnolia.scala
@@ -249,7 +249,7 @@ object Magnolia {
}
val ref = TermName(c.freshName("paramTypeclass"))
- val assigned = q"""lazy val $ref = $derivedImplicit"""
+ val assigned = q"""val $ref = $derivedImplicit"""
CaseParam(param, repeated, assigned, paramType, ref) :: acc
} { backRef =>
CaseParam(param, repeated, q"()", paramType, backRef.ref) :: acc
@@ -326,7 +326,7 @@ object Magnolia {
}})}))
}""")
} else if (isSealedTrait) {
- val genericSubtypes = classType.get.knownDirectSubclasses.to[List]
+ val genericSubtypes = classType.get.knownDirectSubclasses.toList
val subtypes = genericSubtypes.map { sub =>
val subType = sub.asType.toType // FIXME: Broken for path dependent types
val typeParams = sub.asType.typeParams
diff --git a/examples/shared/src/main/scala/decode.scala b/examples/shared/src/main/scala/decode.scala
index 5838905..16ccbcd 100644
--- a/examples/shared/src/main/scala/decode.scala
+++ b/examples/shared/src/main/scala/decode.scala
@@ -78,7 +78,7 @@ object Decoder {
}
def keyValue(str: String): (String, String) = {
- val List(label, value) = str.split("=", 2).to[List]
+ val List(label, value) = str.split("=", 2).toList
(label, value)
}
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 4db006e..5e8b926 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -1,8 +1,8 @@
-addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0")
-addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.1")
+addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.1")
+addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.3")
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1")
-addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.22")
-addSbtPlugin("org.portable-scala" % "sbt-crossproject" % "0.3.1")
-addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "0.3.1")
-addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.6") \ No newline at end of file
+addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.23")
+addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "0.4.0")
+addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "0.4.0")
+addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.7")