Skip to content

Commit 087f066

Browse files
dougzilla32mxcl
authored andcommitted
'Cancel' for PromiseKit: fix for #1026, plus cleanup
* Fix "Typechecking timeout compiling tests in v7 #1026" by specifying the closure return type in DispatcherTests * Remove unnecessary "#if swift" checks in the cancellable code and tests
1 parent 34e3114 commit 087f066

7 files changed

+2
-42
lines changed

Diff for: Sources/CancellablePromise.swift

-2
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ public class CancellablePromise<T>: CancellableThenable, CancellableCatchMixin {
127127
}
128128
}
129129

130-
#if swift(>=3.1)
131130
extension CancellablePromise where T == Void {
132131
/// Initializes a new cancellable promise fulfilled with `Void`
133132
public convenience init() {
@@ -140,4 +139,3 @@ extension CancellablePromise where T == Void {
140139
self.appendCancellable(cancellable, reject: nil)
141140
}
142141
}
143-
#endif

Diff for: Tests/Cancel/CancelChain.swift

-4
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,7 @@ class CancelChain: XCTestCase {
153153

154154
self.trace("SETUP COMPLETE")
155155

156-
#if swift(>=4.1)
157156
let expectations = [ex.a, ex.b, ex.c, ex.d, ex.e, ex.cancelled].compactMap { $0 }
158-
#else
159-
let expectations = [ex.a, ex.b, ex.c, ex.d, ex.e, ex.cancelled].flatMap { $0 }
160-
#endif
161157
wait(for: expectations, timeout: 1)
162158

163159
XCTAssert(c.pA.cancelContext.cancelAttempted)

Diff for: Tests/Cancel/CancellableErrorTests.swift

-2
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,12 @@ class CancellationTests: XCTestCase {
101101
waitForExpectations(timeout: 1)
102102
}
103103

104-
#if swift(>=3.2)
105104
func testIsCancelled() {
106105
XCTAssertTrue(PMKError.cancelled.isCancelled)
107106
XCTAssertTrue(URLError.cancelled.isCancelled)
108107
XCTAssertTrue(CocoaError.cancelled.isCancelled)
109108
XCTAssertFalse(CocoaError(_nsError: NSError(domain: NSCocoaErrorDomain, code: CocoaError.Code.coderInvalidValue.rawValue)).isCancelled)
110109
}
111-
#endif
112110
}
113111

114112
private enum LocalError: CancellableError {

Diff for: Tests/Cancel/DispatcherTests.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ class DispatcherTests: XCTestCase {
109109
Promise.value(v + 10).cancellize()
110110
}.thenMap(on: .global(qos: .background), flags: .barrier) { v -> Promise<Int> in
111111
Promise.value(v + 10)
112-
}.thenFlatMap(on: .global(qos: .background), flags: .barrier) {
113-
Promise.value([$0 + 10]).cancellize()
112+
}.thenFlatMap(on: .global(qos: .background), flags: .barrier) { v -> CancellablePromise<[Int]> in
113+
Promise.value([v + 10]).cancellize()
114114
}.thenFlatMap(on: .global(qos: .background), flags: .barrier) { v -> Promise<[Int]> in
115115
Promise.value([v + 10])
116116
}.filterValues(on: .global(qos: .background), flags: .barrier) { _ in

Diff for: Tests/Cancel/GuaranteeTests.swift

-16
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,10 @@ class GuaranteeTests: XCTestCase {
4343
}
4444

4545
func testCancellable() {
46-
#if swift(>=4.0)
4746
var resolver: ((()) -> Void)!
48-
#else
49-
var resolver: ((Void) -> Void)!
50-
#endif
5147

5248
let task = DispatchWorkItem {
53-
#if swift(>=4.0)
5449
resolver(())
55-
#else
56-
resolver()
57-
#endif
5850
}
5951

6052
q.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: task)
@@ -76,18 +68,10 @@ class GuaranteeTests: XCTestCase {
7668
}
7769

7870
func testSetCancellable() {
79-
#if swift(>=4.0)
8071
var resolver: ((()) -> Void)!
81-
#else
82-
var resolver: ((Void) -> Void)!
83-
#endif
8472

8573
let task = DispatchWorkItem {
86-
#if swift(>=4.0)
8774
resolver(())
88-
#else
89-
resolver()
90-
#endif
9175
}
9276

9377
q.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: task)

Diff for: Tests/Cancel/PromiseTests.swift

-14
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,10 @@ class PromiseTests: XCTestCase {
8686
_ = CancellablePromise().map { Error.dummy }
8787
}
8888

89-
#if swift(>=3.1)
9089
func testCanMakeVoidPromise() {
9190
_ = CancellablePromise()
9291
_ = Guarantee()
9392
}
94-
#endif
9593

9694
enum Error: Swift.Error {
9795
case dummy
@@ -154,11 +152,7 @@ class PromiseTests: XCTestCase {
154152
var resolver: Resolver<Void>!
155153

156154
let task = DispatchWorkItem {
157-
#if swift(>=4.0)
158155
resolver.fulfill(())
159-
#else
160-
resolver.fulfill()
161-
#endif
162156
}
163157

164158
q.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: task)
@@ -183,11 +177,7 @@ class PromiseTests: XCTestCase {
183177
var resolver: Resolver<Void>!
184178

185179
let task = DispatchWorkItem {
186-
#if swift(>=4.0)
187180
resolver.fulfill(())
188-
#else
189-
resolver.fulfill()
190-
#endif
191181
}
192182

193183
q.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: task)
@@ -215,11 +205,7 @@ class PromiseTests: XCTestCase {
215205
var resolver: Resolver<Void>!
216206

217207
let task = DispatchWorkItem {
218-
#if swift(>=4.0)
219208
resolver.fulfill(())
220-
#else
221-
resolver.fulfill()
222-
#endif
223209
}
224210

225211
q.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: task)

Diff for: Tests/Cancel/ResolverTests.swift

-2
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,6 @@ class WrapTests: XCTestCase {
244244
wait(for: [ex1, ex2] ,timeout: 1)
245245
}
246246

247-
#if swift(>=3.1)
248247
func testVoidCompletionValue() {
249248
let ex1 = expectation(description: "")
250249
let kf1 = KittenFetcher(value: nil, error: nil)
@@ -284,7 +283,6 @@ class WrapTests: XCTestCase {
284283

285284
wait(for: [ex1, ex2], timeout: 1)
286285
}
287-
#endif
288286

289287
func testIsFulfilled() {
290288
let p1 = Promise.value(()).cancellize()

0 commit comments

Comments
 (0)