2

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、コンパイルが失敗します。

この場合、マクロ展開の順序は何によって決まりますか? 希望の注文を強制する方法はありますか?

ご意見をお寄せいただきありがとうございます。

ジュリアン

4

1 に答える 1