Skip to content

Commit e1aa033

Browse files
committed
fix the "Factory" type alias definition
avoid "import scala.collection.compat._" everywhere in Scala 2.11 and 2.12 collection-compat v0.2.0 ``` Welcome to Scala 2.12.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181). Type in expressions for evaluation. Or try :help. scala> implicitly[scala.collection.compat.Factory[Int, List[Int]]] <console>:12: error: could not find implicit value for parameter e: collection.compat.Factory[Int,List[Int]] implicitly[scala.collection.compat.Factory[Int, List[Int]]] ^ scala> import scala.collection.compat._ import scala.collection.compat._ scala> implicitly[scala.collection.compat.Factory[Int, List[Int]]] res1: collection.compat.Factory[Int,List[Int]] = scala.collection.generic.GenTraversableFactory$$anon$1@41b12185 ``` collection-compat v0.1.1 ``` Welcome to Scala 2.12.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181). Type in expressions for evaluation. Or try :help. scala> implicitly[scala.collection.compat.Factory[Int, List[Int]]] res0: scala.collection.compat.Factory[Int,List[Int]] = scala.collection.compat.Factory$$anon$1@33600943 ```
1 parent dfdc979 commit e1aa033

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
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] // Ideally, this would be an opaque type
2020

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

Lines changed: 16 additions & 0 deletions
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)