don't translate matches in the IDE
fail gracefully on very messed up source files
updated tests now matches aren't translated if forInteractive
Added a Presentation Compiler test for hyperlinking.

This test ensures hyperlinking works inside and around pattern matching. The new virtual pattern matcher
synthesizes trees that are not properly nested, and whose positions make it impossible to retrieve the correct
tree/symbol for a given position. Therefore, the current test is using the old pattern matcher. However,
once the virtual pattern matcher is fixed, remove the corresponding line from patmat.flags to re-enable virtpatmat.
Some long overdue conveniences.

Not just conveniences though.  One of the clearest statements made
by profiling is that collections methods of the form of the enclosed
flatCollect are materially faster than the alternatives.
Minor tweaks to reifier logic.

Nothing too major, please see the comment.
Merge commit 'refs/pull/437/head'; commit 'refs/pull/438/head' into develop
removes Expr <-> Tree implicits
fixes SI-5693
diagnostics for SI-5692
Merge commit 'refs/pull/439/head'; commit 'refs/pull/440/head'; commit 'refs/pull/441/head' into develop
Reverts 211df62491 .

A strange blip in the benchmarks makes me wish to see
this on the sidelines.
More style tips for team macros.
Trying to set an example in the land of macros.

Hopefully there are useful examples to be had in here.
Please note that you should never be testing "x.size != 0",
use isEmpty or nonEmpty.  Even if these happen to be small
collections, it's not a habit you want to form: size is O(n)
on a number of collections.  (Most pointedly, Lists.)
cleaning up macros, one step at a time
SI-5690: no-selector match in function yields function

the implicit beta-reduction performed by typedFunction on a Function(.., Match(EmptyTree, ...))
must of course only be done when the selector actually is empty...

(yes, typedMatchAnonFun needs to be cleaned up, I know)
clean up typedMatchAnonFun
A brand new, fast classfile parser.

Try it: ./tools/dump-class ./build/quick/classes

The output is intended to be easy to filter on the command line.
This is a starting point for lots of interesting bytecode analysis
for which we have waited too long.

Example.  All generic signatures we produce.

  // almost 20K classfiles
  % find build/quick/classes -name '*.class' |wc -l
      18519

  // fully parsed in 6 seconds
  tools/dump-class build/quick/classes |grep "^  signature" | wc -l
      50802

  real	0m6.230s

It's designed to be easy to make faster if you don't care about
particular classfile bits; you can override those methods to jump
forward in the input stream rather than building a structure.
For just a little sampling, here are our most frequently
repeated name/signature combinations.

194   signature               <init>  ()V   // this one is weird, wonder why there's a generic signature
115   signature    $div$colon$bslash  <A1:Ljava/lang/Object;>(TA1;Lscala/Function2<TA1;TA1;TA1;>;)TA1;
105   signature          applyOrElse  <A1:Ljava/lang/Object;B1:Ljava/lang/Object;>(TA1;Lscala/Function1<TA1;TB1;>;)TB1;
103   signature                 view  ()Ljava/lang/Object;
101   signature                toSet  <B:Ljava/lang/Object;>()Lscala/collection/immutable/Set<TB;>;

And the top five name/descriptor combinations.

11170   descriptor           <clinit>  ()V
10155   descriptor   serialVersionUID  J
7130   descriptor              apply  (Ljava/lang/Object;)Ljava/lang/Object;
3028   descriptor              apply  ()Ljava/lang/Object;
2426   descriptor             <init>  ()V
Better position printing in NodePrinters.

Try this unreasonably long command line:

scalac -Xprint-pos -Yshow-trees -Xprint:all -Yrangepos *.scala
SI-5702 Pattern parser halts on star

In patterns, the parser halts when it sees stars.
This means it does not handle infix notation for a case class
named "*".  This patch uses lookahead to decide whether to parse
'_' '*' as a sequence pattern or as the start of infix.
(For both normal and error cases, the tokens are always consumed
immediately.) Error messages are improved for _* (as a help to learners)
and slightly improved recovery helps the parse continue.
The entry point for XML patterns is now distinct; otherwise,
the change is local to pattern3-simplepattern; the entry point
for simplepattern() is unchanged because it is commented
"hook for IDE."