Move resolver and resolveEither to impl.Promise
more defensive bridging to extractor: consider boolean
fix test so that new patmat is tested
Fix SI-5009: case-class copy method now eta-expands over higher parameter lists.

Example: Given

  case class C(a: Int)(b: Int)

if you call (new C(1)(2)).copy(a = 10)), you get a function (f: Int => C) such
that (f.apply(20)) yields a (new C(10)(20)).
Fix for unnecessary InnerClasses for top-level objects.

Mirror classes (with static forwarders) for top-level
objects would get unnecessary InnerClasses entries
in some cases. See the following comment I introduced
to the place I fixed:

We need to make sure that we do not confuse inner classes
of the class  we mirror with inner classes of the class
we are mirroring. These two sets can be different as
seen in this case:

```scala
 class A {
  class B
  def b: B = new B
 }
 object C extends A
```

Here mirror class of C has a static forwarder for
(inherited) method `b` therefore it refers to class `B`
and needs InnerClasses entry. However, the real class
for `C` (named `C$`) is empty and does not refer to `B`
thus does not need InnerClasses entry it.

NOTE: This logic has been refactored in GenASM and
everything is implemented in a much cleaner way by
having two separate buffers.
fixes a problem with an extractor object overloaded by a regular def
Fix SI-5626.

By not replacing 'CaseClass.apply()' factor by 'new CaseClass()' when the class type 'CaseClass' is not accessible.
Test case closes SI-4124.

This looks like a job for... virtpatmat!
Merge commit 'refs/pull/530/head'; commit 'refs/pull/531/head'; commit 'refs/pull/532/head'; commit 'refs/pull/533/head'; commit 'refs/pull/534/head' into develop
Test case closes SI-5407

It still breaks as described in the ticket under -Xoldpatmat.
cherry-picking important macro fixes from topic/reflection
Another bug bites virtpatmat's dust.

Test case closes SI-5029.
A REPL pattern matching crasher that crashes no more.

Not due to virtpatmat, mind you; it passes with -Xoldpatmat.

Closes SI-4025.
NSDNHAO need not tell us in which version it resides.

This is done for all crashers now. Furthermore, that error report
makes it pretty clear that it's a compiler bug, not user error, so
"this is a bug" seem like needless words.

Resisted the nostalgic temptation to remove the "an".
Confirm extractor based pattern matches don't explode exponentially.

Closes SI-1133, thanks virtpatmat.
Merge remote-tracking branches 'retronym/ticket/5407', 'scalamacros/topic/macrocherrypick', 'lrytz/t5626', 'lrytz/t5009', 'retronym/ticket/5029', 'retronym/ticket/4025', 'retronym/topic/quieter-nsdhnao' and 'retronym/ticket/1133' into develop
Clutch modification to tree printing.

Don't print trees under -Xprint:all if they're identical to the
tree printed at the previous phase.  It only works for a single
compilation unit but that is a huge step forward for us debuggers.
For instance this file:

  trait Foo { def f = 5 }

used to produce 332 lines of output and now produces 92, with
zero loss of information.  It ends with:

  [[syntax trees at end of                   cleanup]] // a.scala: tree is unchanged since mixin
  [[syntax trees at end of                     icode]] // a.scala: tree is unchanged since mixin
  [[syntax trees at end of                   inliner]] // a.scala: tree is unchanged since mixin
  [[syntax trees at end of   inlineExceptionHandlers]] // a.scala: tree is unchanged since mixin
  [[syntax trees at end of                  closelim]] // a.scala: tree is unchanged since mixin
  [[syntax trees at end of                       dce]] // a.scala: tree is unchanged since mixin
  [[syntax trees at end of                       jvm]] // a.scala: tree is unchanged since mixin
Test case closes SI-5037.
Merge branch 'master' of https://github.com/scala/scala
Deprecated some classes.

All this stuff.  I believe most of this is uncontroversial.

  scala/util/Marshal.scala
  scala/util/automata/BaseBerrySethi.scala
  scala/util/automata/DetWordAutom.scala
  scala/util/automata/Inclusion.scala
  scala/util/automata/NondetWordAutom.scala
  scala/util/automata/SubsetConstruction.scala
  scala/util/automata/WordBerrySethi.scala
  scala/util/grammar/HedgeRHS.scala
  scala/util/grammar/TreeRHS.scala
  scala/util/parsing/ast/AbstractSyntax.scala
  scala/util/parsing/ast/Binders.scala
  scala/util/parsing/combinator/testing/RegexTest.scala
  scala/util/parsing/combinator/testing/Tester.scala
  scala/util/parsing/input/Positional.scala
  scala/util/regexp/Base.scala
  scala/util/regexp/PointedHedgeExp.scala
  scala/util/regexp/SyntaxError.scala
  scala/util/regexp/WordExp.scala

I'd have deprecated much of it long ago if the compiler didn't
still depend on it due to xml/dtd/something.  And it still does,
but it's time to deprecate them anyway.