2

以下代码使用 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 子集?

4

0 回答 0