diff options
Diffstat (limited to 'core/shared/src/main/scala/magnolia.scala')
-rw-r--r-- | core/shared/src/main/scala/magnolia.scala | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/core/shared/src/main/scala/magnolia.scala b/core/shared/src/main/scala/magnolia.scala index dd1e0e8..c2dbf0a 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 @@ -102,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 } @@ -166,7 +165,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) @@ -312,7 +311,7 @@ object Magnolia { ..$assignments $typeNameDef - + ${c.prefix}.combine($magnoliaPkg.Magnolia.caseClass[$typeConstructor, $genericType]( $typeName, false, @@ -374,11 +373,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]], @@ -517,7 +516,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") |