diff options
author | Paul Phillips <paulp@improving.org> | 2010-09-30 20:53:04 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-09-30 20:53:04 +0000 |
commit | 1148daec9c6aeba69d5d37fde877ab20b310db5b (patch) | |
tree | 0e5293ca55a211083c46ad644faf5fe56334bab4 /test | |
parent | d3c453d15c318c7c8da73d6a2ea2ae59a14da196 (diff) | |
download | scala-1148daec9c6aeba69d5d37fde877ab20b310db5b.tar.gz scala-1148daec9c6aeba69d5d37fde877ab20b310db5b.tar.bz2 scala-1148daec9c6aeba69d5d37fde877ab20b310db5b.zip |
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?)
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/bug1427.scala | 15 |
1 files changed, 15 insertions, 0 deletions
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)) + } +} |