summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/concurrent/Future.scala7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/library/scala/concurrent/Future.scala b/src/library/scala/concurrent/Future.scala
index 3650e44261..73f76bbbfb 100644
--- a/src/library/scala/concurrent/Future.scala
+++ b/src/library/scala/concurrent/Future.scala
@@ -327,7 +327,7 @@ self =>
*
* {{{
* val f = future { Int.MaxValue }
- * future (6 / 0) rescue { case e: ArithmeticException => f } // result: Int.MaxValue
+ * future (6 / 0) recoverWith { case e: ArithmeticException => f } // result: Int.MaxValue
* }}}
*/
def recoverWith[U >: T](pf: PartialFunction[Throwable, Future[U]]): Future[U] = {
@@ -336,10 +336,7 @@ self =>
onComplete {
case Failure(t) if pf isDefinedAt t =>
try {
- pf(t) onComplete {
- case Failure(t) => p failure t
- case Success(v) => p success v
- }
+ p completeWith pf(t)
} catch {
case t: Throwable => p complete resolver(t)
}