Skip to content

Commit 4e8df36

Browse files
committed
Drop StrictMapFactory in favor of caps.Pure constraints
1 parent 5ef1606 commit 4e8df36

File tree

17 files changed

+32
-40
lines changed

17 files changed

+32
-40
lines changed

library/src/scala/collection/Factory.scala

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -412,14 +412,6 @@ trait MapFactory[+CC[_, _]] extends Serializable { self =>
412412
implicit def mapFactory[K, V]: Factory[(K, V), CC[K, V]] = MapFactory.toFactory(this)
413413
}
414414

415-
/** Like MapFactory, but with a strict constructor. */
416-
trait StrictMapFactory[+CC[_, _] <: caps.Pure] extends MapFactory[CC] {
417-
/**
418-
* A collection of type Map generated from given iterable object.
419-
*/
420-
def from[K, V](it: IterableOnce[(K, V)]^): CC[K, V]
421-
}
422-
423415
object MapFactory {
424416

425417
/**
@@ -446,7 +438,7 @@ object MapFactory {
446438
}
447439

448440
@SerialVersionUID(3L)
449-
class Delegate[C[_, _] <: caps.Pure](delegate: StrictMapFactory[C]) extends StrictMapFactory[C] {
441+
class Delegate[C[_, _] <: caps.Pure](delegate: MapFactory[C]) extends MapFactory[C] {
450442
override def apply[K, V](elems: (K, V)*): C[K, V] = delegate.apply(elems: _*)
451443
def from[K, V](it: IterableOnce[(K, V)]^): C[K, V] = delegate.from(it)
452444
def empty[K, V]: C[K, V] = delegate.empty

library/src/scala/collection/Map.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ trait Map[K, +V]
3030
with Equals
3131
with caps.Pure {
3232

33-
def mapFactory: scala.collection.StrictMapFactory[Map] = Map
33+
def mapFactory: scala.collection.MapFactory[Map] = Map
3434

3535
def canEqual(that: Any): Boolean = true
3636

library/src/scala/collection/SeqMap.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ trait SeqMap[K, +V] extends Map[K, V]
3636
@nowarn("""cat=deprecation&origin=scala\.collection\.Iterable\.stringPrefix""")
3737
override protected[this] def stringPrefix: String = "SeqMap"
3838

39-
override def mapFactory: StrictMapFactory[SeqMap] = SeqMap
39+
override def mapFactory: MapFactory[SeqMap] = SeqMap
4040
}
4141

4242
object SeqMap extends MapFactory.Delegate[immutable.SeqMap](immutable.SeqMap)

library/src/scala/collection/concurrent/TrieMap.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,7 @@ final class TrieMap[K, V] private (r: AnyRef, rtupd: AtomicReferenceFieldUpdater
713713

714714
def this() = this(Hashing.default, Equiv.universal)
715715

716-
override def mapFactory: StrictMapFactory[TrieMap] = TrieMap
716+
override def mapFactory: MapFactory[TrieMap] = TrieMap
717717

718718
/* internal methods */
719719

@@ -1040,7 +1040,7 @@ final class TrieMap[K, V] private (r: AnyRef, rtupd: AtomicReferenceFieldUpdater
10401040

10411041

10421042
@SerialVersionUID(3L)
1043-
object TrieMap extends StrictMapFactory[TrieMap] {
1043+
object TrieMap extends MapFactory[TrieMap] {
10441044

10451045
def empty[K, V]: TrieMap[K, V] = new TrieMap[K, V]
10461046

library/src/scala/collection/immutable/HashMap.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import scala.collection.Hashing.improve
2424
import scala.collection.Stepper.EfficientSplit
2525
import scala.collection.generic.DefaultSerializable
2626
import scala.collection.mutable, mutable.ReusableBuilder
27-
import scala.collection.{Iterator, StrictMapFactory, MapFactoryDefaults, Stepper, StepperShape, mutable}
27+
import scala.collection.{Iterator, MapFactory, MapFactoryDefaults, Stepper, StepperShape, mutable}
2828
import scala.runtime.AbstractFunction2
2929
import scala.runtime.Statics.releaseFence
3030
import scala.util.hashing.MurmurHash3
@@ -50,7 +50,7 @@ final class HashMap[K, +V] private[immutable] (private[immutable] val rootNode:
5050
// This release fence is present because rootNode may have previously been mutated during construction.
5151
releaseFence()
5252

53-
override def mapFactory: StrictMapFactory[HashMap] = HashMap
53+
override def mapFactory: MapFactory[HashMap] = HashMap
5454

5555
override def knownSize: Int = rootNode.size
5656

@@ -2194,7 +2194,7 @@ private final class MapNodeRemoveAllSetNodeIterator[K](rootSetNode: SetNode[K])
21942194
* @define coll immutable champ hash map
21952195
*/
21962196
@SerialVersionUID(3L)
2197-
object HashMap extends StrictMapFactory[HashMap] {
2197+
object HashMap extends MapFactory[HashMap] {
21982198

21992199
@transient
22002200
private final val EmptyMap = new HashMap(MapNode.empty)

library/src/scala/collection/immutable/ListMap.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ sealed class ListMap[K, +V]
5050
with MapFactoryDefaults[K, V, ListMap, Iterable]
5151
with DefaultSerializable {
5252

53-
override def mapFactory: StrictMapFactory[ListMap] = ListMap
53+
override def mapFactory: MapFactory[ListMap] = ListMap
5454

5555
override def size: Int = 0
5656

@@ -129,7 +129,7 @@ sealed class ListMap[K, +V]
129129
* @define coll list map
130130
*/
131131
@SerialVersionUID(3L)
132-
object ListMap extends StrictMapFactory[ListMap] {
132+
object ListMap extends MapFactory[ListMap] {
133133
/**
134134
* Represents an entry in the `ListMap`.
135135
*/

library/src/scala/collection/immutable/Map.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ trait Map[K, +V]
3030
with MapOps[K, V, Map, Map[K, V]]
3131
with MapFactoryDefaults[K, V, Map, Iterable] {
3232

33-
override def mapFactory: scala.collection.StrictMapFactory[Map] = Map
33+
override def mapFactory: scala.collection.MapFactory[Map] = Map
3434

3535
override final def toMap[K2, V2](implicit ev: (K, V) <:< (K2, V2)): Map[K2, V2] = Map.from(this.asInstanceOf[Map[K2, V2]])
3636

@@ -172,7 +172,7 @@ transparent trait StrictOptimizedMapOps[K, +V, +CC[X, +Y] <: MapOps[X, Y, CC, _]
172172
* @define Coll `immutable.Map`
173173
*/
174174
@SerialVersionUID(3L)
175-
object Map extends StrictMapFactory[Map] {
175+
object Map extends MapFactory[Map] {
176176

177177
@SerialVersionUID(3L)
178178
class WithDefault[K, +V](val underlying: Map[K, V], val defaultValue: K -> V)
@@ -189,7 +189,7 @@ object Map extends StrictMapFactory[Map] {
189189

190190
override def isEmpty: Boolean = underlying.isEmpty
191191

192-
override def mapFactory: StrictMapFactory[Map] = underlying.mapFactory
192+
override def mapFactory: MapFactory[Map] = underlying.mapFactory
193193

194194
override def concat [V2 >: V](xs: collection.IterableOnce[(K, V2)]^): WithDefault[K, V2] =
195195
new WithDefault(underlying.concat(xs), defaultValue)

library/src/scala/collection/immutable/SeqMap.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ trait SeqMap[K, +V]
4040
with collection.SeqMap[K, V]
4141
with MapOps[K, V, SeqMap, SeqMap[K, V]]
4242
with MapFactoryDefaults[K, V, SeqMap, Iterable] {
43-
override def mapFactory: StrictMapFactory[SeqMap] = SeqMap
43+
override def mapFactory: MapFactory[SeqMap] = SeqMap
4444
}
4545

4646

47-
object SeqMap extends StrictMapFactory[SeqMap] {
47+
object SeqMap extends MapFactory[SeqMap] {
4848
def empty[K, V]: SeqMap[K, V] = EmptySeqMap.asInstanceOf[SeqMap[K, V]]
4949

5050
def from[K, V](it: collection.IterableOnce[(K, V)]^): SeqMap[K, V] =

library/src/scala/collection/immutable/TreeSeqMap.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ final class TreeSeqMap[K, +V] private (
6161

6262
override protected[this] def className: String = "TreeSeqMap"
6363

64-
override def mapFactory: StrictMapFactory[TreeSeqMap] = TreeSeqMap
64+
override def mapFactory: MapFactory[TreeSeqMap] = TreeSeqMap
6565

6666
override val size = mapping.size
6767

@@ -289,7 +289,7 @@ final class TreeSeqMap[K, +V] private (
289289
@`inline` private[this] def value(p: (_, V)) = p._2
290290
@`inline` private[this] def binding(k: K) = mapping(k).copy(_1 = k)
291291
}
292-
object TreeSeqMap extends StrictMapFactory[TreeSeqMap] {
292+
object TreeSeqMap extends MapFactory[TreeSeqMap] {
293293
sealed trait OrderBy
294294
object OrderBy {
295295
case object Insertion extends OrderBy

library/src/scala/collection/immutable/VectorMap.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ final class VectorMap[K, +V] private (
168168
}
169169
}
170170

171-
override def mapFactory: StrictMapFactory[VectorMap] = VectorMap
171+
override def mapFactory: MapFactory[VectorMap] = VectorMap
172172

173173
override def contains(key: K): Boolean = underlying.contains(key)
174174

@@ -221,7 +221,7 @@ final class VectorMap[K, +V] private (
221221
}
222222
}
223223

224-
object VectorMap extends StrictMapFactory[VectorMap] {
224+
object VectorMap extends MapFactory[VectorMap] {
225225
//Class to mark deleted slots in 'fields'.
226226
//When one or more consecutive slots are deleted, the 'distance' of the first 'Tombstone'
227227
// represents the distance to the location of the next undeleted slot (or the last slot in 'fields' +1 if it does not exist).

0 commit comments

Comments
 (0)