@@ -12,6 +12,7 @@ abstract class SimpleIdentitySet[+Elem <: AnyRef] {
12
12
def contains [E >: Elem <: AnyRef ](x : E ): Boolean
13
13
def foreach (f : Elem => Unit ): Unit
14
14
def exists [E >: Elem <: AnyRef ](p : E => Boolean ): Boolean
15
+ def map [B <: AnyRef ](f : Elem => B ): SimpleIdentitySet [B ]
15
16
def /: [A , E >: Elem <: AnyRef ](z : A )(f : (A , E ) => A ): A
16
17
def toList : List [Elem ]
17
18
@@ -55,6 +56,7 @@ object SimpleIdentitySet {
55
56
def contains [E <: AnyRef ](x : E ): Boolean = false
56
57
def foreach (f : Nothing => Unit ): Unit = ()
57
58
def exists [E <: AnyRef ](p : E => Boolean ): Boolean = false
59
+ def map [B <: AnyRef ](f : Nothing => B ): SimpleIdentitySet [B ] = empty
58
60
def /: [A , E <: AnyRef ](z : A )(f : (A , E ) => A ): A = z
59
61
def toList = Nil
60
62
}
@@ -69,6 +71,8 @@ object SimpleIdentitySet {
69
71
def foreach (f : Elem => Unit ): Unit = f(x0.asInstanceOf [Elem ])
70
72
def exists [E >: Elem <: AnyRef ](p : E => Boolean ): Boolean =
71
73
p(x0.asInstanceOf [E ])
74
+ def map [B <: AnyRef ](f : Elem => B ): SimpleIdentitySet [B ] =
75
+ Set1 (f(x0.asInstanceOf [Elem ]))
72
76
def /: [A , E >: Elem <: AnyRef ](z : A )(f : (A , E ) => A ): A =
73
77
f(z, x0.asInstanceOf [E ])
74
78
def toList = x0.asInstanceOf [Elem ] :: Nil
@@ -86,6 +90,8 @@ object SimpleIdentitySet {
86
90
def foreach (f : Elem => Unit ): Unit = { f(x0.asInstanceOf [Elem ]); f(x1.asInstanceOf [Elem ]) }
87
91
def exists [E >: Elem <: AnyRef ](p : E => Boolean ): Boolean =
88
92
p(x0.asInstanceOf [E ]) || p(x1.asInstanceOf [E ])
93
+ def map [B <: AnyRef ](f : Elem => B ): SimpleIdentitySet [B ] =
94
+ Set2 (f(x0.asInstanceOf [Elem ]), f(x1.asInstanceOf [Elem ]))
89
95
def /: [A , E >: Elem <: AnyRef ](z : A )(f : (A , E ) => A ): A =
90
96
f(f(z, x0.asInstanceOf [E ]), x1.asInstanceOf [E ])
91
97
def toList = x0.asInstanceOf [Elem ] :: x1.asInstanceOf [Elem ] :: Nil
@@ -114,6 +120,8 @@ object SimpleIdentitySet {
114
120
}
115
121
def exists [E >: Elem <: AnyRef ](p : E => Boolean ): Boolean =
116
122
p(x0.asInstanceOf [E ]) || p(x1.asInstanceOf [E ]) || p(x2.asInstanceOf [E ])
123
+ def map [B <: AnyRef ](f : Elem => B ): SimpleIdentitySet [B ] =
124
+ Set3 (f(x0.asInstanceOf [Elem ]), f(x1.asInstanceOf [Elem ]), f(x2.asInstanceOf [Elem ]))
117
125
def /: [A , E >: Elem <: AnyRef ](z : A )(f : (A , E ) => A ): A =
118
126
f(f(f(z, x0.asInstanceOf [E ]), x1.asInstanceOf [E ]), x2.asInstanceOf [E ])
119
127
def toList = x0.asInstanceOf [Elem ] :: x1.asInstanceOf [Elem ] :: x2.asInstanceOf [Elem ] :: Nil
@@ -156,6 +164,8 @@ object SimpleIdentitySet {
156
164
}
157
165
def exists [E >: Elem <: AnyRef ](p : E => Boolean ): Boolean =
158
166
xs.asInstanceOf [Array [E ]].exists(p)
167
+ def map [B <: AnyRef ](f : Elem => B ): SimpleIdentitySet [B ] =
168
+ SetN (xs.map(x => f(x.asInstanceOf [Elem ]).asInstanceOf [AnyRef ]))
159
169
def /: [A , E >: Elem <: AnyRef ](z : A )(f : (A , E ) => A ): A =
160
170
xs.asInstanceOf [Array [E ]].foldLeft(z)(f)
161
171
def toList : List [Elem ] = {
0 commit comments