blob: c68c33d654719204486b367888c440c3043395af (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
sealed trait Foo
class Bar1 extends Foo
class Bar2 extends Foo
class Bar3 extends Foo
// these extractors are known to always succeed as they return a Some
object Baz1 {
def unapply(x: Bar1): Some[Int] = Some(1)
}
object Baz2 {
def unapply(x: Bar2): Some[Int] = Some(2)
}
object Test {
// warning: missing Bar3
def f1(x: Foo) = x match {
case _: Bar1 => 1
case _: Bar2 => 2
}
// warning: missing Bar3
def f2(x: Foo) = x match {
case _: Bar1 => 1
case Baz2(x) => x
}
// warning: missing Bar3
def f3(x: Foo) = x match {
case Baz1(x) => x
case Baz2(x) => x
}
}
|