是否可以从Tree和MethodSymbol生成Apply?

时间:2013-07-02 04:34:22

标签: scala macros scala-2.10 scala-macros

我从某个类中获取了一个MethodSymbol,现在我想创建一个在某个树上调用该方法的代码:

tpe.declarations.collect {
  case acc: MethodSymbol =>
    Apply(Select(tree.duplicate, ???), Nil)
}

是否可以以干净的方式获取方法的名称?

1 个答案:

答案 0 :(得分:1)

Universe有一个Select工厂方法,它将一个符号作为其第二个参数,因此您只需编写以下内容:

tpe.declarations.collect {
  case acc: MethodSymbol => Select(tree.duplicate, acc)
}

请注意,此处不需要Apply