diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-11-13 18:28:45 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-11-13 19:17:12 +0100 |
commit | 32500577c34c2eff39e06620a7027c27be31b9e4 (patch) | |
tree | a4d5b4ecf37640e0b628a01a4901af3d3529c794 /src/main/scala/scala/async/internal/ExprBuilder.scala | |
parent | 2eba82f8b7687dd898b89496451ebb3ae9519692 (diff) | |
download | scala-async-32500577c34c2eff39e06620a7027c27be31b9e4.tar.gz scala-async-32500577c34c2eff39e06620a7027c27be31b9e4.tar.bz2 scala-async-32500577c34c2eff39e06620a7027c27be31b9e4.zip |
Abstract over use of scala.util.Try
Custom implementation of the async macro may choose to use
a different data type to represent `Throwable | A`.
Diffstat (limited to 'src/main/scala/scala/async/internal/ExprBuilder.scala')
-rw-r--r-- | src/main/scala/scala/async/internal/ExprBuilder.scala | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/main/scala/scala/async/internal/ExprBuilder.scala b/src/main/scala/scala/async/internal/ExprBuilder.scala index 16e95dd..85e0953 100644 --- a/src/main/scala/scala/async/internal/ExprBuilder.scala +++ b/src/main/scala/scala/async/internal/ExprBuilder.scala @@ -89,7 +89,7 @@ trait ExprBuilder { val tryGetTree = Assign( Ident(awaitable.resultName), - TypeApply(Select(Select(Ident(symLookup.applyTrParam), Try_get), newTermName("asInstanceOf")), List(TypeTree(awaitable.resultType))) + TypeApply(Select(futureSystemOps.tryyGet[T](Expr[futureSystem.Tryy[T]](Ident(symLookup.applyTrParam))).tree, newTermName("asInstanceOf")), List(TypeTree(awaitable.resultType))) ) /* if (tr.isFailure) @@ -101,12 +101,12 @@ trait ExprBuilder { * } */ val ifIsFailureTree = - If(Select(Ident(symLookup.applyTrParam), Try_isFailure), + If(futureSystemOps.tryyIsFailure(Expr[futureSystem.Tryy[T]](Ident(symLookup.applyTrParam))).tree, futureSystemOps.completeProm[T]( Expr[futureSystem.Prom[T]](symLookup.memberRef(name.result)), - Expr[scala.util.Try[T]]( + Expr[futureSystem.Tryy[T]]( TypeApply(Select(Ident(symLookup.applyTrParam), newTermName("asInstanceOf")), - List(TypeTree(weakTypeOf[scala.util.Try[T]]))))).tree, + List(TypeTree(futureSystemOps.tryType[T]))))).tree, Block(List(tryGetTree, mkStateTree(nextState, symLookup)), mkResumeApply(symLookup)) ) @@ -325,7 +325,7 @@ trait ExprBuilder { val lastState = asyncStates.last val lastStateBody = Expr[T](lastState.body) val rhs = futureSystemOps.completeProm( - Expr[futureSystem.Prom[T]](symLookup.memberRef(name.result)), reify(scala.util.Success[T](lastStateBody.splice))) + Expr[futureSystem.Prom[T]](symLookup.memberRef(name.result)), futureSystemOps.tryySuccess[T](lastStateBody)) mkHandlerCase(lastState.state, rhs.tree) } asyncStates.toList match { @@ -368,7 +368,7 @@ trait ExprBuilder { Apply(Ident(defn.NonFatalClass), List(Ident(name.t))), { val t = Expr[Throwable](Ident(name.t)) futureSystemOps.completeProm[T]( - Expr[futureSystem.Prom[T]](symLookup.memberRef(name.result)), reify(scala.util.Failure(t.splice))).tree + Expr[futureSystem.Prom[T]](symLookup.memberRef(name.result)), futureSystemOps.tryyFailure[T](t)).tree })), EmptyTree)) /** |