Scala マクロを定義するときに、Symbol または Type から Tree に移動する方法はありますか?
具体的には、コンパニオン オブジェクトでリテラルを検索するシナリオです。
scala コードでは、これは次のようになります。
class Fred(a: String)
object Fred {
val FredDescription = "hello"
}
マクロでは、Fred の WeakTypeTag にアクセスでき、それを使用してコンパニオンとその型シグネチャにアクセスできます。
context.universe.weakTypeOf[A].typeSymbol.companionSymbol.typeSignature
しかし、リテラルまたはツリーにアクセスしてコンパニオン オブジェクトのリテラルを一致させる方法がわかりません。
これは可能ですか?任意のタイプまたはシンボルのツリーを取得するトリックはありますか?