aboutsummaryrefslogtreecommitdiff
path: root/tests/patmat/patmat-ortype.scala
blob: c7419acd3b0f1cd5ac133b0abd9d2e0a3e11824e (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
34
35
36
37
38
39
40
object PatmatOrType {

  def foo1(x: Int | Double) = x match {
    case _: Int => true
    case _: Double => true
  }

  def foo2a(x: Int | Double | String) = x match { // _: String not matched
    case _: Int => true
    case _: Double => true
  }

  def foo2b(x: Int | Double | String) = x match {
    case _: Int => true
    case _: (Double | String) => true
  }

  def foo3(x: Option[Int | Double | String]) = x match { // warning: None, Some(_: String) not matched
    case Some(_: Int) => true
    case Some(_: Double) => true
  }

  def foo4(x: Option[Int | Double | String]) = x match {
    case Some(_: Int) => true
    case Some(_: Double) => true
    case Some(_: String) => true
    case None => false
  }

  def foo5a(x: Option[Int | Double | String]) = x match {
    case Some(_: (Int | Double)) => true
    case Some(_: String) => true
    case None => false
  }

  def foo5b(x: Option[Int | Double | String]) = x match { // warning: Some(_: String) not matched
    case Some(_: (Int | Double)) => true
    case None => false
  }
}