@@ -56,7 +56,7 @@ object CollectionStrawMan5 {
56
56
57
57
/** Base trait for strict collections */
58
58
trait Buildable [+ A , + To <: Iterable [A ]] extends Iterable [A ] {
59
- protected [this ] def newBuilder : Builder [A , To ]
59
+ protected [this ] def newBuilder : Builder [A @ uncheckedVariance , To ]
60
60
override def partition (p : A => Boolean ): (To , To ) = {
61
61
val l, r = newBuilder
62
62
iterator.foreach(x => (if (p(x)) l else r) += x)
@@ -95,7 +95,7 @@ object CollectionStrawMan5 {
95
95
with IterableOps [A ]
96
96
with IterableMonoTransforms [A , C [A @ uncheckedVariance]] // sound bcs of VarianceNote
97
97
with IterablePolyTransforms [A , C ] {
98
- protected [this ] def fromLikeIterable (coll : Iterable [A ]): C [A ] = fromIterable(coll)
98
+ protected [this ] def fromLikeIterable (coll : Iterable [A @ uncheckedVariance ]): C [A @ uncheckedVariance ] = fromIterable(coll)
99
99
}
100
100
101
101
/** Base trait for Seq operations */
@@ -115,7 +115,7 @@ object CollectionStrawMan5 {
115
115
116
116
trait IterableMonoTransforms [+ A , + Repr ] extends Any {
117
117
protected def coll : Iterable [A ]
118
- protected [this ] def fromLikeIterable (coll : Iterable [A ]): Repr
118
+ protected [this ] def fromLikeIterable (coll : Iterable [A ] @ scala.annotation.unchecked.uncheckedVariance ): Repr
119
119
def filter (p : A => Boolean ): Repr = fromLikeIterable(View .Filter (coll, p))
120
120
def partition (p : A => Boolean ): (Repr , Repr ) = {
121
121
val pn = View .Partition (coll, p)
@@ -166,7 +166,7 @@ object CollectionStrawMan5 {
166
166
}
167
167
def length : Int =
168
168
if (isEmpty) 0 else 1 + tail.length
169
- protected [this ] def newBuilder = new ListBuffer [A ]
169
+ protected [this ] def newBuilder = new ListBuffer [A @ uncheckedVariance ]
170
170
def ++: [B >: A ](prefix : List [B ]): List [B ] =
171
171
if (prefix.isEmpty) this
172
172
else Cons (prefix.head, prefix.tail ++: this )
0 commit comments