Merge pull request #1714 from JamesIry/remove_review_script

SI-6770 Removes unused and unusable review scripts
Merge pull request #1702 from scalamacros/topic/idempotency

tests for idempotency issues in the typechecker
SI-6338 fixes the unchecked warning in quick.comp

All those months when I thought it was yet another spurious error
in the new pattern matcher...
SI-5841 reification of renamed imports

Reification of renamed imports is done by catching Selects with name != their tree.symbol.name,
replacing this name with tree.symbol.name, and then doing reifyProduct in case
of renamed terms and reifyBoundType (inner) in case of renamed types.
SI-6746 Fixes MANIFEST.MF package entry (s.r.makro -> s.r.macros)
SI-6766 Create a continuations project in eclipse

We're missing a continuations dependency when we try to build reflect
in eclipse which causes things to die horribly. This commit adds an
eclipse project for the library portion of continuations, makes
projects that depend on the scala-library also depend on
continuations-library, and adds another bullet to the eclipse readme to
turn on the continuations plugin.
Cleanups of reifyBoundTerm and reifyBoundType

Cases in reifyBoundTerm are merged by constructors; conditions in reifyBoundType are linearized;
also, in latter, or-patterns are used to merge some cases;
and some minor stuff not worth mentioning.
Merge pull request #1693 from paulp/name-implicit-removal

Name implicit removal
Merge pull request #1697 from retronym/ticket/6745-2

Don't return unimportables from importedSymbol.
Merge pull request #1680 from jedesah/Seq_doc

Fix typo in documentation for Seq
Merge pull request #1690 from retronym/ticket/6631

SI-6631 Handle invalid escapes in string interpolators
Merge commit 'refs/pull/1717/head' into merge-msil-genjvm-delete

* commit 'refs/pull/1717/head':
  SI-6769 Removes GenJVM backend

Conflicts:
	src/compiler/scala/tools/nsc/backend/jvm/GenAndroid.scala
Merge commit 'refs/pull/1718/head' into merge-msil-genjvm-delete

* commit 'refs/pull/1718/head':
  Expunged the .net backend.

Conflicts:
	build.detach.xml
	build.examples.xml
	build.xml
	project/Build.scala
	src/compiler/scala/tools/ant/Scalac.scala
	src/compiler/scala/tools/nsc/Global.scala
	src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala
	src/compiler/scala/tools/nsc/symtab/clr/TypeParser.scala
	src/compiler/scala/tools/nsc/transform/Mixin.scala
	src/intellij/compiler.iml.SAMPLE
	tools/buildcp
Misc touchup after purging msil/fjbg/genjvm.
Surgery on MANIFEST.MF.

Apparently this thing depends on trailing spaces because
I can't change it in my trailing-space-stripping editor
without the build failing with this informative message:

  BUILD FAILED
  /scala/trunk/build.xml:1403: Existing manifest /scala/trunk/build/pack/META-INF/MANIFEST.MF is invalid

The whole diff between working and not working is whitespace:

--- i/META-INF/MANIFEST.MF
+++ w/META-INF/MANIFEST.MF
@@ -4,11 +4,11 @@ Bundle-Name: Scala Distribution
 Bundle-SymbolicName: org.scala-ide.scala.compiler;singleton:=true
 Bundle-Version: 2.10.0.alpha
 Eclipse-LazyStart: true
-Bundle-ClassPath:
+Bundle-ClassPath:
  .,
  bin,
  lib/jline.jar,
-Export-Package:
+Export-Package:
  scala.tools.nsc,
  scala.tools.nsc.ast,
  scala.tools.nsc.ast.parser,
@@ -45,7 +45,7 @@ Export-Package:
  scala.reflect.runtime,
  scala.reflect.internal.transform,
  scala.reflect.api,
-Require-Bundle:
+Require-Bundle:
  org.apache.ant,
  org.scala-ide.scala.library
-
+
SI-6696 removes "helper" tree factory methods

As experience shows, these methods can easily be a source of confusion
for the newcomers: https://issues.scala-lang.org/browse/SI-6696.

I'm only leaving the TypeTree(tp) factory, since the facility to
set underlying types for type trees is not exposed in the public API,
as it's inherently mutable.
TypeApply + Select and their type-level twins

Documented differences between TypeApply and AppliedTypeTree and
between Select and SelectFromTypeTree.
unifies approaches to call analysis in TreeInfo

Instead of a flurry of methods such as `methPart` or `typeArguments`
to analyze applications, there is a single access point to related info:

  `treeInfo.dissectApplied(tree)`

Dissection returns an instance of the `Applied` class, which can
extract parts of applications and perform other application-specific
operations, e.g. `applyCount`.

For the sake of convenience, there's also an extractor named `Applied`,
which extracts `core`, `targs` and `argss`, where core is everything
except targs and argss. Extractor works for both `Tree` and `Applied`
(in the former case, it's equivalent to first dissecting and pattern
matching).
refactors handling of parent types

At the moment parser does too much w.r.t handling of parent types.
It checks whether a parent can have value arguments or not and
more importantly, it synthesizes constructors and super calls.

This approach is fundamentally incompatible with upcoming type macros.
Take for example the following two snippets of code:

  `class C extends A(2)`
  `class D extends A(2) with B(3)`

In the first snippet, `A` might be a type macro, therefore the super call
`A.super(2)` eagerly emitted by the parser might be meaningless. In the
second snippet parser will report an error despite that `B` might be
a type macro which expands into a trait.

Unfortunately we cannot simply augment the parser with the `isTypeMacro`
check. This is because to find out whether an identifier refers to a type
macro, one needs to perform a typecheck, which the parser cannot do.

Therefore we need a deep change in how parent types and constructors
are processed by the compiler, which is implemented in this commit.
introduces global.pendingSuperCall

Similarly to global.emptyValDef, which is a dummy that stands for an
empty self-type, this commit introduces global.pendingSuperCall, which
stands for a yet-to-be-filled-in call to a superclass constructor.

pendingSuperCall is emitted by Parsers.template, treated specially by
Typers.typedParentType and replaced with a real superclass ctor call
by Typers.typedTemplate.

To avoid copy/paste, this commit also factors out and unifies dumminess
of EmptyTree, emptyValDef and pendingSuperCall - they all don't have a
position and actively refuse to gain one, same story for tpe.