@@ -14,7 +14,7 @@ package scala.collection.compat
14
14
15
15
import scala .collection .generic ._
16
16
import scala .reflect .ClassTag
17
- import scala .collection .{MapLike , GenTraversable , BitSet }
17
+ import scala .collection .{MapLike , GenTraversable , BitSet , IterableView }
18
18
import scala .collection .{immutable => i , mutable => m }
19
19
import scala .{collection => c }
20
20
@@ -155,6 +155,9 @@ private[compat] trait PackageShared {
155
155
// in scala-library so we can't add to it
156
156
type IterableOnce [+ X ] = c.TraversableOnce [X ]
157
157
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)
158
161
}
159
162
160
163
class ImmutableSortedMapExtensions (private val fact : i.SortedMap .type ) extends AnyVal {
@@ -231,3 +234,8 @@ class TraversableOnceExtensionMethods[A](private val self: c.TraversableOnce[A])
231
234
class TraversableExtensionMethods [A ](private val self : c.Traversable [A ]) extends AnyVal {
232
235
def iterableFactory : GenericCompanion [Traversable ] = self.companion
233
236
}
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