, .
. : def macro aMacro(a: A): Unit = .... , SIP, ( ) ( , ). , , , , .
, . , - ( ). , :
trait BPiece { this: APiece =>
def aMacro(a: A): Unit = macro Macros.aMacro
}
, , , , .
- , A , A . - aMacro :
(: 2.10.0-M7, c.TypeTag c.AbsTypeTag; 2.10.0-RC1, c.AbsTypeTag c.WeakTypeTag)
trait BPiece { this: APiece =>
def aMacro[A](a: A): Unit = macro Macros.aMacro[A]
}
object Macros {
def aMacro[A: c.TypeTag](c: Context)(a: c.Expr[A]): c.Expr[Unit] = c.literalUnit
}
reify, , A - . , - , , . , , .