blob: 1c97ca7979b012d06cea97b0b817fe0bef7d2ea5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package scala.async.internal
import scala.tools.nsc.Global
import scala.tools.nsc.transform.TypingTransformers
object AsyncMacro {
def apply(c: reflect.macros.Context, futureSystem0: FutureSystem): 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 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]
}
}
}
private[async] trait AsyncMacro
extends TypingTransformers
with AnfTransform with TransformUtils with Lifter
with ExprBuilder with AsyncTransform with AsyncAnalysis with LiveVariables {
val global: Global
val callSiteTyper: global.analyzer.Typer
val macroApplication: global.Tree
lazy val macroPos = macroApplication.pos.makeTransparent
def atMacroPos(t: global.Tree) = global.atPos(macroPos)(t)
}
|