Avatar
コンパイラが読める範囲のものは全部読める
インターフェースとしては ExpressionMacro に渡ってくるのは部分CSTなのと MacroEvaluationContext も外側の情報は渡してこないように見える。 CompilerPluginみたいな感じで、sand-box下で実行されて、外側のソースは読めないっていう仕様への着地もありえる気がします。
(edited)
7:18 PM
実際、純粋なコード加工なら部分CSTだけで良いはずで、 周りの型情報とか他の部分のソース情報も読み取るとなると、 マクロの実行結果が局所的な情報だけで決定しなくなるという事なんで
7:19 PM
そのほうが高機能ではあるが、ユーザーにとってはマクロ展開結果の予測しづらい変動や不具合の原因にもなりえるので難しくなりうる