WIP. Update for Xcode 8 beta 4.

This commit is contained in:
Yuki Nagai 2016-08-02 15:46:11 +09:00
parent 3b34850675
commit 7f84ec604e
68 changed files with 144 additions and 134 deletions

View File

@ -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

View File

@ -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.

View File

@ -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()
} }
} }

View File

@ -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()

View File

@ -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)

View File

@ -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)

View File

@ -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
} }

View File

@ -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 {

View File

@ -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)

View File

@ -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)

View File

@ -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()

View File

@ -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)

View File

@ -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)")
} }

View File

@ -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)

View File

@ -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)

View File

@ -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>

View File

@ -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

View File

@ -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()

View File

@ -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 {

View File

@ -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.

View File

@ -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
} }

View File

@ -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 {

View File

@ -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

View File

@ -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()

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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?

View File

@ -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
} }

View File

@ -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

View File

@ -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

View File

@ -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>()

View File

@ -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?

View File

@ -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?

View File

@ -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?

View File

@ -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
} }

View File

@ -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

View File

@ -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
} }

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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()
} }

View File

@ -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
} }

View File

@ -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

View File

@ -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

View File

@ -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)
} }

View File

@ -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)
} }

View File

@ -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)
} }

View File

@ -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))
} }
} }

View File

@ -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

View File

@ -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) {
} }
} }

View File

@ -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
) )

View File

@ -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
} }
} }
} }

View File

@ -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:

View File

@ -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()

View File

@ -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)
} }
/** /**

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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))
} }
//} //}

View File

@ -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

View File

@ -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 = []

View File

@ -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)

View File

@ -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

View File

@ -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) },

View File

@ -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))
} }

View File

@ -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)