Type macro風のmacro
型を返すmacroがボツになり、
type t = typeOf("hello")
その1
val
を経由して
val t = typeOf("hello") type t = t.unwrap
とする。
その2
Annotation macroを使って
@typeOf val t = "hello"
としてtype t = String
に変換する。
"hello"
の部分が同じスコープ内のIdent
の場合、型にアクセスできなかった。
気になる点
型のTreeと値のTreeを静的に区別できないらしく、
def impl(x: c.Tree): c.Tree = TypeTree(x.tpe)
のように型のTreeを返してもコンパイルできてしまう。 使ったらエラー。でも他のマクロには渡せる。