Skip to content

Commit c26c5e9

Browse files
fdietzeNthPortal
authored andcommitted
Add implicit: genericOrderedCompanionToCBF
1 parent eaf871d commit c26c5e9

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

compat/src/main/scala-2.11/scala/collection/compat/package.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,15 @@
1212

1313
package scala.collection
1414

15-
import scala.collection.generic.IsTraversableLike
15+
import scala.collection.generic.{CanBuildFrom, GenericOrderedCompanion, IsTraversableLike}
1616
import scala.{collection => c}
1717

1818
package object compat extends compat.PackageShared {
19+
implicit def genericOrderedCompanionToCBF[A, CC[X] <: Traversable[X]](
20+
fact: GenericOrderedCompanion[CC])(
21+
implicit ordering: Ordering[A]): CanBuildFrom[Any, A, CC[A]] =
22+
CompatImpl.simpleCBF(fact.newBuilder[A])
23+
1924
implicit def toTraversableLikeExtensionMethods[Repr](self: Repr)(
2025
implicit traversable: IsTraversableLike[Repr])
2126
: TraversableLikeExtensionMethods[traversable.A, Repr] =

compat/src/main/scala-2.12/scala/collection/compat/package.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
package scala.collection
1414

15-
import scala.collection.generic.IsTraversableLike
15+
import scala.collection.generic.{CanBuildFrom, GenericOrderedCompanion, IsTraversableLike}
1616
import scala.{collection => c}
1717
import scala.collection.{mutable => m}
1818

@@ -27,6 +27,11 @@ package object compat extends compat.PackageShared {
2727
build(m.SortedMap.newBuilder[K, V], source)
2828
}
2929

30+
implicit def genericOrderedCompanionToCBF[A, CC[X] <: Traversable[X]](
31+
fact: GenericOrderedCompanion[CC])(
32+
implicit ordering: Ordering[A]): CanBuildFrom[Any, A, CC[A]] =
33+
CompatImpl.simpleCBF(fact.newBuilder[A])
34+
3035
implicit def toTraversableLikeExtensionMethods[Repr](self: Repr)(
3136
implicit traversable: IsTraversableLike[Repr])
3237
: TraversableLikeExtensionMethods[traversable.A, Repr] =

compat/src/test/scala/test/scala/collection/CollectionTest.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import org.junit.Test
1717

1818
import scala.collection.compat._
1919
import scala.collection.immutable.BitSet
20+
import scala.collection.mutable.PriorityQueue
2021
import scala.collection.LinearSeq
2122

2223
class CollectionTest {
@@ -35,6 +36,10 @@ class CollectionTest {
3536
val bT: BitSet = b
3637
assertEquals(BitSet(1, 2, 3), b)
3738

39+
val c = xs.to(PriorityQueue)
40+
val cT: PriorityQueue[Int] = c
41+
assert(PriorityQueue(1, 2, 3) sameElements c)
42+
3843
val ys = List(1 -> "a", 2 -> "b")
3944
val m = ys.to(Map)
4045
// Not possible - `to` returns a Col[A] so this is only typed as an Iterable[(Int, String)]

0 commit comments

Comments
 (0)