aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/t7200.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pending/run/t7200.scala')
-rw-r--r--tests/pending/run/t7200.scala34
1 files changed, 0 insertions, 34 deletions
diff --git a/tests/pending/run/t7200.scala b/tests/pending/run/t7200.scala
deleted file mode 100644
index 8f33d016f..000000000
--- a/tests/pending/run/t7200.scala
+++ /dev/null
@@ -1,34 +0,0 @@
-import language.higherKinds
-
-object Test extends dotty.runtime.LegacyApp {
-
- // Slice of comonad is where this came up
- trait Foo[F[_]] {
- def coflatMap[A, B](f: F[A] => B): F[A] => F[B]
- }
-
- // A non-empty list
- case class Nel[A](head: A, tail: List[A])
-
- object NelFoo extends Foo[Nel] {
-
- // It appears that the return type for recursive calls is not inferred
- // properly, yet no warning is issued. Providing a return type or
- // type arguments for the recursive call fixes the problem.
-
- def coflatMap[A, B](f: Nel[A] => B) = // ok w/ return type
- l => Nel(f(l), l.tail match {
- case Nil => Nil
- case h :: t => {
- val r = coflatMap(f)(Nel(h, t)) // ok w/ type args
- r.head :: r.tail
- }
- })
- }
-
- // Without a recursive call all is well, but with recursion we get a
- // ClassCastException from Integer to Nothing
- NelFoo.coflatMap[Int, Int](_.head + 1)(Nel(1, Nil)) // Ok
- NelFoo.coflatMap[Int, Int](_.head + 1)(Nel(1, List(2))) // CCE
-
-}