一旦弄清楚发生了什么,我将重命名标题。
考虑以下代码:
trait Tr {
type A
}
type TrT[T] = Tr { type A = T }
def someFunc: Tr = ...
val tr = someFunc
val trt: TrT[tr.A] = tr
使用Eclipse(Kepler)的官方Scala库(2.11.1)编译甚至运行此代码没有问题,而带有IntelliJ(13.1.3)的SBT(0.13.5)在最后一行抛出错误,说tr
不能是TrT[tr.A]
。我将依赖项放在build.sbt
中的Reflection API中,因为我认为它应该是原因,但它不是。因此,我坚持这一点。任何人都可以解释为什么会这样,并希望告诉我如何解决它?谢谢!