diff options
author | phaller <philipp.haller@typesafe.com> | 2012-11-05 11:31:50 +0100 |
---|---|---|
committer | phaller <philipp.haller@typesafe.com> | 2012-11-05 11:31:50 +0100 |
commit | fc6a492c67d92c42070767df427feeafa4abc16b (patch) | |
tree | b7fe63f0290862e0e9a1b5deba1de34042672ae0 /src/async/library/scala/async/ExprBuilder.scala | |
parent | e804afe144a05f6d950b8a758e3b116fa19a3afc (diff) | |
download | scala-async-fc6a492c67d92c42070767df427feeafa4abc16b.tar.gz scala-async-fc6a492c67d92c42070767df427feeafa4abc16b.tar.bz2 scala-async-fc6a492c67d92c42070767df427feeafa4abc16b.zip |
Simplify AsyncBlockBuilder.mkHandlerExpr
Diffstat (limited to 'src/async/library/scala/async/ExprBuilder.scala')
-rw-r--r-- | src/async/library/scala/async/ExprBuilder.scala | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/async/library/scala/async/ExprBuilder.scala b/src/async/library/scala/async/ExprBuilder.scala index c0ebe69..4eb06e9 100644 --- a/src/async/library/scala/async/ExprBuilder.scala +++ b/src/async/library/scala/async/ExprBuilder.scala @@ -474,23 +474,13 @@ class ExprBuilder[C <: Context with Singleton](val c: C) extends AsyncUtils { def mkHandlerExpr(): c.Expr[PartialFunction[Int, Unit]] = { assert(asyncStates.size > 1) - var handlerTree = - if (asyncStates.size > 2) asyncStates(0).mkHandlerTreeForState() - else asyncStates(0).mkHandlerTreeForState() var handlerExpr = - c.Expr(handlerTree).asInstanceOf[c.Expr[PartialFunction[Int, Unit]]] + c.Expr(asyncStates(0).mkHandlerTreeForState()).asInstanceOf[c.Expr[PartialFunction[Int, Unit]]] if (asyncStates.size == 2) handlerExpr - else if (asyncStates.size == 3) { - val handlerTreeForLastState = asyncStates(1).mkHandlerTreeForState() - val currentHandlerTreeNaked = c.resetAllAttrs(handlerExpr.tree.duplicate) - c.Expr( - Apply(Select(currentHandlerTreeNaked, newTermName("orElse")), - List(handlerTreeForLastState))).asInstanceOf[c.Expr[PartialFunction[Int, Unit]]] - } else { // asyncStates.size > 3 - // do not traverse first or last state: asyncStates.tail.init - for (asyncState <- asyncStates.tail.init) { + else { + for (asyncState <- asyncStates.tail.init) { // do not traverse first or last state val handlerTreeForNextState = asyncState.mkHandlerTreeForState() val currentHandlerTreeNaked = c.resetAllAttrs(handlerExpr.tree.duplicate) handlerExpr = c.Expr( |