|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the common case when someone hasn't quite grokked
the significance of lower case in a pattern match. I'd
like to make all the unreachables errors, not warnings,
but there may be a bug or two to clear out first.
class A {
def badEquals(x: Any, y: Any) = x match {
case y => true
case _ => false
}
}
a.scala:3: warning: patterns after a variable pattern cannot match (SLS 8.1.1)
If you intended to match against parameter y of method badEquals, you must use backticks, like: case `y` =>
case y => true
^
a.scala:4: warning: unreachable code due to variable pattern 'y' on line 3
case _ => false
^
two warnings found
|
|
one long-standing bug which actually had a test case testing its
bugginess (which is to say, when I fixed the bug, the test case failed.)
This:
- def doMatch4(xs:Seq[Char]) = xs match {
- case Seq(x, y, _*) => x::y::Nil
- case Seq(x, y, z, w) => List(z,w) // redundant!
- }
...should never have compiled - which must have been recognized
on some level given the "redundant!" comment, but it never made
it into neg/.
|