Skip to content

Commit 18c4f7a

Browse files
committed
Fix Cancellable for ver 3.x API compatibility.
1 parent 47ffe6a commit 18c4f7a

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

SwiftTask/Cancellable.swift

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ public protocol Cancellable
1212
{
1313
typealias Error
1414

15-
func cancel(error: Error) -> Bool
15+
//
16+
// NOTE:
17+
// Single `func cancel(error: Error) -> Bool` is preferred (as first implemented in 8a22ed5),
18+
// but two overloaded methods are required for SwiftTask ver 3.x API compatibility.
19+
//
20+
func cancel() -> Bool
21+
func cancel(#error: Error) -> Bool
1622
}
1723

1824
public class Canceller: Cancellable
@@ -24,7 +30,12 @@ public class Canceller: Cancellable
2430
self.cancelHandler = cancelHandler
2531
}
2632

27-
public func cancel(error: Void) -> Bool
33+
public func cancel() -> Bool
34+
{
35+
return self.cancel(error: ())
36+
}
37+
38+
public func cancel(#error: Void) -> Bool
2839
{
2940
if let cancelHandler = self.cancelHandler {
3041
self.cancelHandler = nil

SwiftTask/SwiftTask.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -564,10 +564,10 @@ public class Task<Progress, Value, Error>: Cancellable, Printable
564564
//
565565
public func cancel() -> Bool
566566
{
567-
return self.cancel(nil)
567+
return self.cancel(error: nil)
568568
}
569569

570-
public func cancel(error: Error?) -> Bool
570+
public func cancel(#error: Error?) -> Bool
571571
{
572572
return self._cancel(error: error)
573573
}

SwiftTaskTests/SwiftTaskTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ class SwiftTaskTests: _TestCase
598598
// cancel at time between 1st & 2nd delay (t=0.3)
599599
Async.main(after: 0.3) {
600600

601-
task.cancel("I get bored.")
601+
task.cancel(error: "I get bored.")
602602

603603
XCTAssertEqual(task.state, TaskState.Cancelled)
604604

@@ -635,7 +635,7 @@ class SwiftTaskTests: _TestCase
635635
// cancel task3 at time between task1 fulfilled & before task2 completed (t=0.6)
636636
Async.main(after: 0.6) {
637637

638-
task3.cancel("I get bored.")
638+
task3.cancel(error: "I get bored.")
639639

640640
XCTAssertEqual(task3.state, TaskState.Cancelled)
641641

@@ -1175,7 +1175,7 @@ class SwiftTaskTests: _TestCase
11751175

11761176
// cancel before fulfilled
11771177
Async.main(after: 0.01) {
1178-
groupedTask.cancel("Cancel")
1178+
groupedTask.cancel(error: "Cancel")
11791179
return
11801180
}
11811181

@@ -1390,7 +1390,7 @@ class SwiftTaskTests: _TestCase
13901390

13911391
// cancel before fulfilled
13921392
self.perform {
1393-
groupedTask.cancel("Cancel")
1393+
groupedTask.cancel(error: "Cancel")
13941394
return
13951395
}
13961396

0 commit comments

Comments
 (0)