2 つのマクロ アノテーション付きクラスがあり、展開中にフィールドが定義された後、一方が他方に依存するとします。
@Annotation
case class A(i: Int)
@Annotation
case class B(a: A)
A
の前に展開する必要がありますB
が、それらの定義の順序はそれを保証しません。
たとえば、次のB
ような無関係なコンパイル単位内のオブジェクトへの型パラメータとしての参照:
class X{val b = B(A(1))}
あるファイルとclass Y{Z[B]}
別のファイルで、
最初に展開されるためB
、コンパイルが失敗します。
この場合、マクロ展開の順序は何によって決まりますか? 希望の注文を強制する方法はありますか?
ご意見をお寄せいただきありがとうございます。
ジュリアン