fix Right,Left and Either scaladoc links
SI-5956 trigger copy generation with correct namer

the call to `addCopyMethod` passes `templateNamer`, which is supposed to be the
namer of the case class template. with two classes of the same name, `addCopyMethod`
was triggered in the wrong template.
Merge pull request #892 from xuwei-k/either-scaladoc

fix Right,Left and Either scaladoc links
Squashed critical enhancements to SIP-14: daemonizing global EC, giving EC to DelayedLazyVal, removing currentExecutionContext, removing impl.Future.isFutureThrowable, implementing asExecutionContext, giving a decent fallback if ForkJoinPool cannot be created
Fixing oversight in propagating the runnable into the newly created thread.
Changing to scala.concurrent.context. as namespace for the system properties for the global execution context
Merge pull request #900 from viktorklang/2.10.x

critical enhancements to SIP-14
Merge pull request #902 from paulp/topic/name-implicits

Implicits to encourage more Name-dropping.
changed line endings in GenASM from Windows to Unix
With -Yno-generic-signatures, exit GenASM.getGenericSignature early

This allows using -Yno-generic-signatures as a workaround for SI-4365.
updated intellij project files
Partest: add `instrumented` test category.

---
(taken from README)

Tests in `instrumented/` directory are executed the same way as in `run/` but
they have additional byte-code instrumentation performed for profiling. You
should put your tests in `instrumented/` directory if you are interested in
method call counts. Examples include tests for specialization (you want to
count boxing and unboxing method calls) or high-level tests for optimizer
where you are interested if methods are successfuly inlined (so they should
not be called at runtime) or closures are eliminated (so no constructors
of closures are called).

Check `scala.tools.partest.instrumented.Instrumentation` to learn how to
use the instrumentation infrastructure.

The instrumentation itself is achieved by attaching a Java agent to the
forked VM process that injects calls to profiler. Check
`scala.tools.partest.javaagent.ProfilingAgent` for details.

---

A few notes on low-level details of this change:

  * Partest now depends on asm library for byte-code instrumentation
    (`build.xml`)
  * Build additional jar called `scala-partest-javaagent.jar` that is
    used with `-javaagent:` option. (`build.xml`)
  * Set `-javaagent:` option for all tests in `instrumented/` directory.
    (`RunnerManger.scala`)
  * Introduce a new category of tests called `instrumented`.
  * Add one instrumented test to demonstrate usage and test new
    infrastructure itself. (`InstrumentationTest.scala`)

Review by @phaller.
SI-6011 switches: unreachability, guard-free form

A complete overhaul. The original implementation in SI-5830 (#821) was pretty buggy.

[from the doc comment of `collapseGuardedCases`:]

Collapse guarded cases that switch on the same constant (the last case may be unguarded).

Cases with patterns A and B switch on the same constant iff for all values x that match A also match B and vice versa.
(This roughly corresponds to equality on trees modulo alpha renaming and reordering of alternatives.)

The rewrite only applies if some of the cases are guarded (this must be checked before invoking this method).

The rewrite goes through the switch top-down and merges each case with the subsequent cases it is implied by
(i.e. it matches if they match, not taking guards into account)

If there are no unreachable cases, all cases can be uniquely assigned to a partition of such 'overlapping' cases,
save for the default case (thus we jump to it rather than copying it several times).
(The cases in a partition are implied by the principal element of the partition.)

The overlapping cases are merged into one case with their guards pushed into the body as follows
(with P the principal element of the overlapping patterns Pi):

   `{case Pi if(G_i) => B_i }*` is rewritten to `case P => {if(G_i) B_i}*`

The rewrite fails (and returns Nil) when:
  (1) there is a subsequence of overlapping cases that has an unguarded case in the middle;
      only the last case of each subsequence of overlapping cases may be unguarded (this is implied by unreachability)

  (2) there are overlapping cases that differ (tested by `caseImpliedBy`)
      cases with patterns A and B are overlapping if for SOME value x, A matches x implies B matches y OR vice versa  <-- note the difference with case equality defined above
      for example `case 'a' | 'b' =>` and `case 'b' =>` are different and overlapping (overlapping and equality disregard guards)

Improved by @retronym's feedback in the following ways:
  - fix patternEquals (it's now quadratic, but correct)
  - update neg/t6011 to test the improved patternEquals
  - remove side-effect-in-condition ugliness
  - introduce isGuardedCase
  - docs & various code clarity

Also closes SI-6048 (duplicate).
Merge pull request #907 from lrytz/ynogen

With -Yno-generic-signatures, exit GenASM.getGenericSignature early
Merge pull request #897 from lrytz/t5956

SI-5956 trigger copy generation with correct namer
Merge pull request #876 from adriaanm/ticket-6011b

SI-6011 switches: unreachability, guard-free form
Merge pull request #913 from gkossakowski/partest-instrumented

Partest: add `instrumented` test category.
Merge pull request #908 from lrytz/intellij

updated intellij project files
SI-6086 magic symbols strike back

Some of the symbols inside the compiler get created on the fly,
because there are no physical entities in classfiles corresponding to them.

This curious fact needs to be taken into account when loading symbols,
so that the magic symbols get correctly loaded by reflective mirrors.

magicSymbols (as defined in Definitions.scala) include not only
top-level classes, but some other stuff (e.g. String_+ or methods on Any).
Hence a filtering was done to exclude the stuff that's irrelevant
to reflective symbol loading.

Unfortunately a filter was configured to accept only _.isClass,
which consequently ruled out scala.AnyRef (that is a type alias).