diff options
Diffstat (limited to 'src/main/scala/scala/async/internal/AsyncMacro.scala')
-rw-r--r-- | src/main/scala/scala/async/internal/AsyncMacro.scala | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/main/scala/scala/async/internal/AsyncMacro.scala b/src/main/scala/scala/async/internal/AsyncMacro.scala index 8d93567..ee49923 100644 --- a/src/main/scala/scala/async/internal/AsyncMacro.scala +++ b/src/main/scala/scala/async/internal/AsyncMacro.scala @@ -4,15 +4,18 @@ import scala.tools.nsc.Global import scala.tools.nsc.transform.TypingTransformers object AsyncMacro { - def apply(c: reflect.macros.Context, futureSystem0: FutureSystem): AsyncMacro = { + def apply(c: reflect.macros.Context, base: AsyncBase): AsyncMacro = { import language.reflectiveCalls val powerContext = c.asInstanceOf[c.type { val universe: Global; val callsiteTyper: universe.analyzer.Typer }] new AsyncMacro { - val global: powerContext.universe.type = powerContext.universe + val global: powerContext.universe.type = powerContext.universe val callSiteTyper: global.analyzer.Typer = powerContext.callsiteTyper - val futureSystem: futureSystem0.type = futureSystem0 - val futureSystemOps: futureSystem.Ops {val universe: global.type} = futureSystem0.mkOps(global) - val macroApplication: global.Tree = c.macroApplication.asInstanceOf[global.Tree] + val macroApplication: global.Tree = c.macroApplication.asInstanceOf[global.Tree] + // This member is required by `AsyncTransform`: + val asyncBase: AsyncBase = base + // These members are required by `ExprBuilder`: + val futureSystem: FutureSystem = base.futureSystem + val futureSystemOps: futureSystem.Ops {val universe: global.type} = futureSystem.mkOps(global) } } } @@ -20,7 +23,7 @@ object AsyncMacro { private[async] trait AsyncMacro extends TypingTransformers with AnfTransform with TransformUtils with Lifter - with ExprBuilder with AsyncTransform with AsyncAnalysis { + with ExprBuilder with AsyncTransform with AsyncAnalysis with LiveVariables { val global: Global val callSiteTyper: global.analyzer.Typer |