scala 2.9.xではtools.nsc.Global
、特定の文字列をクラスにコンパイルして実行するために直接使用していました。
scala 2.10では、次のようなものに置き換えることができます。
import scala.reflect.runtime._;
val cm = universe.runtimeMirror(getClass.getClassLoader)
import scala.tools.reflect.ToolBox;
val tb = cm.mkToolBox()
tb.eval(tb.parse("class C; new C"))
そしてそれは完璧に動作します。唯一の問題は、古い(非推奨の)アプローチでは、StoreReporterを使用してすべてのコンパイルエラーの非常にきれいな要約(エラーメッセージ、行番号を含む)を取得でき、新しいアプローチではコンパイルエラーで例外がスローされることです。
それを具体化する方法はありますか?