WIP. Update for Xcode 8 beta 4.
This commit is contained in:
parent
3b34850675
commit
7f84ec604e
|
|
@ -79,7 +79,7 @@ Sequences in Rx are described by a push interface (aka callback).
|
||||||
```swift
|
```swift
|
||||||
enum Event<Element> {
|
enum Event<Element> {
|
||||||
case Next(Element) // next element of a sequence
|
case Next(Element) // next element of a sequence
|
||||||
case Error(ErrorProtocol) // sequence failed with error
|
case Error(Swift.Error) // sequence failed with error
|
||||||
case Completed // sequence terminated successfully
|
case Completed // sequence terminated successfully
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -102,7 +102,7 @@ If a sequence does not terminate in some way, resources will be allocated perman
|
||||||
|
|
||||||
**Using dispose bags or `takeUntil` operator is a robust way of making sure resources are cleaned up. We recommend using them in production even if the sequences will terminate in finite time.**
|
**Using dispose bags or `takeUntil` operator is a robust way of making sure resources are cleaned up. We recommend using them in production even if the sequences will terminate in finite time.**
|
||||||
|
|
||||||
In case you are curious why `ErrorProtocol` isn't generic, you can find explanation [here](DesignRationale.md#why-error-type-isnt-generic).
|
In case you are curious why `Swift.Error` isn't generic, you can find explanation [here](DesignRationale.md#why-error-type-isnt-generic).
|
||||||
|
|
||||||
## Disposing
|
## Disposing
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,4 +28,4 @@ What works:
|
||||||
What doesn't work:
|
What doesn't work:
|
||||||
* Schedulers - because they are dependent on https://github.com/apple/swift-corelibs-libdispatch and it still hasn't been released
|
* Schedulers - because they are dependent on https://github.com/apple/swift-corelibs-libdispatch and it still hasn't been released
|
||||||
* Multithreading - still no access to c11 locks
|
* Multithreading - still no access to c11 locks
|
||||||
* For some reason it looks like Swift compiler generates wrong code when using `ErrorProtocol` on `Linux`, so don't use errors, otherwise you can get weird crashes.
|
* For some reason it looks like Swift compiler generates wrong code when using `Swift.Error` on `Linux`, so don't use errors, otherwise you can get weird crashes.
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ public func printExampleHeader(description: String) {
|
||||||
print("\n--- \(description) example ---")
|
print("\n--- \(description) example ---")
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Error: ErrorProtocol {
|
public enum Error: Swift.Error {
|
||||||
case test
|
case test
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ public enum Error: ErrorProtocol {
|
||||||
public func delay(delay: Double, closure: (Void) -> Void) {
|
public func delay(delay: Double, closure: (Void) -> Void) {
|
||||||
|
|
||||||
let delayTime = DispatchTime.now() + DispatchTimeInterval.seconds(Int(delay))
|
let delayTime = DispatchTime.now() + DispatchTimeInterval.seconds(Int(delay))
|
||||||
DispatchQueue.main.after(when: delayTime) {
|
DispatchQueue.main.asyncAfter(deadline: delayTime) {
|
||||||
closure()
|
closure()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ extension BlockingObservable {
|
||||||
public func toArray() throws -> [E] {
|
public func toArray() throws -> [E] {
|
||||||
var elements: [E] = Array<E>()
|
var elements: [E] = Array<E>()
|
||||||
|
|
||||||
var error: ErrorProtocol?
|
var error: Swift.Error?
|
||||||
|
|
||||||
let lock = RunLoopLock()
|
let lock = RunLoopLock()
|
||||||
|
|
||||||
|
|
@ -70,7 +70,7 @@ extension BlockingObservable {
|
||||||
public func first() throws -> E? {
|
public func first() throws -> E? {
|
||||||
var element: E?
|
var element: E?
|
||||||
|
|
||||||
var error: ErrorProtocol?
|
var error: Swift.Error?
|
||||||
|
|
||||||
let d = SingleAssignmentDisposable()
|
let d = SingleAssignmentDisposable()
|
||||||
|
|
||||||
|
|
@ -122,7 +122,7 @@ extension BlockingObservable {
|
||||||
public func last() throws -> E? {
|
public func last() throws -> E? {
|
||||||
var element: E?
|
var element: E?
|
||||||
|
|
||||||
var error: ErrorProtocol?
|
var error: Swift.Error?
|
||||||
|
|
||||||
let d = SingleAssignmentDisposable()
|
let d = SingleAssignmentDisposable()
|
||||||
|
|
||||||
|
|
@ -183,7 +183,7 @@ extension BlockingObservable {
|
||||||
public func single(_ predicate: (E) throws -> Bool) throws -> E? {
|
public func single(_ predicate: (E) throws -> Bool) throws -> E? {
|
||||||
var element: E?
|
var element: E?
|
||||||
|
|
||||||
var error: ErrorProtocol?
|
var error: Swift.Error?
|
||||||
|
|
||||||
let d = SingleAssignmentDisposable()
|
let d = SingleAssignmentDisposable()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ extension DriverConvertibleType {
|
||||||
- returns: The source sequence with the side-effecting behavior applied.
|
- returns: The source sequence with the side-effecting behavior applied.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
||||||
public func doOn(onNext: ((E) -> Void)? = nil, onError: ((ErrorProtocol) -> Void)? = nil, onCompleted: (() -> Void)? = nil)
|
public func doOn(onNext: ((E) -> Void)? = nil, onError: ((Swift.Error) -> Void)? = nil, onCompleted: (() -> Void)? = nil)
|
||||||
-> Driver<E> {
|
-> Driver<E> {
|
||||||
let source = self.asObservable()
|
let source = self.asObservable()
|
||||||
.doOn(onNext: onNext, onError: onError, onCompleted: onCompleted)
|
.doOn(onNext: onNext, onError: onError, onCompleted: onCompleted)
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ extension ObservableConvertibleType {
|
||||||
- returns: Driving observable sequence.
|
- returns: Driving observable sequence.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
||||||
public func asDriver(onErrorRecover: (error: ErrorProtocol) -> Driver<E>) -> Driver<E> {
|
public func asDriver(onErrorRecover: (error: Swift.Error) -> Driver<E>) -> Driver<E> {
|
||||||
let source = self
|
let source = self
|
||||||
.asObservable()
|
.asObservable()
|
||||||
.observeOn(driverObserveOnScheduler)
|
.observeOn(driverObserveOnScheduler)
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,10 @@ extension NSObject {
|
||||||
- returns: Observable sequence of object deallocating events.
|
- returns: Observable sequence of object deallocating events.
|
||||||
*/
|
*/
|
||||||
public func rx_sentMessage(_ selector: Selector) -> Observable<[AnyObject]> {
|
public func rx_sentMessage(_ selector: Selector) -> Observable<[AnyObject]> {
|
||||||
|
return Observable.create { _ in
|
||||||
|
return AnonymousDisposable {}
|
||||||
|
}
|
||||||
|
/*
|
||||||
return rx_synchronized {
|
return rx_synchronized {
|
||||||
// in case of dealloc selector replay subject behavior needs to be used
|
// in case of dealloc selector replay subject behavior needs to be used
|
||||||
if selector == deallocSelector {
|
if selector == deallocSelector {
|
||||||
|
|
@ -160,7 +164,7 @@ extension NSObject {
|
||||||
|
|
||||||
subject.targetImplementation = targetImplementation
|
subject.targetImplementation = targetImplementation
|
||||||
return subject.asObservable()
|
return subject.asObservable()
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -174,6 +178,10 @@ extension NSObject {
|
||||||
- returns: Observable sequence of object deallocating events.
|
- returns: Observable sequence of object deallocating events.
|
||||||
*/
|
*/
|
||||||
public var rx_deallocating: Observable<()> {
|
public var rx_deallocating: Observable<()> {
|
||||||
|
return Observable.create { _ in
|
||||||
|
return AnonymousDisposable {}
|
||||||
|
}
|
||||||
|
/*
|
||||||
return rx_synchronized {
|
return rx_synchronized {
|
||||||
|
|
||||||
let subject: DeallocatingObservable
|
let subject: DeallocatingObservable
|
||||||
|
|
@ -202,7 +210,7 @@ extension NSObject {
|
||||||
|
|
||||||
subject.targetImplementation = targetImplementation!
|
subject.targetImplementation = targetImplementation!
|
||||||
return subject.asObservable()
|
return subject.asObservable()
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import RxSwift
|
||||||
RxCocoa URL errors.
|
RxCocoa URL errors.
|
||||||
*/
|
*/
|
||||||
public enum RxCocoaURLError
|
public enum RxCocoaURLError
|
||||||
: ErrorProtocol
|
: Swift.Error
|
||||||
, CustomDebugStringConvertible {
|
, CustomDebugStringConvertible {
|
||||||
/**
|
/**
|
||||||
Unknown error occurred.
|
Unknown error occurred.
|
||||||
|
|
@ -32,7 +32,7 @@ public enum RxCocoaURLError
|
||||||
/**
|
/**
|
||||||
Deserialization error.
|
Deserialization error.
|
||||||
*/
|
*/
|
||||||
case deserializationError(error: ErrorProtocol)
|
case deserializationError(error: Swift.Error)
|
||||||
}
|
}
|
||||||
|
|
||||||
public extension RxCocoaURLError {
|
public extension RxCocoaURLError {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import RxSwift
|
||||||
RxCocoa errors.
|
RxCocoa errors.
|
||||||
*/
|
*/
|
||||||
public enum RxCocoaError
|
public enum RxCocoaError
|
||||||
: ErrorProtocol
|
: Swift.Error
|
||||||
, CustomDebugStringConvertible {
|
, CustomDebugStringConvertible {
|
||||||
/**
|
/**
|
||||||
Unknown error has occurred.
|
Unknown error has occurred.
|
||||||
|
|
@ -69,7 +69,7 @@ public enum RxCocoaInterceptionMechanism {
|
||||||
RxCocoa ObjC runtime modification errors.
|
RxCocoa ObjC runtime modification errors.
|
||||||
*/
|
*/
|
||||||
public enum RxCocoaObjCRuntimeError
|
public enum RxCocoaObjCRuntimeError
|
||||||
: ErrorProtocol
|
: Swift.Error
|
||||||
, CustomDebugStringConvertible {
|
, CustomDebugStringConvertible {
|
||||||
/**
|
/**
|
||||||
Unknown error has occurred.
|
Unknown error has occurred.
|
||||||
|
|
@ -193,23 +193,23 @@ public extension RxCocoaObjCRuntimeError {
|
||||||
switch self {
|
switch self {
|
||||||
case let .unknown(target):
|
case let .unknown(target):
|
||||||
return "Unknown error occurred.\nTarget: `\(target)`"
|
return "Unknown error occurred.\nTarget: `\(target)`"
|
||||||
case let objectMessagesAlreadyBeingIntercepted(target, interceptionMechanism):
|
case let .objectMessagesAlreadyBeingIntercepted(target, interceptionMechanism):
|
||||||
let interceptionMechanismDescription = interceptionMechanism == .kvo ? "KVO" : "other interception mechanism"
|
let interceptionMechanismDescription = interceptionMechanism == .kvo ? "KVO" : "other interception mechanism"
|
||||||
return "Collision between RxCocoa interception mechanism and \(interceptionMechanismDescription)."
|
return "Collision between RxCocoa interception mechanism and \(interceptionMechanismDescription)."
|
||||||
+ " To resolve this conflict please use this interception mechanism first.\nTarget: \(target)"
|
+ " To resolve this conflict please use this interception mechanism first.\nTarget: \(target)"
|
||||||
case let selectorNotImplemented(target):
|
case let .selectorNotImplemented(target):
|
||||||
return "Trying to observe messages for selector that isn't implemented.\nTarget: \(target)"
|
return "Trying to observe messages for selector that isn't implemented.\nTarget: \(target)"
|
||||||
case let cantInterceptCoreFoundationTollFreeBridgedObjects(target):
|
case let .cantInterceptCoreFoundationTollFreeBridgedObjects(target):
|
||||||
return "Interception of messages sent to Core Foundation isn't supported.\nTarget: \(target)"
|
return "Interception of messages sent to Core Foundation isn't supported.\nTarget: \(target)"
|
||||||
case let threadingCollisionWithOtherInterceptionMechanism(target):
|
case let .threadingCollisionWithOtherInterceptionMechanism(target):
|
||||||
return "Detected a conflict while modifying ObjC runtime.\nTarget: \(target)"
|
return "Detected a conflict while modifying ObjC runtime.\nTarget: \(target)"
|
||||||
case let savingOriginalForwardingMethodFailed(target):
|
case let .savingOriginalForwardingMethodFailed(target):
|
||||||
return "Saving original method implementation failed.\nTarget: \(target)"
|
return "Saving original method implementation failed.\nTarget: \(target)"
|
||||||
case let replacingMethodWithForwardingImplementation(target):
|
case let .replacingMethodWithForwardingImplementation(target):
|
||||||
return "Intercepting a sent message by replacing a method implementation with `_objc_msgForward` failed for some reason.\nTarget: \(target)"
|
return "Intercepting a sent message by replacing a method implementation with `_objc_msgForward` failed for some reason.\nTarget: \(target)"
|
||||||
case let observingPerformanceSensitiveMessages(target):
|
case let .observingPerformanceSensitiveMessages(target):
|
||||||
return "Attempt to intercept one of the performance sensitive methods. \nTarget: \(target)"
|
return "Attempt to intercept one of the performance sensitive methods. \nTarget: \(target)"
|
||||||
case let observingMessagesWithUnsupportedReturnType(target):
|
case let .observingMessagesWithUnsupportedReturnType(target):
|
||||||
return "Attempt to intercept a method with unsupported return type. \nTarget: \(target)"
|
return "Attempt to intercept a method with unsupported return type. \nTarget: \(target)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -219,7 +219,7 @@ public extension RxCocoaObjCRuntimeError {
|
||||||
|
|
||||||
// MARK: Error binding policies
|
// MARK: Error binding policies
|
||||||
|
|
||||||
func bindingErrorToInterface(_ error: ErrorProtocol) {
|
func bindingErrorToInterface(_ error: Swift.Error) {
|
||||||
let error = "Binding error to UI: \(error)"
|
let error = "Binding error to UI: \(error)"
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
rxFatalError(error)
|
rxFatalError(error)
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ extension UICollectionView {
|
||||||
.addDisposableTo(disposeBag)
|
.addDisposableTo(disposeBag)
|
||||||
*/
|
*/
|
||||||
public func rx_itemsWithDataSource<
|
public func rx_itemsWithDataSource<
|
||||||
DataSource: protocol<RxCollectionViewDataSourceType, UICollectionViewDataSource>,
|
DataSource: RxCollectionViewDataSourceType & UICollectionViewDataSource,
|
||||||
O: ObservableType where DataSource.Element == O.E
|
O: ObservableType where DataSource.Element == O.E
|
||||||
>
|
>
|
||||||
(_ dataSource: DataSource)
|
(_ dataSource: DataSource)
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ extension UILabel {
|
||||||
/**
|
/**
|
||||||
Bindable sink for `attributedText` property.
|
Bindable sink for `attributedText` property.
|
||||||
*/
|
*/
|
||||||
public var rx_attributedText: AnyObserver<AttributedString?> {
|
public var rx_attributedText: AnyObserver<NSAttributedString?> {
|
||||||
return UIBindingObserver(UIElement: self) { label, text in
|
return UIBindingObserver(UIElement: self) { label, text in
|
||||||
label.attributedText = text
|
label.attributedText = text
|
||||||
}.asObserver()
|
}.asObserver()
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ extension UITableView {
|
||||||
.addDisposableTo(disposeBag)
|
.addDisposableTo(disposeBag)
|
||||||
*/
|
*/
|
||||||
public func rx_itemsWithDataSource<
|
public func rx_itemsWithDataSource<
|
||||||
DataSource: protocol<RxTableViewDataSourceType, UITableViewDataSource>,
|
DataSource: RxTableViewDataSourceType & UITableViewDataSource,
|
||||||
O: ObservableType where DataSource.Element == O.E
|
O: ObservableType where DataSource.Element == O.E
|
||||||
>
|
>
|
||||||
(_ dataSource: DataSource)
|
(_ dataSource: DataSource)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
enum RxDataSourceError : ErrorProtocol {
|
enum RxDataSourceError : Swift.Error {
|
||||||
case unwrappingOptional
|
case unwrappingOptional
|
||||||
case preconditionFailed(message: String)
|
case preconditionFailed(message: String)
|
||||||
}
|
}
|
||||||
|
|
@ -22,7 +22,7 @@ func rxPrecondition(_ condition: Bool, _ message: @autoclosure() -> String) thro
|
||||||
throw RxDataSourceError.preconditionFailed(message: message())
|
throw RxDataSourceError.preconditionFailed(message: message())
|
||||||
}
|
}
|
||||||
|
|
||||||
func rxDebugFatalError(_ error: ErrorProtocol) {
|
func rxDebugFatalError(_ error: Swift.Error) {
|
||||||
rxDebugFatalError("\(error)")
|
rxDebugFatalError("\(error)")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public enum DifferentiatorError
|
public enum DifferentiatorError
|
||||||
: ErrorProtocol
|
: Swift.Error
|
||||||
, CustomDebugStringConvertible {
|
, CustomDebugStringConvertible {
|
||||||
case duplicateItem(item: Any)
|
case duplicateItem(item: Any)
|
||||||
case duplicateSection(section: Any)
|
case duplicateSection(section: Any)
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ extension TestScheduler {
|
||||||
- `|` marks sequence completed
|
- `|` marks sequence completed
|
||||||
|
|
||||||
*/
|
*/
|
||||||
func parseEventsAndTimes<T>(timeline: String, values: [String: T], errors: [String: ErrorProtocol] = [:]) -> [[Recorded<Event<T>>]] {
|
func parseEventsAndTimes<T>(timeline: String, values: [String: T], errors: [String: Swift.Error] = [:]) -> [[Recorded<Event<T>>]] {
|
||||||
//print("parsing: \(timeline)")
|
//print("parsing: \(timeline)")
|
||||||
typealias RecordedEvent = Recorded<Event<T>>
|
typealias RecordedEvent = Recorded<Event<T>>
|
||||||
|
|
||||||
|
|
@ -112,7 +112,7 @@ extension TestScheduler {
|
||||||
|
|
||||||
- returns: Observable sequence specified by timeline and values.
|
- returns: Observable sequence specified by timeline and values.
|
||||||
*/
|
*/
|
||||||
func createObservable<T>(timeline: String, values: [String: T], errors: [String: ErrorProtocol] = [:]) -> Observable<T> {
|
func createObservable<T>(timeline: String, values: [String: T], errors: [String: Swift.Error] = [:]) -> Observable<T> {
|
||||||
let events = self.parseEventsAndTimes(timeline: timeline, values: values, errors: errors)
|
let events = self.parseEventsAndTimes(timeline: timeline, values: values, errors: errors)
|
||||||
return createObservable(events)
|
return createObservable(events)
|
||||||
}
|
}
|
||||||
|
|
@ -174,7 +174,7 @@ extension TestScheduler {
|
||||||
- returns: Implementation of method that accepts arguments with parameter `Arg` and returns observable sequence
|
- returns: Implementation of method that accepts arguments with parameter `Arg` and returns observable sequence
|
||||||
with parameter `Ret`.
|
with parameter `Ret`.
|
||||||
*/
|
*/
|
||||||
func mock<Arg, Ret>(values: [String: Ret], errors: [String: ErrorProtocol] = [:], timelineSelector: (Arg) -> String) -> (Arg) -> Observable<Ret> {
|
func mock<Arg, Ret>(values: [String: Ret], errors: [String: Swift.Error] = [:], timelineSelector: (Arg) -> String) -> (Arg) -> Observable<Ret> {
|
||||||
return { (parameters: Arg) -> Observable<Ret> in
|
return { (parameters: Arg) -> Observable<Ret> in
|
||||||
let timeline = timelineSelector(parameters)
|
let timeline = timelineSelector(parameters)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ When all activities complete `false` will be sent.
|
||||||
public class ActivityIndicator : DriverConvertibleType {
|
public class ActivityIndicator : DriverConvertibleType {
|
||||||
public typealias E = Bool
|
public typealias E = Bool
|
||||||
|
|
||||||
private let _lock = RecursiveLock()
|
private let _lock = NSRecursiveLock()
|
||||||
private let _variable = Variable(0)
|
private let _variable = Variable(0)
|
||||||
private let _loading: Driver<Bool>
|
private let _loading: Driver<Bool>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
import SystemConfiguration
|
import SystemConfiguration
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
enum ReachabilityError: ErrorProtocol {
|
enum ReachabilityError: Swift.Error {
|
||||||
case failedToCreateWithAddress(sockaddr_in)
|
case failedToCreateWithAddress(sockaddr_in)
|
||||||
case failedToCreateWithHostname(String)
|
case failedToCreateWithHostname(String)
|
||||||
case unableToSetCallback
|
case unableToSetCallback
|
||||||
|
|
|
||||||
|
|
@ -59,10 +59,10 @@ protocol Lock {
|
||||||
#else
|
#else
|
||||||
|
|
||||||
// https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html
|
// https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html
|
||||||
typealias SpinLock = RecursiveLock
|
typealias SpinLock = NSRecursiveLock
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extension RecursiveLock : Lock {
|
extension NSRecursiveLock : Lock {
|
||||||
func performLocked( _ action: @noescape() -> Void) {
|
func performLocked( _ action: @noescape() -> Void) {
|
||||||
lock(); defer { unlock() }
|
lock(); defer { unlock() }
|
||||||
action()
|
action()
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
protocol LockOwnerType : class, Lock {
|
protocol LockOwnerType : class, Lock {
|
||||||
var _lock: RecursiveLock { get }
|
var _lock: NSRecursiveLock { get }
|
||||||
}
|
}
|
||||||
|
|
||||||
extension LockOwnerType {
|
extension LockOwnerType {
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ let RxCompositeFailures = "RxCompositeFailures"
|
||||||
Generic Rx error codes.
|
Generic Rx error codes.
|
||||||
*/
|
*/
|
||||||
public enum RxError
|
public enum RxError
|
||||||
: ErrorProtocol
|
: Swift.Error
|
||||||
, CustomDebugStringConvertible {
|
, CustomDebugStringConvertible {
|
||||||
/**
|
/**
|
||||||
Unknown error occured.
|
Unknown error occured.
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ public enum Event<Element> {
|
||||||
case next(Element)
|
case next(Element)
|
||||||
|
|
||||||
/// Sequence terminated with an error.
|
/// Sequence terminated with an error.
|
||||||
case error(ErrorProtocol)
|
case error(Swift.Error)
|
||||||
|
|
||||||
/// Sequence completed successfully.
|
/// Sequence completed successfully.
|
||||||
case completed
|
case completed
|
||||||
|
|
@ -57,7 +57,7 @@ extension Event {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// - returns: If `Error` event, returns error.
|
/// - returns: If `Error` event, returns error.
|
||||||
public var error: ErrorProtocol? {
|
public var error: Swift.Error? {
|
||||||
if case .error(let error) = self {
|
if case .error(let error) = self {
|
||||||
return error
|
return error
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ extension ObservableType {
|
||||||
- returns: Subscription object used to unsubscribe from the observable sequence.
|
- returns: Subscription object used to unsubscribe from the observable sequence.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message: "http://git.io/rxs.ud")
|
// @warn_unused_result(message: "http://git.io/rxs.ud")
|
||||||
public func subscribe(onNext: ((E) -> Void)? = nil, onError: ((ErrorProtocol) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil)
|
public func subscribe(onNext: ((E) -> Void)? = nil, onError: ((Swift.Error) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil)
|
||||||
-> Disposable {
|
-> Disposable {
|
||||||
|
|
||||||
let disposable: Disposable
|
let disposable: Disposable
|
||||||
|
|
@ -89,7 +89,7 @@ extension ObservableType {
|
||||||
- returns: Subscription object used to unsubscribe from the observable sequence.
|
- returns: Subscription object used to unsubscribe from the observable sequence.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message: "http://git.io/rxs.ud")
|
// @warn_unused_result(message: "http://git.io/rxs.ud")
|
||||||
public func subscribeError(_ onError: (ErrorProtocol) -> Void)
|
public func subscribeError(_ onError: (Swift.Error) -> Void)
|
||||||
-> Disposable {
|
-> Disposable {
|
||||||
let observer = AnonymousObserver<E> { e in
|
let observer = AnonymousObserver<E> { e in
|
||||||
if case .error(let error) = e {
|
if case .error(let error) = e {
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ class AmbSink<ElementType, O: ObserverType where O.E == ElementType> : Sink<O> {
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
private let _lock = RecursiveLock()
|
private let _lock = NSRecursiveLock()
|
||||||
// state
|
// state
|
||||||
private var _choice = AmbState.neither
|
private var _choice = AmbState.neither
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class BufferTimeCountSink<Element, O: ObserverType where O.E == [Element]>
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private let _timerD = SerialDisposable()
|
private let _timerD = SerialDisposable()
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ class CatchSink<O: ObserverType> : Sink<O>, ObserverType {
|
||||||
}
|
}
|
||||||
|
|
||||||
class Catch<Element> : Producer<Element> {
|
class Catch<Element> : Producer<Element> {
|
||||||
typealias Handler = (ErrorProtocol) throws -> Observable<Element>
|
typealias Handler = (Swift.Error) throws -> Observable<Element>
|
||||||
|
|
||||||
private let _source: Observable<Element>
|
private let _source: Observable<Element>
|
||||||
private let _handler: Handler
|
private let _handler: Handler
|
||||||
|
|
@ -101,7 +101,7 @@ class CatchSequenceSink<S: Sequence, O: ObserverType where S.Iterator.Element :
|
||||||
typealias Element = O.E
|
typealias Element = O.E
|
||||||
typealias Parent = CatchSequence<S>
|
typealias Parent = CatchSequence<S>
|
||||||
|
|
||||||
private var _lastError: ErrorProtocol?
|
private var _lastError: Swift.Error?
|
||||||
|
|
||||||
override init(observer: O) {
|
override init(observer: O) {
|
||||||
super.init(observer: observer)
|
super.init(observer: observer)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ class CombineLatestCollectionTypeSink<C: Collection, R, O: ObserverType where C.
|
||||||
|
|
||||||
let _parent: Parent
|
let _parent: Parent
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
var _numberOfValues = 0
|
var _numberOfValues = 0
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import Foundation
|
||||||
|
|
||||||
protocol CombineLatestProtocol : class {
|
protocol CombineLatestProtocol : class {
|
||||||
func next(_ index: Int)
|
func next(_ index: Int)
|
||||||
func fail(_ error: ErrorProtocol)
|
func fail(_ error: Swift.Error)
|
||||||
func done(_ index: Int)
|
func done(_ index: Int)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ class CombineLatestSink<O: ObserverType>
|
||||||
, CombineLatestProtocol {
|
, CombineLatestProtocol {
|
||||||
typealias Element = O.E
|
typealias Element = O.E
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
private let _arity: Int
|
private let _arity: Int
|
||||||
private var _numberOfValues = 0
|
private var _numberOfValues = 0
|
||||||
|
|
@ -72,7 +72,7 @@ class CombineLatestSink<O: ObserverType>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func fail(_ error: ErrorProtocol) {
|
func fail(_ error: Swift.Error) {
|
||||||
forwardOn(.error(error))
|
forwardOn(.error(error))
|
||||||
dispose()
|
dispose()
|
||||||
}
|
}
|
||||||
|
|
@ -101,12 +101,12 @@ class CombineLatestObserver<ElementType>
|
||||||
|
|
||||||
private let _parent: CombineLatestProtocol
|
private let _parent: CombineLatestProtocol
|
||||||
|
|
||||||
let _lock: RecursiveLock
|
let _lock: NSRecursiveLock
|
||||||
private let _index: Int
|
private let _index: Int
|
||||||
private let _this: Disposable
|
private let _this: Disposable
|
||||||
private let _setLatestValue: ValueSetter
|
private let _setLatestValue: ValueSetter
|
||||||
|
|
||||||
init(lock: RecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: ValueSetter, this: Disposable) {
|
init(lock: NSRecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: ValueSetter, this: Disposable) {
|
||||||
_lock = lock
|
_lock = lock
|
||||||
_parent = parent
|
_parent = parent
|
||||||
_index = index
|
_index = index
|
||||||
|
|
|
||||||
|
|
@ -27,12 +27,12 @@ public class ConnectableObservable<Element>
|
||||||
|
|
||||||
class Connection<S: SubjectType> : Disposable {
|
class Connection<S: SubjectType> : Disposable {
|
||||||
|
|
||||||
private var _lock: RecursiveLock
|
private var _lock: NSRecursiveLock
|
||||||
// state
|
// state
|
||||||
private var _parent: ConnectableObservableAdapter<S>?
|
private var _parent: ConnectableObservableAdapter<S>?
|
||||||
private var _subscription : Disposable?
|
private var _subscription : Disposable?
|
||||||
|
|
||||||
init(parent: ConnectableObservableAdapter<S>, lock: RecursiveLock, subscription: Disposable) {
|
init(parent: ConnectableObservableAdapter<S>, lock: NSRecursiveLock, subscription: Disposable) {
|
||||||
_parent = parent
|
_parent = parent
|
||||||
_subscription = subscription
|
_subscription = subscription
|
||||||
_lock = lock
|
_lock = lock
|
||||||
|
|
@ -66,7 +66,7 @@ class ConnectableObservableAdapter<S: SubjectType>
|
||||||
private let _subject: S
|
private let _subject: S
|
||||||
private let _source: Observable<S.SubjectObserverType.E>
|
private let _source: Observable<S.SubjectObserverType.E>
|
||||||
|
|
||||||
private let _lock = RecursiveLock()
|
private let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _connection: ConnectionType?
|
private var _connection: ConnectionType?
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class Error<Element> : Producer<Element> {
|
class Error<Element> : Producer<Element> {
|
||||||
private let _error: ErrorProtocol
|
private let _error: Swift.Error
|
||||||
|
|
||||||
init(error: ErrorProtocol) {
|
init(error: Swift.Error) {
|
||||||
_error = error
|
_error = error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class MergeLimitedSinkIter<S: ObservableConvertibleType, O: ObserverType where S
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
private let _disposeKey: DisposeKey
|
private let _disposeKey: DisposeKey
|
||||||
|
|
||||||
var _lock: RecursiveLock {
|
var _lock: NSRecursiveLock {
|
||||||
return _parent._lock
|
return _parent._lock
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,7 +68,7 @@ class MergeLimitedSink<S: ObservableConvertibleType, O: ObserverType where S.E =
|
||||||
|
|
||||||
private let _maxConcurrent: Int
|
private let _maxConcurrent: Int
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _stopped = false
|
private var _stopped = false
|
||||||
|
|
@ -276,7 +276,7 @@ class MergeSink<SourceType, S: ObservableConvertibleType, O: ObserverType where
|
||||||
typealias ResultType = O.E
|
typealias ResultType = O.E
|
||||||
typealias Element = SourceType
|
typealias Element = SourceType
|
||||||
|
|
||||||
private let _lock = RecursiveLock()
|
private let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
private var subscribeNext: Bool {
|
private var subscribeNext: Bool {
|
||||||
return true
|
return true
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ class RefCountSink<CO: ConnectableObservableType, O: ObserverType where CO.E ==
|
||||||
}
|
}
|
||||||
|
|
||||||
class RefCount<CO: ConnectableObservableType>: Producer<CO.E> {
|
class RefCount<CO: ConnectableObservableType>: Producer<CO.E> {
|
||||||
private let _lock = RecursiveLock()
|
private let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _count = 0
|
private var _count = 0
|
||||||
|
|
|
||||||
|
|
@ -84,11 +84,11 @@ class RetryWhenSequenceSink<S: Sequence, O: ObserverType, TriggerObservable: Obs
|
||||||
typealias Element = O.E
|
typealias Element = O.E
|
||||||
typealias Parent = RetryWhenSequence<S, TriggerObservable, Error>
|
typealias Parent = RetryWhenSequence<S, TriggerObservable, Error>
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
private var _lastError: ErrorProtocol?
|
private var _lastError: Swift.Error?
|
||||||
private let _errorSubject = PublishSubject<Error>()
|
private let _errorSubject = PublishSubject<Error>()
|
||||||
private let _handler: Observable<TriggerObservable.E>
|
private let _handler: Observable<TriggerObservable.E>
|
||||||
private let _notifier = PublishSubject<TriggerObservable.E>()
|
private let _notifier = PublishSubject<TriggerObservable.E>()
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class SamplerSink<O: ObserverType, ElementType, SampleType where O.E == ElementT
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
var _lock: RecursiveLock {
|
var _lock: NSRecursiveLock {
|
||||||
return _parent._lock
|
return _parent._lock
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@ class SampleSequenceSink<O: ObserverType, SampleType>
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _element = nil as Element?
|
private var _element = nil as Element?
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ final class ShareReplay1<Element>
|
||||||
|
|
||||||
private let _source: Observable<Element>
|
private let _source: Observable<Element>
|
||||||
|
|
||||||
private var _lock = RecursiveLock()
|
private var _lock = NSRecursiveLock()
|
||||||
|
|
||||||
private var _connection: SingleAssignmentDisposable?
|
private var _connection: SingleAssignmentDisposable?
|
||||||
private var _element: Element?
|
private var _element: Element?
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ final class ShareReplay1WhileConnected<Element>
|
||||||
|
|
||||||
private let _source: Observable<Element>
|
private let _source: Observable<Element>
|
||||||
|
|
||||||
private var _lock = RecursiveLock()
|
private var _lock = NSRecursiveLock()
|
||||||
|
|
||||||
private var _connection: SingleAssignmentDisposable?
|
private var _connection: SingleAssignmentDisposable?
|
||||||
private var _element: Element?
|
private var _element: Element?
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class SingleAsyncSink<ElementType, O: ObserverType where O.E == ElementType> : S
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch let error {
|
catch let error {
|
||||||
forwardOn(.error(error as ErrorProtocol))
|
forwardOn(.error(error as Swift.Error))
|
||||||
dispose()
|
dispose()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ class SkipUntilSinkOther<ElementType, Other, O: ObserverType where O.E == Elemen
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
var _lock: RecursiveLock {
|
var _lock: NSRecursiveLock {
|
||||||
return _parent._lock
|
return _parent._lock
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -64,7 +64,7 @@ class SkipUntilSink<ElementType, Other, O: ObserverType where O.E == ElementType
|
||||||
typealias E = ElementType
|
typealias E = ElementType
|
||||||
typealias Parent = SkipUntil<E, Other>
|
typealias Parent = SkipUntil<E, Other>
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
private var _forwardElements = false
|
private var _forwardElements = false
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class SwitchSink<SourceType, S: ObservableConvertibleType, O: ObserverType where
|
||||||
private let _subscriptions: SingleAssignmentDisposable = SingleAssignmentDisposable()
|
private let _subscriptions: SingleAssignmentDisposable = SingleAssignmentDisposable()
|
||||||
private let _innerSubscription: SerialDisposable = SerialDisposable()
|
private let _innerSubscription: SerialDisposable = SerialDisposable()
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _stopped = false
|
private var _stopped = false
|
||||||
|
|
@ -90,7 +90,7 @@ class SwitchSinkIter<SourceType, S: ObservableConvertibleType, O: ObserverType w
|
||||||
private let _id: Int
|
private let _id: Int
|
||||||
private let _self: Disposable
|
private let _self: Disposable
|
||||||
|
|
||||||
var _lock: RecursiveLock {
|
var _lock: NSRecursiveLock {
|
||||||
return _parent._lock
|
return _parent._lock
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ class TakeTimeSink<ElementType, O: ObserverType where O.E == ElementType>
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
init(parent: Parent, observer: O) {
|
init(parent: Parent, observer: O) {
|
||||||
_parent = parent
|
_parent = parent
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ class TakeUntilSinkOther<ElementType, Other, O: ObserverType where O.E == Elemen
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
var _lock: RecursiveLock {
|
var _lock: NSRecursiveLock {
|
||||||
return _parent._lock
|
return _parent._lock
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@ class TakeUntilSink<ElementType, Other, O: ObserverType where O.E == ElementType
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _open = false
|
private var _open = false
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class ThrottleSink<O: ObserverType>
|
||||||
|
|
||||||
private let _parent: ParentType
|
private let _parent: ParentType
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _id = 0 as UInt64
|
private var _id = 0 as UInt64
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class TimeoutSink<ElementType, O: ObserverType where O.E == ElementType>: Sink<O
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
private let _timerD = SerialDisposable()
|
private let _timerD = SerialDisposable()
|
||||||
private let _subscription = SerialDisposable()
|
private let _subscription = SerialDisposable()
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class WindowTimeCountSink<Element, O: ObserverType where O.E == Observable<Eleme
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
private var _subject = PublishSubject<Element>()
|
private var _subject = PublishSubject<Element>()
|
||||||
private var _count = 0
|
private var _count = 0
|
||||||
|
|
@ -68,7 +68,7 @@ class WindowTimeCountSink<Element, O: ObserverType where O.E == Observable<Eleme
|
||||||
do {
|
do {
|
||||||
let _ = try incrementChecked(&_count)
|
let _ = try incrementChecked(&_count)
|
||||||
} catch (let e) {
|
} catch (let e) {
|
||||||
_subject.on(.error(e as ErrorProtocol))
|
_subject.on(.error(e as Swift.Error))
|
||||||
dispose()
|
dispose()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ class WithLatestFromSink<FirstType, SecondType, ResultType, O: ObserverType wher
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
var _lock = RecursiveLock()
|
var _lock = NSRecursiveLock()
|
||||||
private var _latest: SecondType?
|
private var _latest: SecondType?
|
||||||
|
|
||||||
init(parent: Parent, observer: O) {
|
init(parent: Parent, observer: O) {
|
||||||
|
|
@ -75,7 +75,7 @@ class WithLatestFromSecond<FirstType, SecondType, ResultType, O: ObserverType wh
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
private let _disposable: Disposable
|
private let _disposable: Disposable
|
||||||
|
|
||||||
var _lock: RecursiveLock {
|
var _lock: NSRecursiveLock {
|
||||||
return _parent._lock
|
return _parent._lock
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ class ZipCollectionTypeSink<C: Collection, R, O: ObserverType where C.Iterator.E
|
||||||
|
|
||||||
private let _parent: Parent
|
private let _parent: Parent
|
||||||
|
|
||||||
private let _lock = RecursiveLock()
|
private let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _numberOfValues = 0
|
private var _numberOfValues = 0
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import Foundation
|
||||||
protocol ZipSinkProtocol : class
|
protocol ZipSinkProtocol : class
|
||||||
{
|
{
|
||||||
func next(_ index: Int)
|
func next(_ index: Int)
|
||||||
func fail(_ error: ErrorProtocol)
|
func fail(_ error: Swift.Error)
|
||||||
func done(_ index: Int)
|
func done(_ index: Int)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -20,7 +20,7 @@ class ZipSink<O: ObserverType> : Sink<O>, ZipSinkProtocol {
|
||||||
|
|
||||||
let _arity: Int
|
let _arity: Int
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _isDone: [Bool]
|
private var _isDone: [Bool]
|
||||||
|
|
@ -78,7 +78,7 @@ class ZipSink<O: ObserverType> : Sink<O>, ZipSinkProtocol {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func fail(_ error: ErrorProtocol) {
|
func fail(_ error: Swift.Error) {
|
||||||
forwardOn(.error(error))
|
forwardOn(.error(error))
|
||||||
dispose()
|
dispose()
|
||||||
}
|
}
|
||||||
|
|
@ -111,14 +111,14 @@ class ZipObserver<ElementType>
|
||||||
|
|
||||||
private var _parent: ZipSinkProtocol?
|
private var _parent: ZipSinkProtocol?
|
||||||
|
|
||||||
let _lock: RecursiveLock
|
let _lock: NSRecursiveLock
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private let _index: Int
|
private let _index: Int
|
||||||
private let _this: Disposable
|
private let _this: Disposable
|
||||||
private let _setNextValue: ValueSetter
|
private let _setNextValue: ValueSetter
|
||||||
|
|
||||||
init(lock: RecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: ValueSetter, this: Disposable) {
|
init(lock: NSRecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: ValueSetter, this: Disposable) {
|
||||||
_lock = lock
|
_lock = lock
|
||||||
_parent = parent
|
_parent = parent
|
||||||
_index = index
|
_index = index
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ extension Observable {
|
||||||
- returns: The observable sequence that terminates with specified error.
|
- returns: The observable sequence that terminates with specified error.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
||||||
public static func error(_ error: ErrorProtocol) -> Observable<E> {
|
public static func error(_ error: Swift.Error) -> Observable<E> {
|
||||||
return Error(error: error)
|
return Error(error: error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ extension ObservableType {
|
||||||
- returns: An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an error occurred.
|
- returns: An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an error occurred.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
||||||
public func catchError(_ handler: (ErrorProtocol) throws -> Observable<E>)
|
public func catchError(_ handler: (Swift.Error) throws -> Observable<E>)
|
||||||
-> Observable<E> {
|
-> Observable<E> {
|
||||||
return Catch(source: asObservable(), handler: handler)
|
return Catch(source: asObservable(), handler: handler)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ extension ObservableType {
|
||||||
- returns: The source sequence with the side-effecting behavior applied.
|
- returns: The source sequence with the side-effecting behavior applied.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
||||||
public func doOn(onNext: ((E) throws -> Void)? = nil, onError: ((ErrorProtocol) throws -> Void)? = nil, onCompleted: (() throws -> Void)? = nil)
|
public func doOn(onNext: ((E) throws -> Void)? = nil, onError: ((Swift.Error) throws -> Void)? = nil, onCompleted: (() throws -> Void)? = nil)
|
||||||
-> Observable<E> {
|
-> Observable<E> {
|
||||||
return Do(source: self.asObservable()) { e in
|
return Do(source: self.asObservable()) { e in
|
||||||
switch e {
|
switch e {
|
||||||
|
|
@ -133,7 +133,7 @@ extension ObservableType {
|
||||||
- returns: The source sequence with the side-effecting behavior applied.
|
- returns: The source sequence with the side-effecting behavior applied.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
||||||
public func `do`(onError: ((ErrorProtocol) throws -> Void))
|
public func `do`(onError: ((Swift.Error) throws -> Void))
|
||||||
-> Observable<E> {
|
-> Observable<E> {
|
||||||
return self.doOn(onError: onError)
|
return self.doOn(onError: onError)
|
||||||
}
|
}
|
||||||
|
|
@ -214,7 +214,7 @@ extension ObservableType {
|
||||||
- returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully or is notified to error or complete.
|
- returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully or is notified to error or complete.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
||||||
public func retryWhen<TriggerObservable: ObservableType, Error: ErrorProtocol>(_ notificationHandler: (Observable<Error>) -> TriggerObservable)
|
public func retryWhen<TriggerObservable: ObservableType, Error: Swift.Error>(_ notificationHandler: (Observable<Error>) -> TriggerObservable)
|
||||||
-> Observable<E> {
|
-> Observable<E> {
|
||||||
return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler)
|
return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler)
|
||||||
}
|
}
|
||||||
|
|
@ -229,7 +229,7 @@ extension ObservableType {
|
||||||
- returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully or is notified to error or complete.
|
- returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully or is notified to error or complete.
|
||||||
*/
|
*/
|
||||||
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
// @warn_unused_result(message:"http://git.io/rxs.uo")
|
||||||
public func retryWhen<TriggerObservable: ObservableType>(_ notificationHandler: (Observable<ErrorProtocol>) -> TriggerObservable)
|
public func retryWhen<TriggerObservable: ObservableType>(_ notificationHandler: (Observable<Swift.Error>) -> TriggerObservable)
|
||||||
-> Observable<E> {
|
-> Observable<E> {
|
||||||
return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler)
|
return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,10 +47,10 @@ public extension ObserverType {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Convenience method equivalent to `on(.Error(error: ErrorProtocol))`
|
Convenience method equivalent to `on(.Error(error: Swift.Error))`
|
||||||
- parameter error: ErrorProtocol to send to observer(s)
|
- parameter error: Swift.Error to send to observer(s)
|
||||||
*/
|
*/
|
||||||
final func onError(_ error: ErrorProtocol) {
|
final func onError(_ error: Swift.Error) {
|
||||||
on(.error(error))
|
on(.error(error))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@
|
||||||
let AtomicDecrement = OSAtomicDecrement32
|
let AtomicDecrement = OSAtomicDecrement32
|
||||||
|
|
||||||
extension Thread {
|
extension Thread {
|
||||||
static func setThreadLocalStorageValue<T: AnyObject>(_ value: T?, forKey key: protocol<AnyObject, NSCopying>) {
|
static func setThreadLocalStorageValue<T: AnyObject>(_ value: T?, forKey key: AnyObject & NSCopying
|
||||||
|
) {
|
||||||
let currentThread = Thread.current
|
let currentThread = Thread.current
|
||||||
let threadDictionary = currentThread.threadDictionary
|
let threadDictionary = currentThread.threadDictionary
|
||||||
|
|
||||||
|
|
@ -34,7 +35,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
static func getThreadLocalStorageValueForKey<T>(_ key: protocol<AnyObject, NSCopying>) -> T? {
|
static func getThreadLocalStorageValueForKey<T>(_ key: AnyObject & NSCopying) -> T? {
|
||||||
let currentThread = Thread.current
|
let currentThread = Thread.current
|
||||||
let threadDictionary = currentThread.threadDictionary
|
let threadDictionary = currentThread.threadDictionary
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -215,7 +215,7 @@
|
||||||
return Expectation()
|
return Expectation()
|
||||||
}
|
}
|
||||||
|
|
||||||
public func waitForExpectationsWithTimeout(time: NSTimeInterval, action: ErrorProtocol? -> Void) {
|
public func waitForExpectationsWithTimeout(time: NSTimeInterval, action: Swift.Error? -> Void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,10 +39,11 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType {
|
||||||
*/
|
*/
|
||||||
@available(iOS 8, OSX 10.10, *)
|
@available(iOS 8, OSX 10.10, *)
|
||||||
public convenience init(globalConcurrentQueueQOS: DispatchQueueSchedulerQOS, leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
|
public convenience init(globalConcurrentQueueQOS: DispatchQueueSchedulerQOS, leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
|
||||||
let priority = globalConcurrentQueueQOS.QOSClass
|
let priority = globalConcurrentQueueQOS.qos
|
||||||
self.init(queue: DispatchQueue(
|
self.init(queue: DispatchQueue(
|
||||||
label: "rxswift.queue.\(globalConcurrentQueueQOS)",
|
label: "rxswift.queue.\(globalConcurrentQueueQOS)",
|
||||||
attributes: [priority, DispatchQueueAttributes.concurrent],
|
qos: priority,
|
||||||
|
attributes: [DispatchQueue.Attributes.concurrent],
|
||||||
target: nil),
|
target: nil),
|
||||||
leeway: leeway
|
leeway: leeway
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -42,13 +42,13 @@ public enum DispatchQueueSchedulerQOS {
|
||||||
|
|
||||||
@available(iOS 8, OSX 10.10, *)
|
@available(iOS 8, OSX 10.10, *)
|
||||||
extension DispatchQueueSchedulerQOS {
|
extension DispatchQueueSchedulerQOS {
|
||||||
var QOSClass: DispatchQueueAttributes {
|
var qos: DispatchQoS {
|
||||||
switch self {
|
switch self {
|
||||||
case .userInteractive: return .qosUserInteractive
|
case .userInteractive: return .userInteractive
|
||||||
case .userInitiated: return .qosUserInitiated
|
case .userInitiated: return .userInitiated
|
||||||
case .default: return .qosDefault
|
case .default: return .default
|
||||||
case .utility: return .qosUtility
|
case .utility: return .utility
|
||||||
case .background: return .qosBackground
|
case .background: return .background
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ extension DispatchQueueConfiguration {
|
||||||
|
|
||||||
let compositeDisposable = CompositeDisposable()
|
let compositeDisposable = CompositeDisposable()
|
||||||
|
|
||||||
let timer = DispatchSource.timer(queue: queue)
|
let timer = DispatchSource.makeTimerSource(queue: queue)
|
||||||
timer.scheduleOneshot(deadline: deadline)
|
timer.scheduleOneshot(deadline: deadline)
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
|
|
@ -75,7 +75,7 @@ extension DispatchQueueConfiguration {
|
||||||
|
|
||||||
var timerState = state
|
var timerState = state
|
||||||
|
|
||||||
let timer = DispatchSource.timer(queue: queue)
|
let timer = DispatchSource.makeTimerSource(queue: queue)
|
||||||
timer.scheduleRepeating(deadline: initial, interval: dispatchInterval(period), leeway: leeway)
|
timer.scheduleRepeating(deadline: initial, interval: dispatchInterval(period), leeway: leeway)
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ Type erased recursive scheduler.
|
||||||
class AnyRecursiveScheduler<State> {
|
class AnyRecursiveScheduler<State> {
|
||||||
typealias Action = (state: State, scheduler: AnyRecursiveScheduler<State>) -> Void
|
typealias Action = (state: State, scheduler: AnyRecursiveScheduler<State>) -> Void
|
||||||
|
|
||||||
private let _lock = RecursiveLock()
|
private let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private let _group = CompositeDisposable()
|
private let _group = CompositeDisposable()
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ public class SerialDispatchQueueScheduler : SchedulerType {
|
||||||
- parameter serialQueueConfiguration: Additional configuration of internal serial dispatch queue.
|
- parameter serialQueueConfiguration: Additional configuration of internal serial dispatch queue.
|
||||||
*/
|
*/
|
||||||
public convenience init(internalSerialQueueName: String, serialQueueConfiguration: ((DispatchQueue) -> Void)? = nil, leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
|
public convenience init(internalSerialQueueName: String, serialQueueConfiguration: ((DispatchQueue) -> Void)? = nil, leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
|
||||||
let queue = DispatchQueue(label: internalSerialQueueName, attributes: DispatchQueueAttributes.serial)
|
let queue = DispatchQueue(label: internalSerialQueueName, attributes: [])
|
||||||
serialQueueConfiguration?(queue)
|
serialQueueConfiguration?(queue)
|
||||||
self.init(serialQueue: queue, leeway: leeway)
|
self.init(serialQueue: queue, leeway: leeway)
|
||||||
}
|
}
|
||||||
|
|
@ -65,7 +65,7 @@ public class SerialDispatchQueueScheduler : SchedulerType {
|
||||||
public convenience init(queue: DispatchQueue, internalSerialQueueName: String, leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
|
public convenience init(queue: DispatchQueue, internalSerialQueueName: String, leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
|
||||||
// Swift 3.0 IUO
|
// Swift 3.0 IUO
|
||||||
let serialQueue = DispatchQueue(label: internalSerialQueueName,
|
let serialQueue = DispatchQueue(label: internalSerialQueueName,
|
||||||
attributes: DispatchQueueAttributes.serial,
|
attributes: [],
|
||||||
target: queue)
|
target: queue)
|
||||||
self.init(serialQueue: serialQueue, leeway: leeway)
|
self.init(serialQueue: serialQueue, leeway: leeway)
|
||||||
}
|
}
|
||||||
|
|
@ -78,8 +78,8 @@ public class SerialDispatchQueueScheduler : SchedulerType {
|
||||||
*/
|
*/
|
||||||
@available(iOS 8, OSX 10.10, *)
|
@available(iOS 8, OSX 10.10, *)
|
||||||
public convenience init(globalConcurrentQueueQOS: DispatchQueueSchedulerQOS, internalSerialQueueName: String = "rx.global_dispatch_queue.serial", leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
|
public convenience init(globalConcurrentQueueQOS: DispatchQueueSchedulerQOS, internalSerialQueueName: String = "rx.global_dispatch_queue.serial", leeway: DispatchTimeInterval = DispatchTimeInterval.nanoseconds(0)) {
|
||||||
let priority = globalConcurrentQueueQOS.QOSClass
|
let priority = globalConcurrentQueueQOS.qos
|
||||||
self.init(queue: DispatchQueue.global(attributes: DispatchQueue.GlobalAttributes(rawValue: UInt64(priority.rawValue))), internalSerialQueueName: internalSerialQueueName, leeway: leeway)
|
self.init(queue: DispatchQueue.global(qos: priority.qosClass), internalSerialQueueName: internalSerialQueueName, leeway: leeway)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public final class BehaviorSubject<Element>
|
||||||
return _observers.count > 0
|
return _observers.count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
let _lock = RecursiveLock()
|
let _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _disposed = false
|
private var _disposed = false
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ final public class PublishSubject<Element>
|
||||||
return _observers.count > 0
|
return _observers.count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
private var _lock = RecursiveLock()
|
private var _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _disposed = false
|
private var _disposed = false
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ public class ReplaySubject<Element>
|
||||||
return _observers.count > 0
|
return _observers.count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
private var _lock = RecursiveLock()
|
private var _lock = NSRecursiveLock()
|
||||||
|
|
||||||
// state
|
// state
|
||||||
private var _disposed = false
|
private var _disposed = false
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ require specifying `self.*`, they are made global.
|
||||||
|
|
||||||
- parameter time: Recorded virtual time the `.Completed` event occurs.
|
- parameter time: Recorded virtual time the `.Completed` event occurs.
|
||||||
*/
|
*/
|
||||||
public func error<T>(_ time: TestTime, _ error: ErrorProtocol, _ type: T.Type = T.self) -> Recorded<Event<T>> {
|
public func error<T>(_ time: TestTime, _ error: Swift.Error, _ type: T.Type = T.self) -> Recorded<Event<T>> {
|
||||||
return Recorded(time: time, event: .error(error))
|
return Recorded(time: time, event: .error(error))
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
|
|
|
||||||
|
|
@ -991,7 +991,7 @@ extension KVOObservableTests {
|
||||||
func testObserveWeak_PropertyDoesntExist() {
|
func testObserveWeak_PropertyDoesntExist() {
|
||||||
var root: HasStrongProperty! = HasStrongProperty()
|
var root: HasStrongProperty! = HasStrongProperty()
|
||||||
|
|
||||||
var lastError: ErrorProtocol? = nil
|
var lastError: Swift.Error? = nil
|
||||||
|
|
||||||
_ = root.rx_observeWeakly(NSNumber.self, "notExist")
|
_ = root.rx_observeWeakly(NSNumber.self, "notExist")
|
||||||
.subscribeError { error in
|
.subscribeError { error in
|
||||||
|
|
@ -1017,7 +1017,7 @@ extension KVOObservableTests {
|
||||||
func testObserveWeak_HierarchyPropertyDoesntExist() {
|
func testObserveWeak_HierarchyPropertyDoesntExist() {
|
||||||
var root: HasStrongProperty! = HasStrongProperty()
|
var root: HasStrongProperty! = HasStrongProperty()
|
||||||
|
|
||||||
var lastError: ErrorProtocol? = nil
|
var lastError: Swift.Error? = nil
|
||||||
|
|
||||||
_ = root.rx_observeWeakly(NSNumber.self, "property.notExist")
|
_ = root.rx_observeWeakly(NSNumber.self, "property.notExist")
|
||||||
.subscribeError { error in
|
.subscribeError { error in
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ class PrimitiveHotObservable<ElementType> : ObservableType {
|
||||||
var subscriptions: [Subscription]
|
var subscriptions: [Subscription]
|
||||||
var observers: Bag<AnyObserver<E>>
|
var observers: Bag<AnyObserver<E>>
|
||||||
|
|
||||||
let lock = RecursiveLock()
|
let lock = NSRecursiveLock()
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
self.subscriptions = []
|
self.subscriptions = []
|
||||||
|
|
|
||||||
|
|
@ -644,7 +644,7 @@ extension ObservableSingleTest {
|
||||||
error(250, testError)
|
error(250, testError)
|
||||||
])
|
])
|
||||||
|
|
||||||
var recordedError: ErrorProtocol!
|
var recordedError: Swift.Error!
|
||||||
var numberOfTimesInvoked = 0
|
var numberOfTimesInvoked = 0
|
||||||
|
|
||||||
let res = scheduler.start { xs.do(onError: { error in
|
let res = scheduler.start { xs.do(onError: { error in
|
||||||
|
|
@ -995,7 +995,7 @@ extension ObservableSingleTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct CustomErrorType : ErrorProtocol {
|
struct CustomErrorType : Swift.Error {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1305,7 +1305,7 @@ extension ObservableSingleTest {
|
||||||
let maxAttempts = 4
|
let maxAttempts = 4
|
||||||
|
|
||||||
let res = scheduler.start(800) {
|
let res = scheduler.start(800) {
|
||||||
xs.retryWhen { (errors: Observable<ErrorProtocol>) in
|
xs.retryWhen { (errors: Observable<Swift.Error>) in
|
||||||
return errors.flatMapWithIndex { (e, a) -> Observable<Int64> in
|
return errors.flatMapWithIndex { (e, a) -> Observable<Int64> in
|
||||||
if a >= maxAttempts - 1 {
|
if a >= maxAttempts - 1 {
|
||||||
return Observable.error(e)
|
return Observable.error(e)
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class ObservableSubscriptionTests : RxTest {
|
||||||
var onDisposedCalled = 0
|
var onDisposedCalled = 0
|
||||||
|
|
||||||
var lastElement: Int? = nil
|
var lastElement: Int? = nil
|
||||||
var lastError: ErrorProtocol? = nil
|
var lastError: Swift.Error? = nil
|
||||||
|
|
||||||
let subscription = publishSubject.subscribe(onNext: { n in
|
let subscription = publishSubject.subscribe(onNext: { n in
|
||||||
lastElement = n
|
lastElement = n
|
||||||
|
|
@ -70,7 +70,7 @@ class ObservableSubscriptionTests : RxTest {
|
||||||
var onDisposedCalled = 0
|
var onDisposedCalled = 0
|
||||||
|
|
||||||
var lastElement: Int? = nil
|
var lastElement: Int? = nil
|
||||||
var lastError: ErrorProtocol? = nil
|
var lastError: Swift.Error? = nil
|
||||||
|
|
||||||
let subscription = publishSubject.subscribe(onNext: { n in
|
let subscription = publishSubject.subscribe(onNext: { n in
|
||||||
lastElement = n
|
lastElement = n
|
||||||
|
|
@ -121,7 +121,7 @@ class ObservableSubscriptionTests : RxTest {
|
||||||
var onDisposedCalled = 0
|
var onDisposedCalled = 0
|
||||||
|
|
||||||
var lastElement: Int? = nil
|
var lastElement: Int? = nil
|
||||||
var lastError: ErrorProtocol? = nil
|
var lastError: Swift.Error? = nil
|
||||||
|
|
||||||
let subscription = publishSubject.subscribe(onNext: { n in
|
let subscription = publishSubject.subscribe(onNext: { n in
|
||||||
lastElement = n
|
lastElement = n
|
||||||
|
|
@ -172,7 +172,7 @@ class ObservableSubscriptionTests : RxTest {
|
||||||
var onDisposedCalled = 0
|
var onDisposedCalled = 0
|
||||||
|
|
||||||
var lastElement: Int? = nil
|
var lastElement: Int? = nil
|
||||||
var lastError: ErrorProtocol? = nil
|
var lastError: Swift.Error? = nil
|
||||||
|
|
||||||
let subscription = publishSubject.subscribe(onNext: { n in
|
let subscription = publishSubject.subscribe(onNext: { n in
|
||||||
lastElement = n
|
lastElement = n
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ extension ObserverTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
var elements = [Int]()
|
var elements = [Int]()
|
||||||
var errorNotification: ErrorProtocol!
|
var errorNotification: Swift.Error!
|
||||||
|
|
||||||
_ = a.subscribe(
|
_ = a.subscribe(
|
||||||
onNext: { n in elements.append(n) },
|
onNext: { n in elements.append(n) },
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,6 @@ func completed<T>() -> Recorded<Event<T>> {
|
||||||
return Recorded(time: 0, event: .completed)
|
return Recorded(time: 0, event: .completed)
|
||||||
}
|
}
|
||||||
|
|
||||||
func error<T>(_ error: ErrorProtocol) -> Recorded<Event<T>> {
|
func error<T>(_ error: Swift.Error) -> Recorded<Event<T>> {
|
||||||
return Recorded(time: 0, event: .error(error))
|
return Recorded(time: 0, event: .error(error))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import RxSwift
|
||||||
import RxTests
|
import RxTests
|
||||||
import XCTest
|
import XCTest
|
||||||
|
|
||||||
func XCTAssertErrorEqual(_ lhs: ErrorProtocol, _ rhs: ErrorProtocol) {
|
func XCTAssertErrorEqual(_ lhs: Swift.Error, _ rhs: Swift.Error) {
|
||||||
let event1: Event<Int> = .error(lhs)
|
let event1: Event<Int> = .error(lhs)
|
||||||
let event2: Event<Int> = .error(rhs)
|
let event2: Event<Int> = .error(rhs)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue