型指定されていないマクロが廃止されたため、初期型チェックを回避するマクロ バリアントの数が減少しました。
関連するリリース ドキュメントの理論的根拠は、暗黙のマクロとマクロ アノテーションの両方を代替手段として参照しています。
実際、マクロ注釈は宣伝どおりに機能しているようです。ただし、暗黙のマクロの例 (少なくとも私が理解しているもの) や、この状況で展開されている別のマクロの亜種を見つけることができませんでした。
繰り返しになりますが、質問は次のとおりです。マクロの注釈を除いて、即時の型チェックを回避するマクロ作成方法と、この点での違いは何ですか?
私の調査に拍車をかけた特定のユースケースは、次のようなものを変換しています(マクロ注釈で実現):
{
@blah
val x = {
foo("a")
bar()
}
}
wherefoo
およびbar
は、マクロ適用前の現在のスコープ内のどこにも定義されていません。想定される使用例は DSL です。上記の例はコンテキストに対してのみ提供されているため、回答をこのシナリオに限定しないでください。