WeakTypeTag
orType
が具象型を表しているかどうかを確認するにはどうすればよいですか? これは、ユーザーが指定した型が具体的でない場合にコンパイルエラーを発生させるために使用できるマクロで特に役立ちます。
def macroMethod[T]: Unit = macro macroMethod_impl[T]
def macroMethod_impl[T: c.WeakTypeTag](c: Context): c.Expr[Unit] = {
import c.universe._
def isConcrete(tpe: Type) = ???
if(!isConcrete(weakTypeOf[T])) {
c.error(c.enclosingPosition, "You must provide concrete type.")
}
c.literalUnit
}