From 1148daec9c6aeba69d5d37fde877ab20b310db5b Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Thu, 30 Sep 2010 20:53:04 +0000 Subject: Still giddy with the thrill of fixing #266, I v... Still giddy with the thrill of fixing #266, I vanquish another pattern matcher bug from the dawn of time. If you've always wanted to write code like this: class Bob[K[_]] { def foo(other: Any) = other match { case x: (Bob[X] forSome { type X[_] }) => } } Now is your chance. Closes #1427, review by moors. (Is there a better way to "shake off" the pattern existential?) --- test/files/run/bug1427.scala | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 test/files/run/bug1427.scala (limited to 'test/files') diff --git a/test/files/run/bug1427.scala b/test/files/run/bug1427.scala new file mode 100644 index 0000000000..ab0a42c7b7 --- /dev/null +++ b/test/files/run/bug1427.scala @@ -0,0 +1,15 @@ +class Bob[K[_]] { + def foo(other: Any) = other match { + case x: (Bob[X] forSome { type X[_] }) => true + case _ => false + } +} + +object Test { + def main(args: Array[String]): Unit = { + val x = new Bob[List] + val results = List(x, new Bob[Set], 55) map (x foo _) + + assert(results == List(true, true, false)) + } +} -- cgit v1.2.3