@@ -20,7 +20,7 @@ package scala
20
20
* {{{
21
21
* val f: PartialFunction[Int, Any] = { case _ => 1/0 }
22
22
* }}}
23
- *
23
+ *
24
24
* It is the responsibility of the caller to call `isDefinedAt` before
25
25
* calling `apply`, because if `isDefinedAt` is false, it is not guaranteed
26
26
* `apply` will throw an exception to indicate an error condition. If an
@@ -161,7 +161,8 @@ trait PartialFunction[-A, +B] extends (A => B) { self =>
161
161
object PartialFunction {
162
162
/** Composite function produced by `PartialFunction#orElse` method
163
163
*/
164
- private class OrElse [- A , + B ] (f1 : PartialFunction [A , B ], f2 : PartialFunction [A , B ]) extends scala.runtime.AbstractPartialFunction [A , B ] {
164
+ private class OrElse [- A , + B ] (f1 : PartialFunction [A , B ], f2 : PartialFunction [A , B ])
165
+ extends scala.runtime.AbstractPartialFunction [A , B ] with Serializable {
165
166
def isDefinedAt (x : A ) = f1.isDefinedAt(x) || f2.isDefinedAt(x)
166
167
167
168
override def apply (x : A ): B = f1.applyOrElse(x, f2)
@@ -180,7 +181,7 @@ object PartialFunction {
180
181
181
182
/** Composite function produced by `PartialFunction#andThen` method
182
183
*/
183
- private class AndThen [- A , B , + C ] (pf : PartialFunction [A , B ], k : B => C ) extends PartialFunction [A , C ] {
184
+ private class AndThen [- A , B , + C ] (pf : PartialFunction [A , B ], k : B => C ) extends PartialFunction [A , C ] with Serializable {
184
185
def isDefinedAt (x : A ) = pf.isDefinedAt(x)
185
186
186
187
def apply (x : A ): C = k(pf(x))
@@ -217,15 +218,15 @@ object PartialFunction {
217
218
private def fallbackOccurred [B ](x : B ) = (fallback_pf eq x.asInstanceOf [AnyRef ])
218
219
219
220
private class Lifted [- A , + B ] (val pf : PartialFunction [A , B ])
220
- extends scala.runtime.AbstractFunction1 [A , Option [B ]] {
221
+ extends scala.runtime.AbstractFunction1 [A , Option [B ]] with Serializable {
221
222
222
223
def apply (x : A ): Option [B ] = {
223
224
val z = pf.applyOrElse(x, checkFallback[B ])
224
225
if (! fallbackOccurred(z)) Some (z) else None
225
226
}
226
227
}
227
228
228
- private class Unlifted [A , B ] (f : A => Option [B ]) extends scala.runtime.AbstractPartialFunction [A , B ] {
229
+ private class Unlifted [A , B ] (f : A => Option [B ]) extends scala.runtime.AbstractPartialFunction [A , B ] with Serializable {
229
230
def isDefinedAt (x : A ): Boolean = f(x).isDefined
230
231
231
232
override def applyOrElse [A1 <: A , B1 >: B ](x : A1 , default : A1 => B1 ): B1 = {
0 commit comments