From dfe416eaadc05a7262cfae16237d1a5d03049f14 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Sat, 17 Sep 2016 17:21:05 +0200 Subject: [PATCH] Fixes Futures' `or` operation so that asyncftpclient compiles. --- lib/pure/asyncdispatch.nim | 6 +++--- lib/upcoming/asyncdispatch.nim | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim index 06c21e08d5..f9085de554 100644 --- a/lib/pure/asyncdispatch.nim +++ b/lib/pure/asyncdispatch.nim @@ -383,11 +383,11 @@ proc `or`*[T, Y](fut1: Future[T], fut2: Future[Y]): Future[void] = ## Returns a future which will complete once either ``fut1`` or ``fut2`` ## complete. var retFuture = newFuture[void]("asyncdispatch.`or`") - proc cb(fut: Future[T]) = + proc cb[X](fut: Future[X]) = if fut.failed: retFuture.fail(fut.error) if not retFuture.finished: retFuture.complete() - fut1.callback = cb - fut2.callback = cb + fut1.callback = cb[T] + fut2.callback = cb[Y] return retFuture proc all*[T](futs: varargs[Future[T]]): auto = diff --git a/lib/upcoming/asyncdispatch.nim b/lib/upcoming/asyncdispatch.nim index 460dfbd1a0..4465e961c9 100644 --- a/lib/upcoming/asyncdispatch.nim +++ b/lib/upcoming/asyncdispatch.nim @@ -353,11 +353,11 @@ proc `or`*[T, Y](fut1: Future[T], fut2: Future[Y]): Future[void] = ## Returns a future which will complete once either ``fut1`` or ``fut2`` ## complete. var retFuture = newFuture[void]("asyncdispatch.`or`") - proc cb(fut: Future[T]) = + proc cb[X](fut: Future[X]) = if fut.failed: retFuture.fail(fut.error) if not retFuture.finished: retFuture.complete() - fut1.callback = cb - fut2.callback = cb + fut1.callback = cb[T] + fut2.callback = cb[Y] return retFuture proc all*[T](futs: varargs[Future[T]]): auto =