sbt-git-plugin has moved.

We need to eliminate these sort of shifting sands to make
the SBT build a viable option.
SI-6641 Cull scala.swing.SwingWorker

It appears to do nothing much at all, refers to the now-deprecated
scala.actor package, and has a name clash with an important class
from java.swing.

Note that the POM for scala-swing does not declare the dependency.

The final nail in the coffin is it aides and abets the crash in
the crash in SI-6440.

Attempts to remove or even deprecate this in 2.10.0 were
missed the boat.

This commit removes them for 2.11.0, in contravention of
the deprecation policy. Given that they rely on the
scala-actors module which _is_ deprecated in 2.10.0,
and will likely be removed in 2.11.0, I contend that
this is a reasonable exception.
Actor.scala
Repl javap decodes various synthetic names for us (fixing SI-6894)

For instance, javap -app Test is equivalent to javap Test$delayedInit$App
with the correct line and iw prepended.  This works by taking Test as a
name in scope, translating that, and then supplying the suffix.

Then javap -fun Test shows Test$$anonfun*, and for member m,
javap -fun Test#m shows Test$$anonfun$$m*.

This also works for classes and values defined in the repl.
javap -fun -raw m shows $line3.$read$$iw$$iw$$anonfun$m$1.

E.g., javap -fun scala.Enumeration obviates knowing or guessing
scala/Enumeration$$anonfun$scala$Enumeration$$populateNameMap$1.class.

Also, scala> :javap -fun scala.Array#concat
but still to do is using imported syms.

Both files and replout are supported for searching for artifacts.

The trigger is detecting the synthetic name (has an interior dollar).

Still to do, filter the output on Test#m to show only m.

Need a way to explore the list of artifacts; ideally, related symbols
would be available reflectively.

Prefer companion class to object, otherwise it's not showable;
for object, require dollar when both exist.

A JavapTest is supplied that is a ReplTest that asserts something about
its output instead of printing it.
Created value class Variance.

This will be instead of passing numbers like -1 and 1 around,
also instead of a variety of named constants like AnyVariance
and CoVariance, and also instead of sometimes using the flags
Flag.COVARIANT and Flag.CONTRAVARIANT for things.

1, 2, 3, go-type-safety-rah!
Incorporated Variance value class in Variances.

No one will ever know what it took for me to refine
Variances into its current condition. A LONELY QUEST.
Relocated redundant variance checking code.

The variance code in Refchecks is 75+% redundant with
our eventually canonical variance traversing code now in
Variances, but as usual it is time consuming to stamp out
this damaging redundancy so for the moment I am simply
moving it into close proximity with def variancesInType
to abet future work.
Moved Variances into SymbolTable.

So I can centralize all the redundant variance code.
Moved VariantTypeMap into Variances.
Functionalization of Variance code.
Eliminated VariantTypeMap.

Made variance tracking a constructor parameter to TypeMap.
Eliminated more variance duplication.
Move escaping local logic into VarianceValidator.
Move isFinalType logic to Symbol.

It's strictly based on the symbol, not the type.
Sweeping up in Variances.
Eliminated redundant validateVariance.

It had repeated all the TypeMap logic. I made it a TypeMap.
Handle variance exclusions in a less ad hoc manner.
Boosted test coverage.
SI-6566, unsoundness with alias variance.

This wasn't as bad as it could have been. All these changes
plug soundness holes in trunk. Mostly we're looking at type
aliases which were merely protected when they had to be
protected[this] not to allow unsound variance crossover.
SI-5378, unsoundness with type bounds in refinements.

As the comment says:

Not enough to look for abstract types; have to recursively check
the bounds of each abstract type for more abstract types. Almost
certainly there are other exploitable type soundness bugs which
can be seen by bounding a type parameter by an abstract type which
itself is bounded by an abstract type.

SPECIAL: BUY ONE UNSOUNDNESS, GET ONE FREE

In refinement types, only the first parameter list of methods
was being analyzed for unsound uses of abstract types. Second
parameter list and beyond had free unsoundness reign. That bug
as well is fixed here.
Renamed isTrackingVariance to trackVariance.
Made "mode" into a value class.

This is an obvious place to apply value class goodness and
collect some safety/sanity in typing modes. It does show off
a challenge in introducing value classes without disruption:
there's no way to deprecate the old signature of 'typed',
'adapt', etc. because they erase the same.

  class Bippy(val x: Int) extends AnyVal
  class A {
    @deprecated("Use a bippy") def f(x: Int): Int = 5
    def f(x: Bippy): Int = x.x
  }

  ./a.scala:5: error: double definition:
  method f:(x: Bippy)Int and
  method f:(x: Int)Int at line 4
  have same type after erasure: (x: Int)Int

An Int => Mode implicit handles most uses, but nothing can
be done to avoid breaking anything which e.g. extends Typer
and overrides typed.