diff options
-rw-r--r-- | build.sbt | 4 | ||||
-rw-r--r-- | src/main/scala/scala/async/Async.scala | 2 | ||||
-rw-r--r-- | src/main/scala/scala/async/AsyncAnalysis.scala | 2 | ||||
-rw-r--r-- | src/main/scala/scala/async/ExprBuilder.scala | 12 |
4 files changed, 10 insertions, 10 deletions
@@ -1,6 +1,6 @@ -scalaVersion := "2.10.0" +scalaVersion := "2.10.1" -organization := "org.typesafe.async" +organization := "org.typesafe.async" // TODO new org name under scala-lang. name := "scala-async" diff --git a/src/main/scala/scala/async/Async.scala b/src/main/scala/scala/async/Async.scala index 12fe428..8323ac5 100644 --- a/src/main/scala/scala/async/Async.scala +++ b/src/main/scala/scala/async/Async.scala @@ -152,7 +152,7 @@ abstract class AsyncBase { else { Block(List[Tree]( stateMachine, - ValDef(NoMods, name.stateMachine, stateMachineType, New(Ident(name.stateMachineT), Nil)), + ValDef(NoMods, name.stateMachine, stateMachineType, Apply(Select(New(Ident(name.stateMachineT)), nme.CONSTRUCTOR), Nil)), futureSystemOps.spawn(Apply(selectStateMachine(name.apply), Nil)) ), futureSystemOps.promiseToFuture(c.Expr[futureSystem.Prom[T]](selectStateMachine(name.result))).tree) diff --git a/src/main/scala/scala/async/AsyncAnalysis.scala b/src/main/scala/scala/async/AsyncAnalysis.scala index 9184960..4f55f1b 100644 --- a/src/main/scala/scala/async/AsyncAnalysis.scala +++ b/src/main/scala/scala/async/AsyncAnalysis.scala @@ -159,7 +159,7 @@ private[async] final case class AsyncAnalysis[C <: Context](c: C, asyncBase: Asy nextChunk() case vd: ValDef => super.traverse(tree) - valDefChunkId += (vd.symbol ->(vd, chunkId)) + valDefChunkId += (vd.symbol -> (vd -> chunkId)) val isPatternBinder = vd.name.toString.contains(name.bindSuffix) if (isAwait(vd.rhs) || isPatternBinder) valDefsToLift += vd case as: Assign => diff --git a/src/main/scala/scala/async/ExprBuilder.scala b/src/main/scala/scala/async/ExprBuilder.scala index 180e7b9..adb6b3d 100644 --- a/src/main/scala/scala/async/ExprBuilder.scala +++ b/src/main/scala/scala/async/ExprBuilder.scala @@ -33,7 +33,7 @@ private[async] final case class ExprBuilder[C <: Context, FS <: FutureSystem](c: final def body: c.Tree = stats match { case stat :: Nil => stat - case _ => Block(stats: _*) + case init :+ last => Block(init, last) } } @@ -94,8 +94,8 @@ private[async] final case class ExprBuilder[C <: Context, FS <: FutureSystem](c: c.Expr[scala.util.Try[T]]( TypeApply(Select(Ident(name.tr), newTermName("asInstanceOf")), List(TypeTree(weakTypeOf[scala.util.Try[T]]))))).tree, - Block(List(tryGetTree, mkStateTree(nextState), mkResumeApply): _*) - ) + Block(List(tryGetTree, mkStateTree(nextState), mkResumeApply), c.literalUnit.tree) + ) Some(mkHandlerCase(state, List(ifIsFailureTree))) } @@ -146,7 +146,7 @@ private[async] final case class ExprBuilder[C <: Context, FS <: FutureSystem](c: // 1. build changed if-else tree // 2. insert that tree at the end of the current state val cond = renameReset(condTree) - def mkBranch(state: Int) = Block(mkStateTree(state), mkResumeApply) + def mkBranch(state: Int) = Block(mkStateTree(state) :: Nil, mkResumeApply) this += If(cond, mkBranch(thenState), mkBranch(elseState)) new AsyncStateWithoutAwait(stats.toList, state) } @@ -177,7 +177,7 @@ private[async] final case class ExprBuilder[C <: Context, FS <: FutureSystem](c: } def resultWithLabel(startLabelState: Int): AsyncState = { - this += Block(mkStateTree(startLabelState), mkResumeApply) + this += Block(mkStateTree(startLabelState) :: Nil, mkResumeApply) new AsyncStateWithoutAwait(stats.toList, state) } @@ -387,7 +387,7 @@ private[async] final case class ExprBuilder[C <: Context, FS <: FutureSystem](c: Assign(Ident(name.state), c.literal(nextState).tree) private def mkHandlerCase(num: Int, rhs: List[c.Tree]): CaseDef = - mkHandlerCase(num, Block(rhs: _*)) + mkHandlerCase(num, Block(rhs, c.literalUnit.tree)) private def mkHandlerCase(num: Int, rhs: c.Tree): CaseDef = CaseDef(c.literal(num).tree, EmptyTree, rhs) |