私はマクロを開発しており、その実装で T がマクロ関数の型パラメーターである weakTypeOf T を取得します。この具象型のメソッド定義から新しいクラス宣言ツリーまで、情報をつなぎ合わせたいと考えています。型引数の AST を取得できない (パターン マッチを行うため) ため、必ずシンボル ベースの API を使用する必要があります。私の質問は、インデントとメンバーの選択よりも多くの場所でシンボルを接合するにはどうすればよいですか?
たとえば、シンボルのリストを取得するには、次のようにします。
val methodDefs = tpe.declarations
.filter(decl => decl.isMethod && decl.isPublic && !decl.asMethod.isConstructor && !decl.isSynthetic)
.map(symb => symb.asMethod)
そして、情報を aq インターポレーターに接続するには、次のようにします。
val newdefs : List[Tree] = methodDefs.map(methodDef => { q"def ${methodDef.name}[..${methodDef.typeParams}](...${methodDef.paramss}): ${methodDef.returnType} = ???"})
シンボルを接合する方法 (ここ (PDF) で説明) によると、この種の接合を直接行うことはできません。これを達成する正しい方法は何ですか?