scala/scala — pull request #3024 by retronym (2013-10-09 10:00:02+00:00)
Title: SI-7895 Error reporting: avoid cascading, truncation

- Enter error symbols for pattern binders in erroneous constructor patterns.
- issue all errors, rather than just the first, when coming out of the Cone of Silence (aka `Typer#silent`)
- typecheck args with `pt = ErrorType` even if the qualifier is erroneous
- avoid cascading errors in `(x => 0): ErrorType`.

In total:

```
% scalac-hash v2.11.0-M5 sandbox/test.scala
[info] v2.11.0-M5 => /Users/jason/usr/scala-v2.11.0-M5-0-gd6fe890
sandbox/test.scala:2: error: not found: value bong
def booboo = bong + booble + bippity
^
sandbox/test.scala:3: error: not found: value Tuple
Tuple(wizzle, (x, y) => wozzle)
^
sandbox/test.scala:5: error: not found: value Shmist
case Shmist(a, b) => a :: b :: Nil
^
sandbox/test.scala:5: error: not found: value a
case Shmist(a, b) => a :: b :: Nil
^
sandbox/test.scala:5: error: not found: value b
case Shmist(a, b) => a :: b :: Nil
^
sandbox/test.scala:6: error: not found: value Goop
case Goop(a) => s"$a $b"
^
sandbox/test.scala:6: error: not found: value a
case Goop(a) => s"$a $b"
^
7 errors found

% qbin/scalac sandbox/test.scala
sandbox/test.scala:2: error: not found: value bong
def booboo = bong + booble + bippity
^
sandbox/test.scala:2: error: not found: value booble
def booboo = bong + booble + bippity
^
sandbox/test.scala:2: error: not found: value bippity
def booboo = bong + booble + bippity
^
sandbox/test.scala:3: error: not found: value Tuple
Tuple(wizzle, (x, y) => wozzle)
^
sandbox/test.scala:3: error: not found: value wizzle
Tuple(wizzle, (x, y) => wozzle)
^
sandbox/test.scala:3: error: not found: value wozzle
Tuple(wizzle, (x, y) => wozzle)
^
sandbox/test.scala:5: error: not found: value Shmist
case Shmist(a, b) => a :: b :: Nil
^
sandbox/test.scala:6: error: not found: value Goop
case Goop(a) => s"$a $b"
^
sandbox/test.scala:6: error: not found: value b
case Goop(a) => s"$a $b"
^
9 errors found
```

Review by @paulp