summaryrefslogtreecommitdiff
path: root/test/files/pos
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2016-05-23 17:30:36 -0700
committerAdriaan Moors <adriaan@lightbend.com>2016-05-23 17:30:36 -0700
commit0659af2d180232ab0ec9c2e4230a0057029ad4c2 (patch)
tree2c9297a6d9b6e7b8f81395d6826cb1d7fc89c8e5 /test/files/pos
parent755fff0054cf3946b937bccd5613c6cddc8b9bfe (diff)
parent5faad77ccebb41e9674b103d499de927c0dba662 (diff)
downloadscala-0659af2d180232ab0ec9c2e4230a0057029ad4c2.tar.gz
scala-0659af2d180232ab0ec9c2e4230a0057029ad4c2.tar.bz2
scala-0659af2d180232ab0ec9c2e4230a0057029ad4c2.zip
Merge pull request #5106 from milessabin/topic/hkgadt
SI-9760 Fix for higher-kinded GADT refinement
Diffstat (limited to 'test/files/pos')
-rw-r--r--test/files/pos/hkgadt.scala35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/files/pos/hkgadt.scala b/test/files/pos/hkgadt.scala
new file mode 100644
index 0000000000..5719c752cd
--- /dev/null
+++ b/test/files/pos/hkgadt.scala
@@ -0,0 +1,35 @@
+object HKGADT {
+ sealed trait Foo[F[_]]
+ final case class Bar() extends Foo[List]
+
+ def frob[F[_]](foo: Foo[F]): F[Int] =
+ foo match {
+ case Bar() => List(1)
+ }
+
+ sealed trait Foo1[F]
+ final case class Bar1() extends Foo1[Int]
+ def frob1[A](foo: Foo1[A]): A = foo match {
+ case Bar1() => 1
+ }
+}
+
+object HKGADT2 {
+ sealed trait Foo[F[_]]
+ final case class Bar() extends Foo[List]
+ final case class Baz() extends Foo[Set]
+
+ def frob[F[_]](foo: Foo[F]): F[Int] =
+ foo match {
+ case Bar() => List(1)
+ case Baz() => Set(1)
+ }
+
+ sealed trait Foo1[F]
+ final case class Bar1() extends Foo1[Int]
+ final case class Baz1() extends Foo1[Boolean]
+ def frob1[A](foo: Foo1[A]): A = foo match {
+ case Bar1() => 1
+ case Baz1() => true
+ }
+}