Scala 涉及类的非法循环引用

Scala 涉及类的非法循环引用,scala,Scala,我正在学习Scala,遇到了一个涉及泛型的错误。我把一种特质定义为 trait myTrait[ A, B, Self[X, Y] <: myTrait[X, Y, Self]] { protected def self: Self[A, B] } 这给了我一个编译错误“非法循环引用涉及类myClass”。如果我将myClass声明为 class myClass[A, B] extends myTrait[A, B, myClass]{ override protec

我正在学习Scala,遇到了一个涉及泛型的错误。我把一种特质定义为

trait myTrait[
  A, B,
  Self[X, Y] <: myTrait[X, Y, Self]] { 
 protected def self: Self[A, B] 
}
这给了我一个编译错误“非法循环引用涉及类myClass”。如果我将myClass声明为

class myClass[A, B] extends myTrait[A, B, myClass]{ 
  override protected def self:myClass[A, B] = this 
}

我做错了什么?

这不是我在2.11.7中遇到的错误:

myClass takes one type parameter, expected: two
这很有意义:
myClass
用作
MyTrait
Self
参数,它需要两个类型参数

myClass takes one type parameter, expected: two