diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2009-11-03 10:37:56 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2009-11-03 10:37:56 +0000 |
commit | 094ed77bd98bbdd22fa8fee4a3e5c3dc0118dc2b (patch) | |
tree | daada3340bcd5735713fc68cc3648107f7f8646e /src/library/scala/collection/generic/MapFactory.scala | |
parent | 3d115bd2a4191c28e6d8a9c2633740288479cec7 (diff) | |
download | scala-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.scala | 6 |
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 |