SI-5652 Mangle names of potentially public lambda lifted methods.

This can happen if they are accessed from an inner class. If a
subclass is happens to lift a public method to the same name,
a VerifyError ensues.

The enclosed tests:
 - demonstrate the absense of the VerifyError
 - show the names generated for the lifted methods (which are
   unchanged if not called from an inner class, or if lifted
   into a trait implementation class.)
 - ensure that the callers are rewritten to call the correct
   method when multiple with the same name are lifted.

It's not ideal that this phase needs a priori knowledge of the
later phases to perform this mangling. A better fix would defer
this until the point when the methods are publicised, and leave
the unmangled private method in place and install an public,
mangled forwarder.
SI-4579 Yoke the power of lisp.scala as a stress for the optimizer.

The reported bug was fixed between 2.10.0-M1 and 2.10.0-M2.
SI-5845 Advances the example from a crasher to an inference failure.

The inference failure itself seems like an instance of of SI-3346.

But dependent method types (which triggered the crash), can be employed
to avoid inferring the type constructor CC.

class Num[T] {
  def mkOps = new Ops
  class Ops { def +++(rhs: T) = () }
}

class A {
  implicit def infixOps[T](lhs: T)(implicit num: Num[T]): num.Ops = num.mkOps
  implicit val n1: Num[Int] = new Num[Int] { }
  5 +++ 5
}
don't check exhaustivity involving user-defined unapplySeq
handle approximating alternative of empty pattern
Merge pull request #635 from adriaanm/topic/virtpatmat

fixes for exhaustivity
Merge pull request #636 from retronym/ticket/5845

SI-5845 Advances the example from a crasher to an inference failure.
fix t5843
Implemented functionality to invalidate classpath entries, to enable incremental compiles.
Merge pull request #640 from odersky/topic/inkling

Implemented functionality to invalidate classpath entries
Merge pull request #634 from retronym/ticket/4579

SI-4579 Yoke the power of lisp.scala as a stress for the optimizer.
Merge pull request #638 from lrytz/wip/t5843

fix t5843
Partial redesign of incremental compiler invalidation.

We now do the right thing when packages are either newly created or deleted. Previously there was a problem when a new package was created inside a system package (and, unofrtunately, root is a system package). That's fixed now. We also approximate more tightly now when packages are newly created (iei the newly created symbol gets rescanned, instead of its owner).

Incremental class invalidation: dealing with empty package.

The compiler can now also invalidate the empty package. Previously, no invalidation was done because empty was identified with root, which is considered a system package.

(1) Fixed NPE when creating a new toplevel package in invalidation. (2) generalized interface to deal with multiple entries at a time.
Merge pull request #645 from odersky/topic/inkling-consolidated

Partial redesign of incremental compiler invalidation.
skipping unnecessary work in GenASM when emitting 1.5 classfiles
More robust findScalaHome in bash scripts. See SI-5792

Allows multiple absolute or relative symlinks by jumping through
the directories while following the links.
allows printing .icode files after any optimiz phase
all treemakers need positions for unreachable error
construct typed trees in TypeTestTM
patmatdebug