以下代码使用 nsc 编译得很好:
trait A {
type B[+T]
type C[+T] <: B[T]
def c: C[Int]
}
object Q {
val a: A = ???
val b: a.B[Int] = a.c
}
但 Intellij 不接受它并显示错误消息
类型的表达式
Q.a.C[Int]
不符合预期的类型Q.a.B[Int]
为什么会这样?它是否在某个地方定义了 IntelliJ 中允许的 Scala 子集?
以下代码使用 nsc 编译得很好:
trait A {
type B[+T]
type C[+T] <: B[T]
def c: C[Int]
}
object Q {
val a: A = ???
val b: a.B[Int] = a.c
}
但 Intellij 不接受它并显示错误消息
类型的表达式
Q.a.C[Int]
不符合预期的类型Q.a.B[Int]
为什么会这样?它是否在某个地方定义了 IntelliJ 中允许的 Scala 子集?