Skip to content

Commit 02e7cf6

Browse files
authored
Merge pull request #133 from ReactiveCocoa/anyerror
Use AnyError for `URLSession.reactive.data(with:)`
2 parents c30941c + 9f25484 commit 02e7cf6

File tree

8 files changed

+14
-8
lines changed

8 files changed

+14
-8
lines changed

.Package.test.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import PackageDescription
33
let package = Package(
44
name: "ReactiveSwift",
55
dependencies: [
6-
.Package(url: "https://github.com/antitypical/Result.git", majorVersion: 3),
6+
.Package(url: "https://github.com/antitypical/Result.git", versions: Version(3, 1, 0)..<Version(3, .max, .max)),
77
.Package(url: "https://github.com/Quick/Quick", majorVersion: 1),
88
.Package(url: "https://github.com/Quick/Nimble", majorVersion: 5, minor: 1),
99
],

Cartfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
github "antitypical/Result" ~> 3.0
1+
github "antitypical/Result" ~> 3.1

Cartfile.resolved

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
github "Quick/Nimble" "v5.1.1"
22
github "Quick/Quick" "v1.0.0"
3-
github "antitypical/Result" "3.0.0"
3+
github "antitypical/Result" "3.1.0"
44
github "jspahrsummers/xcconfigs" "3d9d99634cae6d586e272543d527681283b33eb0"

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import PackageDescription
33
let package = Package(
44
name: "ReactiveSwift",
55
dependencies: [
6-
.Package(url: "https://github.com/antitypical/Result.git", majorVersion: 3),
6+
.Package(url: "https://github.com/antitypical/Result.git", versions: Version(3, 1, 0)..<Version(3, .max, .max)),
77
],
88
exclude: [
99
"Sources/Deprecations+Removals.swift",

ReactiveSwift.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ Pod::Spec.new do |s|
1717
s.source = { :git => "https://github.com/ReactiveCocoa/ReactiveSwift.git", :tag => "#{s.version}" }
1818
# Directory glob for all Swift files
1919
s.source_files = "Sources/*.{swift}"
20-
s.dependency 'Result', '~> 3.0'
20+
s.dependency 'Result', '~> 3.1'
2121
end

Sources/Deprecations+Removals.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,11 @@ extension URLSession {
358358
public func rac_data(with request: URLRequest) -> SignalProducer<(Data, URLResponse), NSError> { fatalError() }
359359
}
360360

361+
extension Reactive where Base: URLSession {
362+
@available(*, unavailable, message:"Use the overload which returns `SignalProducer<(Data, URLResponse), AnyError>` instead, and cast `AnyError.error` to `NSError` as you need")
363+
public func data(with request: URLRequest) -> SignalProducer<(Data, URLResponse), NSError> { fatalError() }
364+
}
365+
361366
// Free functions
362367

363368
@available(*, unavailable, message:"timer(interval:on:) now uses DispatchTimeInterval")

Sources/FoundationExtensions.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import Foundation
1010
import Dispatch
1111
import enum Result.NoError
12+
import struct Result.AnyError
1213

1314
#if os(Linux)
1415
import let CDispatch.NSEC_PER_USEC
@@ -61,14 +62,14 @@ extension Reactive where Base: URLSession {
6162
/// - note: This method will not send an error event in the case of a server
6263
/// side error (i.e. when a response with status code other than
6364
/// 200...299 is received).
64-
public func data(with request: URLRequest) -> SignalProducer<(Data, URLResponse), NSError> {
65+
public func data(with request: URLRequest) -> SignalProducer<(Data, URLResponse), AnyError> {
6566
return SignalProducer { [base = self.base] observer, disposable in
6667
let task = base.dataTask(with: request) { data, response, error in
6768
if let data = data, let response = response {
6869
observer.send(value: (data, response))
6970
observer.sendCompleted()
7071
} else {
71-
observer.send(error: error as NSError? ?? defaultSessionError)
72+
observer.send(error: AnyError(error ?? defaultSessionError))
7273
}
7374
}
7475

0 commit comments

Comments
 (0)