3

Scala マクロ アノテーションからパラメーターを取得するでは、マクロ アノテーションからパラメーターを取得する方法について説明します。ただし、デフォルト値を持ついくつかのパラメーターがある場合:

class Foo(b: Boolean = false, i: Int = 0) extends StaticAnnotation { ... }

私は書く必要があります(その質問への答えに基づいて)

val (b, i) = c.prefix.tree match {
  case q"new Foo(..$args)" => ???
}

のロジックは???非常に厄介になっているようです。位置パラメータと名前付きパラメータの両方を処理する必要があり、デフォルト値への単純なアクセスはありません。単純化する方法はありますか?

4

1 に答える 1