aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala/scala/async/internal/AsyncTransform.scala9
-rw-r--r--src/main/scala/scala/async/internal/TransformUtils.scala2
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
}
}