リフレクションがまだ初期段階だった頃、Scala 2.10.0マイルストーンの日に、REPLからのコードスニペットのツリーを表示するためにそれをどのように使用できるかについて質問しました。優れた答えは、私が尋ねたよりもさらに進んで、それらを使用してツリーを解析および評価する方法も示したので、先に進んで、今日行っていた小さなプロジェクトでそれを使用しようとしました。
残念ながら、そのように解析および評価されたコードは、REPL定義を認識していないようです。
scala> val x = 1
x: Int = 1
scala> import scala.tools.reflect.ToolBox
import scala.tools.reflect.ToolBox
scala> val tb = scala.reflect.runtime.universe.runtimeMirror(
getClass.getClassLoader).mkToolBox()
tb: scala.tools.reflect.ToolBox[reflect.runtime.universe.type] = ...
scala> tb.eval(tb.parse("x"))
scala.tools.reflect.ToolBoxError: reflective compilation has failed:
not found: value x
REPLで作成された定義を認識させる方法はありますか?