1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
import scala.language.experimental.macros import scala.language.implicitConversions import scala.reflect.macros.whitebox.Context class A object A { implicit def a2b(a: A): B = ??? } class B class C extends A object Macros { def impl(c: Context) = { import c.universe._ q"new C" } def foo: A = macro impl }