0

我想知道如何创建节点,以便它们在代码中实例化类。目前,如果我修改代码,它无法识别节点。

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 阶段未找到该类型。任何帮助将不胜感激。

4

1 回答 1

0

更改Ident("pra")Ident(newTypeName("pra"))

于 2014-04-24T17:28:29.630 回答