@@ -14,7 +14,7 @@ package scala.collection.compat
1414
1515import scala .collection .generic ._
1616import scala .reflect .ClassTag
17- import scala .collection .{MapLike , GenTraversable , BitSet }
17+ import scala .collection .{MapLike , GenTraversable , BitSet , IterableView }
1818import scala .collection .{immutable => i , mutable => m }
1919import scala .{collection => c }
2020
@@ -155,6 +155,9 @@ private[compat] trait PackageShared {
155155 // in scala-library so we can't add to it
156156 type IterableOnce [+ X ] = c.TraversableOnce [X ]
157157 val IterableOnce = c.TraversableOnce
158+
159+ implicit def toMapViewExtensionMethods [K , V , C <: scala.collection.Map [K , V ]](self : IterableView [(K , V ), C ]): MapViewExtensionMethods [K , V , C ] =
160+ new MapViewExtensionMethods [K , V , C ](self)
158161}
159162
160163class ImmutableSortedMapExtensions (private val fact : i.SortedMap .type ) extends AnyVal {
@@ -231,3 +234,8 @@ class TraversableOnceExtensionMethods[A](private val self: c.TraversableOnce[A])
231234class TraversableExtensionMethods [A ](private val self : c.Traversable [A ]) extends AnyVal {
232235 def iterableFactory : GenericCompanion [Traversable ] = self.companion
233236}
237+
238+ class MapViewExtensionMethods [K , V , C <: scala.collection.Map [K , V ]](private val self : IterableView [(K , V ), C ]) extends AnyVal {
239+ def mapValues [W , That ](f : V => W )(implicit bf : CanBuildFrom [IterableView [(K , V ), C ], (K , W ), That ]): That =
240+ self.map[(K , W ), That ] { case (k, v) => (k, f(v)) }
241+ }
0 commit comments