Соответствие паттерна «возвращаемому» значению
Почему невозможно связать конструкции соответствия шаблону? Например, следующее законно, если бессмысленно,
val a = ADT(5)
val b = a match {
case ADT(a) if a > 4 => ADT(a * 3)
case ADT(a) => ADT(a + 1)
}
b match {
case ADT(a) if a > 13 => doSomething(a)
case _ => {}
}
но следующее не так:
a match {
case ADT(a) if a > 4 => ADT(a * 3)
case ADT(a) => ADT(a + 1)
} match {
case ADT(a) if a > 13 => doSomething(a)
case _ => {}
}
Я подозреваю этопотому что я не долженне делаю это в первую очередь, но в принципе я нене понимаю, почему этоне законно.