编译错误在那里不会发生但在这里发生

时间:2014-07-18 00:30:41

标签: eclipse scala intellij-idea sbt

一旦弄清楚发生了什么,我将重命名标题。

考虑以下代码:

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中,因为我认为它应该是原因,但它不是。因此,我坚持这一点。任何人都可以解释为什么会这样,并希望告诉我如何解决它?谢谢!

0 个答案:

没有答案