diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-08-21 23:29:11 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-08-22 17:24:38 +0200 |
commit | 98e2f26000aaaf5abb527f776426c4759b95cde8 (patch) | |
tree | 03dbf931b87f952286febbf8bced6ca735b5c2a5 /src/main/scala/scala/async/internal/ExprBuilder.scala | |
parent | 8371f480ca6783ea52aa76f4990eed101938c224 (diff) | |
download | scala-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.scala | 8 |
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]), |