我正在尝试找到一种方法来获取 Scala 编译器的符号表 (?) 并将所有类型信息转储到特定 SBT 项目中的方法/函数中。我目前的方向是编译器插件,在typer
阶段之后立即连接到它。
闲逛了一下,我正在看着根镜并检查info.decls
它的场,大致如下:
def newPhase(prev: Phase): Phase =
new StdPhase(prev) {
def apply(unit: CompilationUnit): Unit = {
val decls = global.RootClass.info.decls
val scalaz = decls.find(_.toString contains "scalaz")
println(scalaz.get.info.decls.filter(x => !x.hasMeaninglessName))
它转储了很多东西,但是..我仍然得到了很多奇怪的输出,比如class anonfun$reduceUnordered$1 extends ;
想知道我是否朝着正确的方向前进,如果是这样,我应该更多地关注什么才能获得项目中方法的类型签名?