blob: 564cdfa68f0a0ba5f398b7ca9127b9158d7ef717 (
plain) (
tree)
|
|
import scala.reflect.macros.blackbox.Context
object Macros {
def impl(c: Context) = {
import c.universe._
def chain(sym: Symbol): List[Symbol] = sym.owner match {
case NoSymbol => sym :: Nil
case owner => sym :: chain(owner)
}
q"""
println("enclosingPackage = " + ${c.enclosingPackage.toString})
println("enclosingClass = " + ${c.enclosingClass.toString})
println("enclosingImpl = " + ${c.enclosingImpl.toString})
println("enclosingTemplate = " + ${c.enclosingTemplate.toString})
println("enclosingMethod = " + ${c.enclosingMethod.toString})
println("enclosingDef = " + ${c.enclosingDef.toString})
println("enclosingOwner = " + ${c.internal.enclosingOwner.toString})
println("enclosingOwnerChain = " + ${chain(c.internal.enclosingOwner).toString})
"""
}
def foo: Any = macro impl
}
|