   }
 
   executor.execute(after: timeout) { [weak promise] in
-    guard let promise = promise else { return }
-
     if cancellationToken?.isCancelled ?? false {
-      promise.cancel()
+      promise?.cancel()
     } else {
       let completion = fallible(block: block)
-      promise.complete(with: completion)
+      promise?.complete(with: completion)
     }
   }
   return promise

  }

  executor.execute(after: timeout) { [weak promise] in
    guard let promise = promise else { return }

    if cancellationToken?.isCancelled ?? false {
      promise.cancel()
    } else {
      do { promise.complete(with: try block()) }
      catch { promise.fail(with: error) }
    }
  }
  return promise

  // Test: FutureTests.testMakeFutureOfBlock_Failure
  let promise = Promise<T>()
  executor.execute { [weak promise] in
    guard nil != promise else { return }
    let value = fallible(block: block)
    promise?.complete(with: value)
  }
  return promise
}
