Skip to content

Commit f4ebf53

Browse files
authored
Merge pull request #152 from xuwei-k/Factory-type
Make `Factory` a transparent type alias to `CanBuildFrom`, in 2.11 and 2.12.
2 parents 7095550 + 241500e commit f4ebf53

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

compat/src/main/scala-2.11_2.12/scala/collection/compat/PackageShared.scala

+1-8
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ private[compat] trait PackageShared {
1616
* @tparam A Type of elements (e.g. `Int`, `Boolean`, etc.)
1717
* @tparam C Type of collection (e.g. `List[Int]`, `TreeMap[Int, String]`, etc.)
1818
*/
19-
type Factory[-A, +C] <: CanBuildFrom[Nothing, A, C] // Ideally, this would be an opaque type
19+
type Factory[-A, +C] = CanBuildFrom[Nothing, A, C]
2020

2121
implicit class FactoryOps[-A, +C](private val factory: Factory[A, C]) {
2222

@@ -32,13 +32,6 @@ private[compat] trait PackageShared {
3232
def newBuilder: m.Builder[A, C] = factory()
3333
}
3434

35-
implicit def fromCanBuildFrom[A, C](implicit cbf: CanBuildFrom[Nothing, A, C]): Factory[A, C] =
36-
cbf.asInstanceOf[Factory[A, C]]
37-
38-
implicit def fromCanBuildFromConversion[X, A, C](x: X)(
39-
implicit toCanBuildFrom: X => CanBuildFrom[Nothing, A, C]): Factory[A, C] =
40-
fromCanBuildFrom(toCanBuildFrom(x))
41-
4235
implicit def genericCompanionToCBF[A, CC[X] <: GenTraversable[X]](
4336
fact: GenericCompanion[CC]): CanBuildFrom[Any, A, CC[A]] =
4437
simpleCBF(fact.newBuilder[A])
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package test.scala.collection
2+
3+
// Don't import scala.collection.compat._
4+
import scala.collection.compat.Factory
5+
import scala.collection.{mutable, immutable}
6+
7+
class NoImportTest {
8+
9+
implicitly[Factory[Int, List[Int]]]
10+
implicitly[Factory[Char, String]]
11+
implicitly[Factory[Char, Array[Char]]]
12+
implicitly[Factory[Int, collection.BitSet]]
13+
implicitly[Factory[Int, mutable.BitSet]]
14+
implicitly[Factory[Int, immutable.BitSet]]
15+
16+
}

0 commit comments

Comments
 (0)