次の簡単な例 (Scala 2.11.8 で実行):
import scala.tools.reflect.ToolBox
import scala.reflect.runtime.currentMirror
object Main extends App {
val toolbox = currentMirror.mkToolBox()
val tree = toolbox.parse {
"""
package foo.bar {
trait Baz
}
"""
}
println(tree)
val checkedTree = toolbox.typecheck(tree)
println(tree)
}
toolbox.typecheck(tree)
行で次の例外が発生します。
Exception in thread "main" java.lang.AssertionError: assertion failed: value <local <expression-owner>>
at scala.reflect.internal.Symbols$Symbol.newPackage(Symbols.scala:310)
at scala.tools.nsc.typechecker.Namers$Namer.createPackageSymbol(Namers.scala:381)
at scala.tools.nsc.typechecker.Namers$Namer.createPackageSymbol(Namers.scala:374)
...
型チェックされた AST ツリーを取得するにはどうすればよいですか??