Scala 为什么要通过@uV禁用差异检查?

Scala 为什么要通过@uV禁用差异检查?,scala,annotations,type-safety,Scala,Annotations,Type Safety,我刚刚偶然发现了(2.10.0)定义的方法到的以下定义: 根据,@uV禁用了差异检查。听起来很危险。我为什么要这样做?我想答案与这个问题的答案非常相似: 由于存在不可变(可能是协变)和可变(不变)集合的构建器(隐式参数cbf),因此此处可能使用注释使to方法适用于这两种类型的集合 override def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A @uV]]): Col[A @uV] = { val b = cbf()

我刚刚偶然发现了(2.10.0)定义的方法
的以下定义:


根据,
@uV
禁用了差异检查。听起来很危险。我为什么要这样做?

我想答案与这个问题的答案非常相似:

由于存在不可变(可能是协变)和可变(不变)集合的构建器(隐式参数
cbf
),因此此处可能使用注释使
to
方法适用于这两种类型的集合

override def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A @uV]]): Col[A @uV] = {
  val b = cbf()
  b.sizeHint(this)
  b ++= thisCollection
  b.result
}