Make project build pass with swift 4.0

- pod update
- Force compile rxcocoa and rxswift with swift 3.2
This commit is contained in:
Qiu Yuzhou
2018-01-17 15:24:12 +08:00
parent 5828fdbac9
commit e6a22971d8
182 changed files with 7450 additions and 6313 deletions

View File

@ -38,6 +38,11 @@ public final class AsyncSubject<Element>
}
private var _lastElement: Element?
#if DEBUG
fileprivate let _synchronizationTracker = SynchronizationTracker()
#endif
/// Creates a subject.
public override init() {
#if TRACE_RESOURCES
@ -50,6 +55,10 @@ public final class AsyncSubject<Element>
///
/// - parameter event: Event to send to the observers.
public func on(_ event: Event<E>) {
#if DEBUG
_synchronizationTracker.register(synchronizationErrorMessage: .default)
defer { _synchronizationTracker.unregister() }
#endif
let (observers, event) = _synchronized_on(event)
switch event {
case .next:

View File

@ -36,6 +36,10 @@ public final class BehaviorSubject<Element>
private var _observers = Observers()
private var _stoppedEvent: Event<Element>?
#if DEBUG
fileprivate let _synchronizationTracker = SynchronizationTracker()
#endif
/// Indicates whether the subject has been disposed.
public var isDisposed: Bool {
return _isDisposed
@ -75,12 +79,15 @@ public final class BehaviorSubject<Element>
///
/// - parameter event: Event to send to the observers.
public func on(_ event: Event<E>) {
_lock.lock()
#if DEBUG
_synchronizationTracker.register(synchronizationErrorMessage: .default)
defer { _synchronizationTracker.unregister() }
#endif
dispatch(_synchronized_on(event), event)
_lock.unlock()
}
func _synchronized_on(_ event: Event<E>) -> Observers {
_lock.lock(); defer { _lock.unlock() }
if _stoppedEvent != nil || _isDisposed {
return Observers()
}

View File

@ -35,7 +35,11 @@ public final class PublishSubject<Element>
private var _observers = Observers()
private var _stopped = false
private var _stoppedEvent = nil as Event<Element>?
#if DEBUG
fileprivate let _synchronizationTracker = SynchronizationTracker()
#endif
/// Indicates whether the subject has been isDisposed.
public var isDisposed: Bool {
return _isDisposed
@ -53,6 +57,10 @@ public final class PublishSubject<Element>
///
/// - parameter event: Event to send to the observers.
public func on(_ event: Event<Element>) {
#if DEBUG
_synchronizationTracker.register(synchronizationErrorMessage: .default)
defer { _synchronizationTracker.unregister() }
#endif
dispatch(_synchronized_on(event), event)
}

View File

@ -39,6 +39,10 @@ public class ReplaySubject<Element>
}
fileprivate var _observers = Observers()
#if DEBUG
fileprivate let _synchronizationTracker = SynchronizationTracker()
#endif
func unsubscribe(_ key: DisposeKey) {
rxAbstractMethod()
}
@ -111,6 +115,10 @@ fileprivate class ReplayBufferBase<Element>
}
override func on(_ event: Event<Element>) {
#if DEBUG
_synchronizationTracker.register(synchronizationErrorMessage: .default)
defer { _synchronizationTracker.unregister() }
#endif
dispatch(_synchronized_on(event), event)
}
@ -196,7 +204,7 @@ fileprivate class ReplayBufferBase<Element>
}
}
final class ReplayOne<Element> : ReplayBufferBase<Element> {
fileprivate final class ReplayOne<Element> : ReplayBufferBase<Element> {
private var _value: Element?
override init() {
@ -223,7 +231,7 @@ final class ReplayOne<Element> : ReplayBufferBase<Element> {
}
}
class ReplayManyBase<Element> : ReplayBufferBase<Element> {
fileprivate class ReplayManyBase<Element> : ReplayBufferBase<Element> {
fileprivate var _queue: Queue<Element>
init(queueSize: Int) {
@ -246,7 +254,7 @@ class ReplayManyBase<Element> : ReplayBufferBase<Element> {
}
}
final class ReplayMany<Element> : ReplayManyBase<Element> {
fileprivate final class ReplayMany<Element> : ReplayManyBase<Element> {
private let _bufferSize: Int
init(bufferSize: Int) {
@ -262,7 +270,7 @@ final class ReplayMany<Element> : ReplayManyBase<Element> {
}
}
final class ReplayAll<Element> : ReplayManyBase<Element> {
fileprivate final class ReplayAll<Element> : ReplayManyBase<Element> {
init() {
super.init(queueSize: 0)
}

View File

@ -9,7 +9,7 @@
/// Variable is a wrapper for `BehaviorSubject`.
///
/// Unlike `BehaviorSubject` it can't terminate with error, and when variable is deallocated
/// it will complete it's observable sequence (`asObservable`).
/// it will complete its observable sequence (`asObservable`).
public final class Variable<Element> {
public typealias E = Element
@ -17,12 +17,12 @@ public final class Variable<Element> {
private let _subject: BehaviorSubject<Element>
private var _lock = SpinLock()
// state
private var _value: E
#if DEBUG
fileprivate var _numberOfConcurrentCalls: AtomicInt = 0
fileprivate let _synchronizationTracker = SynchronizationTracker()
#endif
/// Gets or sets current value of variable.
@ -37,13 +37,8 @@ public final class Variable<Element> {
}
set(newValue) {
#if DEBUG
if AtomicIncrement(&_numberOfConcurrentCalls) > 1 {
rxFatalError("Warning: Recursive call or synchronization error!")
}
defer {
_ = AtomicDecrement(&_numberOfConcurrentCalls)
}
_synchronizationTracker.register(synchronizationErrorMessage: .variable)
defer { _synchronizationTracker.unregister() }
#endif
_lock.lock()
_value = newValue