From e7ffd7e1486a04a2d9e5642c35455fdb556d3554 Mon Sep 17 00:00:00 2001 From: xuwei-k <6b656e6a69@gmail.com> Date: Wed, 6 Jun 2018 00:23:27 +0900 Subject: Scala 2.13.0-M4 --- build.sbt | 4 ++-- core/shared/src/main/scala/magnolia.scala | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index 0239960..697b69c 100644 --- a/build.sbt +++ b/build.sbt @@ -12,10 +12,10 @@ lazy val core = crossProject(JVMPlatform, JSPlatform, NativePlatform) scalaVersion := crossScalaVersions.value.head ) .jvmSettings( - crossScalaVersions := "2.12.4" :: "2.13.0-M3" :: "2.11.12" :: Nil + crossScalaVersions := "2.12.4" :: "2.13.0-M4" :: "2.11.12" :: Nil ) .jsSettings( - crossScalaVersions := "2.12.4" :: "2.11.12" :: Nil + crossScalaVersions := "2.12.4" :: "2.13.0-M4" :: "2.11.12" :: Nil ) .nativeSettings( crossScalaVersions := "2.11.12" :: Nil diff --git a/core/shared/src/main/scala/magnolia.scala b/core/shared/src/main/scala/magnolia.scala index 6001977..1d45fa7 100644 --- a/core/shared/src/main/scala/magnolia.scala +++ b/core/shared/src/main/scala/magnolia.scala @@ -15,7 +15,6 @@ package magnolia import scala.annotation.compileTimeOnly -import scala.collection.breakOut import scala.collection.mutable import scala.language.existentials import scala.language.higherKinds @@ -518,7 +517,7 @@ private[magnolia] object CompileTimeState { (frames.drop(1), frames).zipped.collect { case (Frame(path, tp1, _), Frame(_, tp2, _)) if !(tp1 =:= tp2) => path - } (breakOut) + }.toList override def toString: String = frames.mkString("magnolia stack:\n", "\n", "\n") -- cgit v1.2.3 From 905de4e7bab4c252d9f879f25bc66c38855e401b Mon Sep 17 00:00:00 2001 From: Vladimir Pavkin Date: Thu, 7 Jun 2018 13:56:07 +0300 Subject: Use encodedName to avoid invalid identifier names --- core/shared/src/main/scala/magnolia.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/shared/src/main/scala/magnolia.scala b/core/shared/src/main/scala/magnolia.scala index 1d45fa7..e46dd3a 100644 --- a/core/shared/src/main/scala/magnolia.scala +++ b/core/shared/src/main/scala/magnolia.scala @@ -101,7 +101,7 @@ object Magnolia { def knownSubclasses(sym: ClassSymbol): List[Symbol] = { val children = sym.knownDirectSubclasses.toList val (abstractTypes, concreteTypes) = children.partition(_.isAbstract) - + abstractTypes.map(_.asClass).flatMap(knownSubclasses(_)) ::: concreteTypes } @@ -167,7 +167,7 @@ object Magnolia { def directInferImplicit(genericType: Type, typeConstructor: Type): Option[Tree] = { val genericTypeName = genericType.typeSymbol.name.decodedName.toString.toLowerCase - val assignedName = TermName(c.freshName(s"${genericTypeName}Typeclass")) + val assignedName = TermName(c.freshName(s"${genericTypeName}Typeclass")).encodedName.toTermName val typeSymbol = genericType.typeSymbol val classType = if (typeSymbol.isClass) Some(typeSymbol.asClass) else None val isCaseClass = classType.exists(_.isCaseClass) @@ -313,7 +313,7 @@ object Magnolia { ..$assignments $typeNameDef - + ${c.prefix}.combine($magnoliaPkg.Magnolia.caseClass[$typeConstructor, $genericType]( $typeName, false, @@ -374,11 +374,11 @@ object Magnolia { Some(q"""{ val $subtypesVal: $scalaPkg.Array[$magnoliaPkg.Subtype[$typeConstructor, $genericType]] = new $scalaPkg.Array(${assignments.size}) - + ..$assignments $typeNameDef - + ${c.prefix}.dispatch(new $magnoliaPkg.SealedTrait( $typeName, $subtypesVal: $scalaPkg.Array[$magnoliaPkg.Subtype[$typeConstructor, $genericType]], -- cgit v1.2.3 From 1d4a132d11a514f2d75c6cb861030299f5d11597 Mon Sep 17 00:00:00 2001 From: xuwei-k <6b656e6a69@gmail.com> Date: Sat, 9 Jun 2018 21:09:20 +0900 Subject: fix scalacOptions for latest Scala 2.13.x These options removed or deprecated - https://github.com/scala/scala/commit/ad25805de5c63084348348aabefdf184927806c2 - https://github.com/scala/scala/commit/7d5e0b01c7f645e4f727f704a18f93ce5c69a9dd --- build.sbt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index 697b69c..903933f 100644 --- a/build.sbt +++ b/build.sbt @@ -86,14 +86,23 @@ lazy val buildSettings = Seq( "-deprecation", "-feature", "-Xfuture", - "-Xexperimental", "-Ywarn-value-discard", "-Ywarn-dead-code", - "-Ywarn-nullary-unit", "-Ywarn-numeric-widen", - "-Ywarn-inaccessible", - "-Ywarn-adapted-args" ), + scalacOptions ++= { + CrossVersion.partialVersion(scalaVersion.value) match { + case Some((2, v)) if v <= 12 => + Seq( + "-Xexperimental", + "-Ywarn-nullary-unit", + "-Ywarn-inaccessible", + "-Ywarn-adapted-args" + ) + case _ => + Nil + } + }, scmInfo := Some( ScmInfo(url("https://github.com/propensive/magnolia"), "scm:git:git@github.com:propensive/magnolia.git") -- cgit v1.2.3