summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-05-20 17:48:28 +0200
committerJason Zaugg <jzaugg@gmail.com>2012-05-20 17:48:28 +0200
commitd046b9a6f2614e8dcaaef89a2733e4acf9755266 (patch)
treeae3b3767115a941fdcce4bba54c8314f0bf8131c /test/files
parent1f5584fbe183041d4af269278f0125e2f0b94a44 (diff)
downloadscala-d046b9a6f2614e8dcaaef89a2733e4acf9755266.tar.gz
scala-d046b9a6f2614e8dcaaef89a2733e4acf9755266.tar.bz2
scala-d046b9a6f2614e8dcaaef89a2733e4acf9755266.zip
Test case closes SI-3880.
virtpatmat ftw.
Diffstat (limited to 'test/files')
-rw-r--r--test/files/pos/t3880.scala16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/files/pos/t3880.scala b/test/files/pos/t3880.scala
new file mode 100644
index 0000000000..b6f06c43a3
--- /dev/null
+++ b/test/files/pos/t3880.scala
@@ -0,0 +1,16 @@
+abstract class Bar[+B] {
+}
+abstract class C1[+B] extends Bar[B] {
+ private[this] def g(x: C1[B]): Unit = ()
+
+ // this method is fine: notice that it allows the call to g,
+ // which requires C1[B], even though we matched on C1[_].
+ // (That is good news.)
+ private[this] def f1(x: Bar[B]): Unit = x match {
+ case x: C1[_] => g(x)
+ }
+ // this one crashes.
+ private[this] def f2(x: Bar[B]): Unit = x match {
+ case x: C1[_] => f2(x)
+ }
+} \ No newline at end of file