diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2012-11-24 08:47:38 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2012-11-24 08:47:38 +0100 |
commit | 77fcdb0e5bc5827583566b684a1242326606d0cb (patch) | |
tree | aba2ee57e36c94f81e574164d8c53bcb29a13ce6 /src/main/scala/scala/async/AnfTransform.scala | |
parent | 3ef2995f0923fe7b2346cfd5f816196fce0f00ac (diff) | |
download | scala-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.scala | 2 |
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) |