scala> import scala.reflect.runtime._
import scala.reflect.runtime._
scala> val cm = universe.runtimeMirror(getClass.getClassLoader)
cm: reflect.runtime.universe.Mirror = JavaMirror with ...
scala> import scala.tools.reflect.ToolBox
import scala.tools.reflect.ToolBox
scala> val tb = cm.mkToolBox()
tb: scala.tools.reflect.ToolBox[reflect.runtime.universe.type] = [email protected]
scala> tb.eval(tb.parse("class C; new D"))
scala.tools.reflect.ToolBoxError: reflective compilation has failed:
not found: type D
at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.throwIfErrors(ToolBoxFactory.scala:312)
at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.compile(ToolBoxFactory.scala:248)
at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.compile(ToolBoxFactory.scala:407)
at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.eval(ToolBoxFactory.scala:410)
...
scala> tb.frontEnd.infos
res1: ... = Set(Info(NoPosition,not found: type D,ERROR))
ご覧のとおり、すべてのエラーに対してNoPositionが返されます。そして、もし私が大量のコードをコンパイルするなら、私は少なくともライン位置をユーザーに報告できるようにしたいと思うでしょう。 – Rogach
参考までに、現在の状況は次のとおりです:https://github.com/Rogach/miltamm/blob/master/src/main/scala/BuildCompiler.scala#L8 – Rogach
このNoPositionに関するチケットを開封してください? –