diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2014-07-21 12:28:51 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2014-07-21 12:28:51 +0200 |
commit | 154a2d7d7fab1b6db940a01c212c8de0138ae930 (patch) | |
tree | 8558bd00a0553c71a3341e0bf749e40cec9e1558 /src/main/scala/scala/async | |
parent | 75ef24db7c9de170681d28a48f3e3ec2a47f7292 (diff) | |
parent | 1df849070694756533003c9c331cd04d0c3136e8 (diff) | |
download | scala-async-154a2d7d7fab1b6db940a01c212c8de0138ae930.tar.gz scala-async-154a2d7d7fab1b6db940a01c212c8de0138ae930.tar.bz2 scala-async-154a2d7d7fab1b6db940a01c212c8de0138ae930.zip |
Merge pull request #80 from retronym/ticket/79
Fix regression around type skolems and if exprs.
Diffstat (limited to 'src/main/scala/scala/async')
-rw-r--r-- | src/main/scala/scala/async/internal/AsyncTransform.scala | 9 | ||||
-rw-r--r-- | src/main/scala/scala/async/internal/TransformUtils.scala | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/main/scala/scala/async/internal/AsyncTransform.scala b/src/main/scala/scala/async/internal/AsyncTransform.scala index c8d2234..a24a823 100644 --- a/src/main/scala/scala/async/internal/AsyncTransform.scala +++ b/src/main/scala/scala/async/internal/AsyncTransform.scala @@ -156,9 +156,12 @@ trait AsyncTransform { case ValDef(_, _, _, rhs) if liftedSyms(tree.symbol) => atOwner(currentOwner) { val fieldSym = tree.symbol - val set = Assign(gen.mkAttributedStableRef(fieldSym.owner.thisType, fieldSym), transform(rhs)) - changeOwner(set, tree.symbol, currentOwner) - localTyper.typedPos(tree.pos)(set) + val lhs = atPos(tree.pos) { + gen.mkAttributedStableRef(fieldSym.owner.thisType, fieldSym) + } + val assign = treeCopy.Assign(tree, lhs, transform(rhs)).setType(definitions.UnitTpe) + changeOwner(assign, tree.symbol, currentOwner) + assign } case _: DefTree if liftedSyms(tree.symbol) => EmptyTree diff --git a/src/main/scala/scala/async/internal/TransformUtils.scala b/src/main/scala/scala/async/internal/TransformUtils.scala index f228e1d..bef52f1 100644 --- a/src/main/scala/scala/async/internal/TransformUtils.scala +++ b/src/main/scala/scala/async/internal/TransformUtils.scala @@ -100,7 +100,7 @@ private[async] trait TransformUtils { case ld: LabelDef => ld.symbol }.toSet t.exists { - case rt: RefTree => !(labelDefs contains rt.symbol) + case rt: RefTree => rt.symbol != null && rt.symbol.isLabel && !(labelDefs contains rt.symbol) case _ => false } } |