diff --git a/compat/src/main/scala-2.11_2.12/scala/collection/compat/PackageShared.scala b/compat/src/main/scala-2.11_2.12/scala/collection/compat/PackageShared.scala index 04073951..9f82ded7 100644 --- a/compat/src/main/scala-2.11_2.12/scala/collection/compat/PackageShared.scala +++ b/compat/src/main/scala-2.11_2.12/scala/collection/compat/PackageShared.scala @@ -16,7 +16,7 @@ private[compat] trait PackageShared { * @tparam A Type of elements (e.g. `Int`, `Boolean`, etc.) * @tparam C Type of collection (e.g. `List[Int]`, `TreeMap[Int, String]`, etc.) */ - type Factory[-A, +C] <: CanBuildFrom[Nothing, A, C] // Ideally, this would be an opaque type + type Factory[-A, +C] = CanBuildFrom[Nothing, A, C] implicit class FactoryOps[-A, +C](private val factory: Factory[A, C]) { @@ -32,13 +32,6 @@ private[compat] trait PackageShared { def newBuilder: m.Builder[A, C] = factory() } - implicit def fromCanBuildFrom[A, C](implicit cbf: CanBuildFrom[Nothing, A, C]): Factory[A, C] = - cbf.asInstanceOf[Factory[A, C]] - - implicit def fromCanBuildFromConversion[X, A, C](x: X)( - implicit toCanBuildFrom: X => CanBuildFrom[Nothing, A, C]): Factory[A, C] = - fromCanBuildFrom(toCanBuildFrom(x)) - implicit def genericCompanionToCBF[A, CC[X] <: GenTraversable[X]]( fact: GenericCompanion[CC]): CanBuildFrom[Any, A, CC[A]] = simpleCBF(fact.newBuilder[A]) diff --git a/compat/src/test/scala/test/scala/collection/NoImportTest.scala b/compat/src/test/scala/test/scala/collection/NoImportTest.scala new file mode 100644 index 00000000..0275627c --- /dev/null +++ b/compat/src/test/scala/test/scala/collection/NoImportTest.scala @@ -0,0 +1,16 @@ +package test.scala.collection + +// Don't import scala.collection.compat._ +import scala.collection.compat.Factory +import scala.collection.{mutable, immutable} + +class NoImportTest { + + implicitly[Factory[Int, List[Int]]] + implicitly[Factory[Char, String]] + implicitly[Factory[Char, Array[Char]]] + implicitly[Factory[Int, collection.BitSet]] + implicitly[Factory[Int, mutable.BitSet]] + implicitly[Factory[Int, immutable.BitSet]] + +}