2

次の簡単な例 (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 ツリーを取得するにはどうすればよいですか??

4

0 に答える 0