diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2014-02-15 00:02:53 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2014-02-15 13:05:58 +0100 |
commit | defca0c9132a1e1e98e3363d8b7784898e2b982e (patch) | |
tree | 622e7d88c3d733ee42926cd7cd70de2a520faf51 /src/main/scala/scala/async/internal/AsyncTransform.scala | |
parent | fd98325cd1fc2645211fbe0d117b90d32dee24fc (diff) | |
download | scala-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.scala | 15 |
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 } |