From 091788d0ad6f94c91cc20d6074c3403934702325 Mon Sep 17 00:00:00 2001 From: Jon Pretty Date: Wed, 6 Jun 2018 21:27:28 +0100 Subject: Permit derivations of products when `dispatch` not defined --- tests/src/main/scala/tests.scala | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/src/main/scala/tests.scala b/tests/src/main/scala/tests.scala index c3b90cc..f408253 100644 --- a/tests/src/main/scala/tests.scala +++ b/tests/src/main/scala/tests.scala @@ -55,7 +55,6 @@ case object Red extends Color case object Green extends Color case object Blue extends Color - case class MyAnnotation(order: Int) extends StaticAnnotation @MyAnnotation(0) case class Attributed( @@ -382,5 +381,19 @@ object Tests extends TestApp { Show.gen[Attributed].show(Attributed("xyz", 100)) }.assert(_ == "Attributed{MyAnnotation(0)}(p1{MyAnnotation(1)}=xyz,p2{MyAnnotation(2)}=100)") + test("allow no-coproduct derivation definitions") { + scalac""" + WeakHash.gen[Person] + """ + }.assert(_ == Returns(fqt"magnolia.examples.WeakHash.Typeclass[magnolia.tests.Person]")) + + test("disallow coproduct derivations without dispatch method") { + scalac""" + WeakHash.gen[Entity] + """ + }.assert(_ == TypecheckError("magnolia: the method `dispatch` must be defined on the derivation object WeakHash to derive typeclasses for sealed traits")) + + + } } -- cgit v1.2.3