summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/generic/MapFactory.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2009-11-03 10:37:56 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2009-11-03 10:37:56 +0000
commit094ed77bd98bbdd22fa8fee4a3e5c3dc0118dc2b (patch)
treedaada3340bcd5735713fc68cc3648107f7f8646e /src/library/scala/collection/generic/MapFactory.scala
parent3d115bd2a4191c28e6d8a9c2633740288479cec7 (diff)
downloadscala-094ed77bd98bbdd22fa8fee4a3e5c3dc0118dc2b.tar.gz
scala-094ed77bd98bbdd22fa8fee4a3e5c3dc0118dc2b.tar.bz2
scala-094ed77bd98bbdd22fa8fee4a3e5c3dc0118dc2b.zip
fixed #2500: refactoring collections so that a ...
fixed #2500: refactoring collections so that a `collection.{Map|SortedMap|SortedSet}` can be built from the corresponding collection (thus, do not require the immutable one) pulling up newBuilder method from Immutable*Factory to *Factory, and inheriting *Factory in scala.collection companion objects, instead of the Immutable*Factory this way, you can, e.g., build a collection.Map from a collection.Map (instead of requiring an immutable.Map)
Diffstat (limited to 'src/library/scala/collection/generic/MapFactory.scala')
-rw-r--r--src/library/scala/collection/generic/MapFactory.scala6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/library/scala/collection/generic/MapFactory.scala b/src/library/scala/collection/generic/MapFactory.scala
index 9e47412448..2476142ec7 100644
--- a/src/library/scala/collection/generic/MapFactory.scala
+++ b/src/library/scala/collection/generic/MapFactory.scala
@@ -12,7 +12,7 @@
package scala.collection
package generic
-import mutable.Builder
+import mutable.{Builder, MapBuilder}
/** A template for companion objects of <code>mutable.Map</code> and
* subclasses thereof.
@@ -23,12 +23,12 @@ abstract class MapFactory[CC[A, B] <: Map[A, B] with MapLike[A, B, CC[A, B]]] {
type Coll = CC[_, _]
- def newBuilder[A, B]: Builder[(A, B), CC[A, B]]
-
def empty[A, B]: CC[A, B]
def apply[A, B](elems: (A, B)*): CC[A, B] = (newBuilder[A, B] ++= elems).result
+ def newBuilder[A, B]: Builder[(A, B), CC[A, B]] = new MapBuilder[A, B, CC[A, B]](empty[A, B])
+
class MapCanBuildFrom[A, B] extends CanBuildFrom[Coll, (A, B), CC[A, B]] {
def apply(from: Coll) = newBuilder[A, B]
def apply() = newBuilder