aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/t3880.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/t3880.scala')
-rw-r--r--tests/pos/t3880.scala16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/pos/t3880.scala b/tests/pos/t3880.scala
new file mode 100644
index 000000000..f778eb71a
--- /dev/null
+++ b/tests/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)
+ }
+}