Scala 中的专业化和更高种类的问题

Issue with specialization and higher kinds in scala

我有这些行(scala 2.11.11):

trait TypeClass[T]
class DoubleIsTypeClass extends TypeClass[Double]
implicit val forDouble = new DoubleIsTypeClass

知道让我们添加以下行:

case class User[V[_], @specialized T : TypeClass](a: V[T])

现在无法编译。 删除 @specialized 修复它。 这是一个错误吗? 除了它们在类型推断方面的帮助外,我在这里真的不需要更高的种类,但这很重要。

编辑 仅供那些可能偶然发现类似问题的人使用

Type类 不是这里的问题,case 类 是:

case class User[V[_], @specialized T](a: V[T])

上面的行不能自行编译。

这看起来像 SI-9227。好像是个bug。

总的来说,这些是some quirks around specialization值得一读的。