aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Pretty <jon.pretty@propensive.com>2017-11-10 15:21:03 +0000
committerJon Pretty <jon.pretty@propensive.com>2017-11-10 15:21:03 +0000
commit2ae9a65ed0b773f77b5cd8d8c134a125bbaccf5d (patch)
tree345f7f8a497f5fc12e2aaad9cf9e8119e0059d62
parente4ba86981d70ed96d56fa998b5c905a1720f4db2 (diff)
downloadmagnolia-2ae9a65ed0b773f77b5cd8d8c134a125bbaccf5d.tar.gz
magnolia-2ae9a65ed0b773f77b5cd8d8c134a125bbaccf5d.tar.bz2
magnolia-2ae9a65ed0b773f77b5cd8d8c134a125bbaccf5d.zip
Scalafmt
-rw-r--r--build.sbt5
-rw-r--r--core/src/main/scala/magnolia.scala14
-rw-r--r--examples/src/main/scala/show.scala4
-rw-r--r--tests/src/main/scala/tests.scala4
4 files changed, 16 insertions, 11 deletions
diff --git a/build.sbt b/build.sbt
index 628088f..c5d6d74 100644
--- a/build.sbt
+++ b/build.sbt
@@ -77,7 +77,10 @@ lazy val publishSettings = Seq(
import java.io.File
-lazy val unmanagedSettings = unmanagedBase := (scalaVersion.value.split("\\.").map(_.toInt).to[List] match {
+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"
})
diff --git a/core/src/main/scala/magnolia.scala b/core/src/main/scala/magnolia.scala
index 6be8ed0..9aa5d5f 100644
--- a/core/src/main/scala/magnolia.scala
+++ b/core/src/main/scala/magnolia.scala
@@ -72,19 +72,19 @@ object Magnolia {
val arrayCls = tq"_root_.scala.Array"
val prefixType = c.prefix.tree.tpe
-
+
val typeDefs = prefixType.baseClasses.flatMap { cls =>
cls.asType.toType.decls.filter(_.isType).find(_.name.toString == "Typeclass").map { tpe =>
tpe.asType.toType.asSeenFrom(prefixType, cls)
}
}
-
+
val typeConstructorOpt =
typeDefs.headOption.map(_.typeConstructor)
val typeConstructor = typeConstructorOpt.getOrElse {
- c.abort(c.enclosingPosition, "magnolia: the derivation object does not define the Typeclass "+
- "type constructor")
+ c.abort(c.enclosingPosition,
+ "magnolia: the derivation object does not define the Typeclass type constructor")
}
def findType(key: Type): Option[TermName] =
@@ -271,9 +271,9 @@ object Magnolia {
$paramsVal,
($fnVal: Param[$typeConstructor, $genericType] => Any) =>
new $genericType(..${caseParams.zipWithIndex.map {
- case (typeclass, idx) =>
- q"$fnVal($paramsVal($idx)).asInstanceOf[${typeclass.paramType}]"
- } })
+ case (typeclass, idx) =>
+ q"$fnVal($paramsVal($idx)).asInstanceOf[${typeclass.paramType}]"
+ }})
))
}"""
)
diff --git a/examples/src/main/scala/show.scala b/examples/src/main/scala/show.scala
index a83c509..e101c11 100644
--- a/examples/src/main/scala/show.scala
+++ b/examples/src/main/scala/show.scala
@@ -10,12 +10,12 @@ import scala.language.experimental.macros
trait Show[Out, T] { def show(value: T): Out }
trait GenericShow[Out] {
-
+
/** the type constructor for new [[Show]] instances
*
* The first parameter is fixed as `String`, and the second parameter varies generically. */
type Typeclass[T] = Show[Out, T]
-
+
def join(typeName: String, strings: Seq[String]): Out
/** creates a new [[Show]] instance by labelling and joining (with `mkString`) the result of
diff --git a/tests/src/main/scala/tests.scala b/tests/src/main/scala/tests.scala
index 10eb465..5142861 100644
--- a/tests/src/main/scala/tests.scala
+++ b/tests/src/main/scala/tests.scala
@@ -55,7 +55,9 @@ object Tests extends TestApp {
test("local implicit beats Magnolia") {
import magnolia.examples._
- implicit val showPerson: Show[String, Person] = new Show[String, Person] { def show(p: Person) = "nobody" }
+ implicit val showPerson: Show[String, Person] = new Show[String, Person] {
+ def show(p: Person) = "nobody"
+ }
implicitly[Show[String, Address]].show(Address("Home", Person("John Smith", 44)))
}.assert(_ == "Address(line1=Home,occupant=nobody)")