Фича паттерн матчера. Причем это не дешугаринг, а полноценная часть AST:
https://github.com/scalamacros/kepler/blob/topic/typemacros/src/reflect/scala/reflect/api/Trees.scala#L1146.
09:29 ~/Projects/Kepler_pre-typemacros/sandbox (topic/pre-typemacros)$ cat Test.scala class Test {
List(1, 2) match {
case foo @ List(1, y) =>
}
}
09:29 ~/Projects/Kepler_pre-typemacros/sandbox (topic/pre-typemacros)$ scalac -Xprint:parser -Yshow-trees-compact Test.scala
[[syntax trees at end of parser]]// Scala source: Test.scala
PackageDef(Ident(newTermName("<empty>")), List(ClassDef(Modifiers(), newTypeName("Test"), List(), Template(List(Select(Ident(scala), newTypeName("AnyRef"))), emptyValDef, List(DefDef(Modifiers(), nme.CONSTRUCTOR, List(), List(List()), TypeTree(), Block(List(pendingSuperCall), Literal(Constant(())))), Match(Apply(Ident(newTermName("List")), List(Literal(Constant(1)), Literal(Constant(2)))), List(CaseDef(Bind(newTermName("foo"), Apply(Ident(newTermName("List")), List(Literal(Constant(1)), Bind(newTermName("y"), Ident(nme.WILDCARD))))), EmptyTree, Literal(Constant(()))))))))))