summaryrefslogtreecommitdiff
path: root/test/files/neg/bug1133msg.scala
blob: b4a29aff4d8adf61b78404558ad3674187d7cb2d (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
object Match {
    def someMethod = 5

    def badMethod(s: String) = s match {
      case Extractor1(Extractor2(Extractor3("dog", "dog", "dog"), x2, x3), b, c, Extractor3("b", "b", f), e) => println(e)
      case Extractor3(Extractor2(Extractor1("a", "aa", "aaa", "aa", "a"), Extractor2("a", "aa", "aaa"), e), y, z) => println(e)
      case Extractor2(Extractor3("a", "a", x), Extractor3("b", "b", y), Extractor3("c", "c", z)) => println(z)
      case _ => println("fail")
    }

    def someOtherMethod = 10

    object Extractor1 {
        def unapply(x: Any) = x match {
            case x: String => Some(x, x+x, x+x+x, x+x, x)
            case _ => None
        }
    }

    object Extractor2 {
        def unapply(x: Any) = x match {
            case x: String => Some(x, x+x, x+x+x)
            case _ => None
        }
    }

    object Extractor3 {
        def unapply(x: Any) = x match {
            case x: String => Some(x, x, x)
            case _ => None
        }
    }
}