aboutsummaryrefslogblamecommitdiff
path: root/tests/pos/t3880.scala
blob: f778eb71a81ac8a14953d4156252c5f25cbdc972 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)
  }
}