aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/ExprBuilder.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-08-21 23:29:11 +0200
committerJason Zaugg <jzaugg@gmail.com>2013-08-22 17:24:38 +0200
commit98e2f26000aaaf5abb527f776426c4759b95cde8 (patch)
tree03dbf931b87f952286febbf8bced6ca735b5c2a5 /src/main/scala/scala/async/internal/ExprBuilder.scala
parent8371f480ca6783ea52aa76f4990eed101938c224 (diff)
downloadscala-async-98e2f26000aaaf5abb527f776426c4759b95cde8.tar.gz
scala-async-98e2f26000aaaf5abb527f776426c4759b95cde8.tar.bz2
scala-async-98e2f26000aaaf5abb527f776426c4759b95cde8.zip
Use @uncheckedBounds to avoid introducing refchecks errors
... in code that would otherwise have smuggled through these slack LUBs in the types of trees but never in a TypeTree. More details in SI-7694. Fixes #29
Diffstat (limited to 'src/main/scala/scala/async/internal/ExprBuilder.scala')
-rw-r--r--src/main/scala/scala/async/internal/ExprBuilder.scala8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main/scala/scala/async/internal/ExprBuilder.scala b/src/main/scala/scala/async/internal/ExprBuilder.scala
index e0da874..f43d1cb 100644
--- a/src/main/scala/scala/async/internal/ExprBuilder.scala
+++ b/src/main/scala/scala/async/internal/ExprBuilder.scala
@@ -284,7 +284,7 @@ trait ExprBuilder {
def onCompleteHandler[T: WeakTypeTag]: Tree
- def resumeFunTree[T]: DefDef
+ def resumeFunTree[T: WeakTypeTag]: DefDef
}
case class SymLookup(stateMachineClass: Symbol, applyTrParam: Symbol) {
@@ -303,12 +303,12 @@ trait ExprBuilder {
new AsyncBlock {
def asyncStates = blockBuilder.asyncStates.toList
- def mkCombinedHandlerCases[T]: List[CaseDef] = {
+ def mkCombinedHandlerCases[T: WeakTypeTag]: List[CaseDef] = {
val caseForLastState: CaseDef = {
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(lastStateBody.splice)))
+ Expr[futureSystem.Prom[T]](symLookup.memberRef(name.result)), reify(scala.util.Success[T](lastStateBody.splice)))
mkHandlerCase(lastState.state, rhs.tree)
}
asyncStates.toList match {
@@ -337,7 +337,7 @@ trait ExprBuilder {
* }
* }
*/
- def resumeFunTree[T]: DefDef =
+ def resumeFunTree[T: WeakTypeTag]: DefDef =
DefDef(Modifiers(), name.resume, Nil, List(Nil), Ident(definitions.UnitClass),
Try(
Match(symLookup.memberRef(name.state), mkCombinedHandlerCases[T]),