Scala 2.11(のmacro)
2.10辺りからの変更点
- Untyped macroがなくなった。
- 替わりに文字列を使う。*1
- Type macroがなくなった。
- 言語の見た目を拡張するのはよろしくない、という方針か。
- どうエミュレートするか悩みどころ
Context
がwhitebox.Context
とblackbox.Context
に分かれた。blackbox.Context
は戻り値の型の決定が遅延されない。
- quasiquoteでパターンマッチできるようになった。
- 非常に便利
- Annotationをmacroで作れるようになった。*2
- 何でも出来てしまう。
enclosingTemplate
がdeprecatedになった。- 設計の変更が必要
literalXXX
がdeprecatedになった。- なぜだろうか。
- いくつかのmethod名のささいな変更
- 実装methodの引数に
Tree
を使えるようになった。 *3Expr
はもう使いたくないかも