0.9.1
0.9.2-SNAPSHOT
Update TreeInterrogation.scala
Avoid NotImplementedError awaiting a Future[Nothing]

`gen.mkZero(NothingTpe)` gives the tree `Predef.???`. Instead, we should leave
 the `await` field uninitialized with `ValDef(..., rhs = EmptyTree)`.

Fixes #66
Fix asymptotic performance issues in live variables analysis.

Fix possibly-exponential runtime for DFS graph searches.
Improve DFA fixpoint algorithm to correctly compute worklist
of only changed nodes for each iteration.

Added test that takes > 2 minutes to compile without these
improvements.
Merge pull request #75 from retronym/ticket/66

Avoid NotImplementedError awaiting a Future[Nothing]
Bump to a non-RC Scala version
Merge pull request #81 from retronym/topic/bump-scala-version

Bump to a non-RC Scala version
Merge pull request #72 from qifun/patch-1

Added the missed s
Fix regression around type skolems and if exprs.

If we start with:

    async({
      val res = await[S[_$1 with String]](s);
      if (true)
        await[Int](0)
      res
    })

Typechecking the application (before macro expansion) yields
(where the trees are printed in the form `expr{tpe}`):

    async[S[_$1#5738 with String#137]]({
      val res: S[_$1#5490 with String] forSome { type _$1#5490 } =
        await[S[_$1#5487 with String]](
          s{S[_$1#5487 with String]}
        ){S[_$1#5487 with String]};
      if (true)
        await(0)
      else
        ()
      res{S[_$1#5738 with String]}
    }{S[_$1#5738 with String]}){S[_$1#5738 with String]}

Note that the type of the second last line contains a skolemized
symbol `_$1#5738` of the existential `_$1#5490`. This is created
by this case in `Typer#adapt`:

    case et @ ExistentialType(_, _) if ((mode & (EXPRmode | LHSmode)) == EXPRmode) =>
      adapt(tree setType et.skolemizeExistential(context.owner, tree), mode, pt, original)

Our ANF rewrites part of this code to:

  <synthetic> val await$1: S[_$1#5487 with String] = await[S[_$1#5487 with String]](awaitable$1);
  val res: S[_$1#5490 with String] forSome { type _$1 } = await$1;

And later, the state machine transformation splits the last line into
a blank field and an assignment. Typechecking the `Assign` node
led to the an type error.

This commit manually attributes the types to the `Assign` node so
as to avoid these problem.

It also reigns in an overeager rewriting of `If` nodes in the
ANF transform, which was due to a bug in the label detection
logic introduced in 4fc5463538.

Thanks to @gnovark for yet another devilish test case and
analysis of the problem with label detection.

I worked on a more principled fix on:

  https://github.com/retronym/async/compare/ticket/79-2?expand=1

in which I try to use `repackExistential` to convert skolemized
types to existentials for use as the types of synthetic vals
introduced by the ANF transform. This ran into a deeper problem
with existential subtyping in the compiler itself though.
Merge pull request #82 from retronym/topic/live-variable-speedup

Fix asymptotic performance issues in live variables analysis.
Merge pull request #80 from retronym/ticket/79

Fix regression around type skolems and if exprs.
Merge remote-tracking branch 'origin/2.10.x' into merge/2.10.x-to-master-20140721

Conflicts:
	src/main/scala/scala/async/internal/AsyncTransform.scala
	src/main/scala/scala/async/internal/Lifter.scala
Merge pull request #84 from retronym/merge/2.10.x-to-master-20140721

Merge 2.10.x to master
Test case for already-fixed NPE with value classes

This progressed along with the fix for #66.

`TreeGen.mkZero` is a bit of a minefield: first with `Nothing` and
now with Value Classes. I wonder if we can provoke the same sort of
bug in the compiler in places where this is used.

Closes #83
Merge pull request #85 from retronym/ticket/83

Test case for already-fixed NPE with value classes
0.9.2 for Scala 2.10
0.9.3-SNAPSHOT
Merge branch '2.10.x'
0.9.2 for Scala 2.11.x