aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/AsyncTransform.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2014-02-15 00:02:53 +0100
committerEugene Burmako <xeno.by@gmail.com>2014-02-15 13:05:58 +0100
commitdefca0c9132a1e1e98e3363d8b7784898e2b982e (patch)
tree622e7d88c3d733ee42926cd7cd70de2a520faf51 /src/main/scala/scala/async/internal/AsyncTransform.scala
parentfd98325cd1fc2645211fbe0d117b90d32dee24fc (diff)
downloadscala-async-defca0c9132a1e1e98e3363d8b7784898e2b982e.tar.gz
scala-async-defca0c9132a1e1e98e3363d8b7784898e2b982e.tar.bz2
scala-async-defca0c9132a1e1e98e3363d8b7784898e2b982e.zip
gets rid of home-grown changeOwner
Diffstat (limited to 'src/main/scala/scala/async/internal/AsyncTransform.scala')
-rw-r--r--src/main/scala/scala/async/internal/AsyncTransform.scala15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/main/scala/scala/async/internal/AsyncTransform.scala b/src/main/scala/scala/async/internal/AsyncTransform.scala
index a3b8d14..529ccd2 100644
--- a/src/main/scala/scala/async/internal/AsyncTransform.scala
+++ b/src/main/scala/scala/async/internal/AsyncTransform.scala
@@ -3,7 +3,9 @@ package scala.async.internal
trait AsyncTransform {
self: AsyncMacro =>
- import c.universe._
+ import c.universe.{gen => _, _}
+ import c.internal._
+ import decorators._
val asyncBase: AsyncBase
@@ -158,7 +160,7 @@ trait AsyncTransform {
atOwner(currentOwner) {
val fieldSym = tree.symbol
val set = Assign(gen.mkAttributedStableRef(fieldSym.owner.thisType, fieldSym), transform(rhs))
- changeOwner(set, tree.symbol, currentOwner)
+ set.changeOwner(tree.symbol, currentOwner)
localTyper.typedPos(tree.pos)(set)
}
case _: DefTree if liftedSyms(tree.symbol) =>
@@ -181,10 +183,7 @@ trait AsyncTransform {
useField.atOwner(stateMachineClass)(useField.transform(x))
}
- tree.children.foreach {
- t =>
- new ChangeOwnerAndModuleClassTraverser(callSiteTyper.context.owner, tree.symbol).traverse(t)
- }
+ tree.children.foreach(_.changeOwner(enclosingOwner, tree.symbol))
val treeSubst = tree
/* Fixes up DefDef: use lifted fields in `body` */
@@ -207,12 +206,12 @@ trait AsyncTransform {
val result = transformAt(result0) {
case dd@DefDef(_, name.apply, _, List(List(_)), _, _) if dd.symbol.owner == stateMachineClass =>
(ctx: analyzer.Context) =>
- val typedTree = fixup(dd, changeOwner(applyBody, callSiteTyper.context.owner, dd.symbol), ctx)
+ val typedTree = fixup(dd, applyBody.changeOwner(enclosingOwner, dd.symbol), ctx)
typedTree
case dd@DefDef(_, name.resume, _, _, _, _) if dd.symbol.owner == stateMachineClass =>
(ctx: analyzer.Context) =>
- val changed = changeOwner(resumeBody, callSiteTyper.context.owner, dd.symbol)
+ val changed = resumeBody.changeOwner(enclosingOwner, dd.symbol)
val res = fixup(dd, changed, ctx)
res
}