我想知道如何创建节点,以便它们在代码中实例化类。目前,如果我修改代码,它将无法识别节点。
object Test{
def main(args: Array[String]) {
val a= new Avi;
}
}
class Avi{}
class pra{}
在AST中,我创建了以下节点,并将ValDef节点替换为参数a
val newRhs = Select(New(Ident("pra")),newTermName("<init>"));
retTree = treeCopy.ValDef(vd, mods, name, tpt, newRhs);
我收到以下错误
error: not found: value pra
我想知道我创建节点的方式是否错误,还有其他我需要做的事情。我在Transformer类中传递了这个retTree来转换AST。在编译器的Typer阶段中找不到该类型。任何帮助将不胜感激。
答案 0 :(得分:0)
将Ident("pra")
更改为Ident(newTypeName("pra"))
。