From e2da593ad073bd4094080129ca3b31ec94259a5c Mon Sep 17 00:00:00 2001 From: Jisoo Park Date: Tue, 18 Sep 2018 14:18:09 +0900 Subject: [PATCH] .raiseError syntax allows an error subtype --- core/src/main/scala/cats/syntax/applicativeError.scala | 2 +- tests/src/test/scala/cats/tests/SyntaxSuite.scala | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/scala/cats/syntax/applicativeError.scala b/core/src/main/scala/cats/syntax/applicativeError.scala index 5d2290563a..5d2f088235 100644 --- a/core/src/main/scala/cats/syntax/applicativeError.scala +++ b/core/src/main/scala/cats/syntax/applicativeError.scala @@ -67,7 +67,7 @@ final class ApplicativeErrorExtensionOps[F[_], E](F: ApplicativeError[F, E]) { } final class ApplicativeErrorIdOps[E](val e: E) extends AnyVal { - def raiseError[F[_], A](implicit F: ApplicativeError[F, E]): F[A] = + def raiseError[F[_], A](implicit F: ApplicativeError[F, _ >: E]): F[A] = F.raiseError(e) } diff --git a/tests/src/test/scala/cats/tests/SyntaxSuite.scala b/tests/src/test/scala/cats/tests/SyntaxSuite.scala index 2e8a21ff0e..41d9848a6f 100644 --- a/tests/src/test/scala/cats/tests/SyntaxSuite.scala +++ b/tests/src/test/scala/cats/tests/SyntaxSuite.scala @@ -349,6 +349,10 @@ object SyntaxSuite extends AllSyntaxBinCompat with AllInstances with AllSyntax { val gea4 = ga.recoverWith(pfegea) } + def testApplicativeErrorSubtype[F[_], A](implicit F: ApplicativeError[F, CharSequence]): Unit = { + val fea = "meow".raiseError[F, A] + } + def testNested[F[_], G[_], A]: Unit = { val fga: F[G[A]] = mock[F[G[A]]]