Skip to content

Commit 835c42b

Browse files
committed
Make ordering explicit in SortedMultiDict SortedMultiSet SortedMultiSetOps
1 parent 4a70ff1 commit 835c42b

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/main/scala/scala/collection/SortedMultiDict.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ trait SortedMultiDict[K, V]
1212
def unsorted: MultiDict[K, V] = this
1313

1414
def sortedMultiDictFactory: SortedMapFactory[SortedMultiDict] = SortedMultiDict
15-
override protected def fromSpecific(coll: IterableOnce[(K, V)]): SortedMultiDict[K, V] = sortedMultiDictFactory.from(coll)
16-
override protected def newSpecificBuilder: mutable.Builder[(K, V), SortedMultiDict[K, V]] = sortedMultiDictFactory.newBuilder
17-
override def empty: SortedMultiDict[K, V] = sortedMultiDictFactory.empty
15+
override protected def fromSpecific(coll: IterableOnce[(K, V)]): SortedMultiDict[K, V] = sortedMultiDictFactory.from(coll)(ordering)
16+
override protected def newSpecificBuilder: mutable.Builder[(K, V), SortedMultiDict[K, V]] = sortedMultiDictFactory.newBuilder(ordering)
17+
override def empty: SortedMultiDict[K, V] = sortedMultiDictFactory.empty(ordering)
1818
override def withFilter(p: ((K, V)) => Boolean): SortedMultiDictOps.WithFilter[K, V, Iterable, MultiDict, SortedMultiDict] = new SortedMultiDictOps.WithFilter(this, p)
1919

2020
}

src/main/scala/scala/collection/SortedMultiSet.scala

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ trait SortedMultiSet[A]
1313
def unsorted: MultiSet[A] = this
1414

1515
def sortedIterableFactory: SortedIterableFactory[SortedMultiSet] = SortedMultiSet
16-
override protected def fromSpecific(coll: IterableOnce[A]): SortedMultiSet[A] = sortedIterableFactory.from(coll)
17-
override protected def newSpecificBuilder: mutable.Builder[A, SortedMultiSet[A]] = sortedIterableFactory.newBuilder
18-
override def empty: SortedMultiSet[A] = sortedIterableFactory.empty
16+
override protected def fromSpecific(coll: IterableOnce[A]): SortedMultiSet[A] = sortedIterableFactory.from(coll)(ordering)
17+
override protected def newSpecificBuilder: mutable.Builder[A, SortedMultiSet[A]] = sortedIterableFactory.newBuilder(ordering)
18+
override def empty: SortedMultiSet[A] = sortedIterableFactory.empty(ordering)
1919
override def withFilter(p: A => Boolean): SortedMultiSetOps.WithFilter[A, MultiSet, SortedMultiSet] = new SortedMultiSetOps.WithFilter(this, p)
2020

2121
}
@@ -118,7 +118,7 @@ trait SortedMultiSetOps[A, +CC[X] <: MultiSet[X], +C <: MultiSet[A]]
118118
* is the minimum of the lengths of `this` and `that`
119119
*/
120120
def zip[B](that: Iterable[B])(implicit ev: Ordering[B]): CC[(A @uncheckedVariance, B)] = // sound bcs of VarianceNote
121-
sortedFromIterable(new View.Zip(toIterable, that))
121+
sortedFromIterable(new View.Zip(toIterable, that))(Ordering.Tuple2(ordering, implicitly))
122122

123123
/**
124124
* @return a new collection resulting from applying the given partial
@@ -147,7 +147,7 @@ trait SortedMultiSetOps[A, +CC[X] <: MultiSet[X], +C <: MultiSet[A]]
147147
// --- Override return type of methods that returned an unsorted MultiSet
148148

149149
override def zipWithIndex: CC[(A, Int)] =
150-
sortedFromIterable(new View.ZipWithIndex(toIterable))
150+
sortedFromIterable(new View.ZipWithIndex(toIterable))(Ordering.Tuple2(ordering, implicitly))
151151

152152
}
153153

0 commit comments

Comments
 (0)