aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/AnfTransform.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-11-24 08:47:38 +0100
committerJason Zaugg <jzaugg@gmail.com>2012-11-24 08:47:38 +0100
commit77fcdb0e5bc5827583566b684a1242326606d0cb (patch)
treeaba2ee57e36c94f81e574164d8c53bcb29a13ce6 /src/main/scala/scala/async/AnfTransform.scala
parent3ef2995f0923fe7b2346cfd5f816196fce0f00ac (diff)
downloadscala-async-77fcdb0e5bc5827583566b684a1242326606d0cb.tar.gz
scala-async-77fcdb0e5bc5827583566b684a1242326606d0cb.tar.bz2
scala-async-77fcdb0e5bc5827583566b684a1242326606d0cb.zip
Cleaner while rewriting
-preserve LabelDef symbols to allow use of Symbol, rather than Names as map keys. -a label jump overwrites the nextState of an AsyncState. This is cleaner than inserting a return { state = 12; resume() }.
Diffstat (limited to 'src/main/scala/scala/async/AnfTransform.scala')
-rw-r--r--src/main/scala/scala/async/AnfTransform.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/main/scala/scala/async/AnfTransform.scala b/src/main/scala/scala/async/AnfTransform.scala
index cf6ed04..9241e7e 100644
--- a/src/main/scala/scala/async/AnfTransform.scala
+++ b/src/main/scala/scala/async/AnfTransform.scala
@@ -205,7 +205,7 @@ private[async] final case class AnfTransform[C <: Context](override val c: C) ex
scrutStats :+ c.typeCheck(attachCopy.Match(tree)(scrutExpr, caseDefs))
case LabelDef(name, params, rhs) if containsAwait =>
- List(LabelDef(name, params, Block(inline.transformToList(rhs), Literal(Constant(())))))
+ List(LabelDef(name, params, Block(inline.transformToList(rhs), Literal(Constant(())))).setSymbol(tree.symbol))
case TypeApply(fun, targs) if containsAwait =>
val funStats :+ simpleFun = inline.transformToList(fun)