Fix typo in documentation for Seq
Fix for SI-6731, dropped trees in selectDynamic.

I rewrote mkInvoke entirely, and boosted the test coverage.
Asserts about Tree qualifiers.

Encoding recent revelations about certain tree invariants
in the form of asserts.
Test cases for SI-5726, SI-5733, SI-6320, SI-6551, SI-6722.

All tickets involving selectDynamic fixed by the prior commit.
It also fixes SI-6663, but that already has a test case.
SI-6631 Handle invalid escapes in string interpolators

Patch contributed by Rex Kerr.
Fix Scaladoc for the raw interpolator.

The comment about unicode escaping fell into
the very same trap that it was warning about.
Merge pull request #1682 from paulp/assert-about-qualifier

Asserts about Tree qualifiers.
tests for idempotency issues in the typechecker

For more details see https://issues.scala-lang.org/browse/SI-5464.

Check files are intentionally very precise, so that we can monitor
how the situation changes over time.
Merge pull request #1681 from paulp/issue/6731

Fix for SI-6731, dropped trees in selectDynamic.
Merge pull request #1702 from scalamacros/topic/idempotency

tests for idempotency issues in the typechecker
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.
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
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.
evicts assert(false) from the compiler
DummyTree => CannotHaveAttrs

This looks like a much more specific name than a generic "dummy" prefix.
CannotHaveAttrs also doesn't imply that an implementing tree should
satisfy some bigger contract. EmptyTree and emptyValDef are very unlike
each other, so there's no point in trying to unify them.

Also DummyTree.isEmpty is no longer automatically true. The notion of
trees not having positions and types by design (i.e. EmptyTree + empty
TypeTrees + emptyValDef + the new pendingSuperCall) is quite different
from the notion of an empty tree in a sense of a tree being a null object
(i.e. EmptyTree + empty TypeTrees).