From 2d3629760193de7bf18110d92f8797628f3be943 Mon Sep 17 00:00:00 2001 From: Mo Ramezanpoor Date: Tue, 16 Aug 2016 14:25:15 +0100 Subject: [PATCH] WIP: Marks escaping closures as such. --- RxSwift/DataStructures/PriorityQueue.swift | 2 +- RxSwift/ImmediateSchedulerType.swift | 4 ++-- RxSwift/Observable.swift | 2 +- .../Implementations/CombineLatest+arity.swift | 14 +++++------ .../Implementations/CombineLatest+arity.tt | 2 +- .../Implementations/Deferred.swift | 2 +- .../Implementations/Generate.swift | 2 +- .../Implementations/RefCount.swift | 2 +- .../Implementations/RetryWhen.swift | 2 +- .../Implementations/Zip+arity.swift | 14 +++++------ .../Observables/Implementations/Zip+arity.tt | 2 +- .../Observables/Observable+Aggregate.swift | 4 ++-- RxSwift/Observables/Observable+Binding.swift | 2 +- RxSwift/Observables/Observable+Creation.swift | 2 +- RxSwift/Observables/Observable+Multiple.swift | 8 +++---- RxSwift/Observables/Observable+Single.swift | 20 ++++++++-------- ...Observable+StandardSequenceOperators.swift | 24 +++++++++---------- RxSwift/SchedulerType.swift | 8 +++---- .../ConcurrentDispatchQueueScheduler.swift | 6 ++--- .../Schedulers/ConcurrentMainScheduler.swift | 4 ++-- .../Schedulers/CurrentThreadScheduler.swift | 2 +- RxSwift/Schedulers/ImmediateScheduler.swift | 2 +- .../SerialDispatchQueueScheduler.swift | 8 +++---- RxSwift/Schedulers/VirtualTimeScheduler.swift | 6 ++--- 24 files changed, 72 insertions(+), 72 deletions(-) diff --git a/RxSwift/DataStructures/PriorityQueue.swift b/RxSwift/DataStructures/PriorityQueue.swift index 92a4be9f..d37a063f 100644 --- a/RxSwift/DataStructures/PriorityQueue.swift +++ b/RxSwift/DataStructures/PriorityQueue.swift @@ -12,7 +12,7 @@ struct PriorityQueue { private let _hasHigherPriority: (Element, Element) -> Bool fileprivate var _elements = [Element]() - init(hasHigherPriority: (Element, Element) -> Bool) { + init(hasHigherPriority: @escaping (Element, Element) -> Bool) { _hasHigherPriority = hasHigherPriority } diff --git a/RxSwift/ImmediateSchedulerType.swift b/RxSwift/ImmediateSchedulerType.swift index 8371bee5..c535bd35 100644 --- a/RxSwift/ImmediateSchedulerType.swift +++ b/RxSwift/ImmediateSchedulerType.swift @@ -19,7 +19,7 @@ public protocol ImmediateSchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable + func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable } extension ImmediateSchedulerType { @@ -30,7 +30,7 @@ extension ImmediateSchedulerType { - parameter action: Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public func scheduleRecursive(_ state: State, action: (_ state: State, _ recurse: (State) -> ()) -> ()) -> Disposable { + public func scheduleRecursive(_ state: State, action: @escaping (_ state: State, _ recurse: (State) -> ()) -> ()) -> Disposable { let recursiveScheduler = RecursiveImmediateScheduler(action: action, scheduler: self) recursiveScheduler.schedule(state) diff --git a/RxSwift/Observable.swift b/RxSwift/Observable.swift index 2bd61e82..c3ad9ade 100644 --- a/RxSwift/Observable.swift +++ b/RxSwift/Observable.swift @@ -45,7 +45,7 @@ open class Observable : ObservableType { /** Optimizations for map operator */ - internal func composeMap(_ selector: (Element) throws -> R) -> Observable { + internal func composeMap(_ selector: @escaping (Element) throws -> R) -> Observable { return Map(source: self, selector: selector) } } diff --git a/RxSwift/Observables/Implementations/CombineLatest+arity.swift b/RxSwift/Observables/Implementations/CombineLatest+arity.swift index 43ac6eb1..ad107176 100644 --- a/RxSwift/Observables/Implementations/CombineLatest+arity.swift +++ b/RxSwift/Observables/Implementations/CombineLatest+arity.swift @@ -24,7 +24,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest - (_ source1: O1, _ source2: O2, resultSelector: (O1.E, O2.E) throws -> E) + (_ source1: O1, _ source2: O2, resultSelector: @escaping (O1.E, O2.E) throws -> E) -> Observable { return CombineLatest2( source1: source1.asObservable(), source2: source2.asObservable(), @@ -105,7 +105,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest - (_ source1: O1, _ source2: O2, _ source3: O3, resultSelector: (O1.E, O2.E, O3.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, resultSelector: @escaping (O1.E, O2.E, O3.E) throws -> E) -> Observable { return CombineLatest3( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), @@ -193,7 +193,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, resultSelector: (O1.E, O2.E, O3.E, O4.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E) throws -> E) -> Observable { return CombineLatest4( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), @@ -288,7 +288,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> E) -> Observable { return CombineLatest5( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), @@ -390,7 +390,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> E) -> Observable { return CombineLatest6( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), @@ -499,7 +499,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> E) -> Observable { return CombineLatest7( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), source7: source7.asObservable(), @@ -615,7 +615,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> E) -> Observable { return CombineLatest8( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), source7: source7.asObservable(), source8: source8.asObservable(), diff --git a/RxSwift/Observables/Implementations/CombineLatest+arity.tt b/RxSwift/Observables/Implementations/CombineLatest+arity.tt index 7887576e..2a02ff49 100644 --- a/RxSwift/Observables/Implementations/CombineLatest+arity.tt +++ b/RxSwift/Observables/Implementations/CombineLatest+arity.tt @@ -23,7 +23,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest<<%= (Array(1...i).map { "O\($0): ObservableType" }).joined(separator: ", ") %>> - (<%= (Array(1...i).map { "_ source\($0): O\($0)" }).joined(separator: ", ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joined(separator: ", ") %>) throws -> E) + (<%= (Array(1...i).map { "_ source\($0): O\($0)" }).joined(separator: ", ") %>, resultSelector: @escaping (<%= (Array(1...i).map { "O\($0).E" }).joined(separator: ", ") %>) throws -> E) -> Observable { return CombineLatest<%= i %>( <%= (Array(1...i).map { "source\($0): source\($0).asObservable()" }).joined(separator: ", ") %>, diff --git a/RxSwift/Observables/Implementations/Deferred.swift b/RxSwift/Observables/Implementations/Deferred.swift index d3e58ccc..2ded413a 100644 --- a/RxSwift/Observables/Implementations/Deferred.swift +++ b/RxSwift/Observables/Implementations/Deferred.swift @@ -13,7 +13,7 @@ class DeferredSink : Sink, ObserverType w private let _observableFactory: () throws -> S - init(observableFactory: () throws -> S, observer: O) { + init(observableFactory: @escaping () throws -> S, observer: O) { _observableFactory = observableFactory super.init(observer: observer) } diff --git a/RxSwift/Observables/Implementations/Generate.swift b/RxSwift/Observables/Implementations/Generate.swift index edb0e4f8..8b461e62 100644 --- a/RxSwift/Observables/Implementations/Generate.swift +++ b/RxSwift/Observables/Implementations/Generate.swift @@ -54,7 +54,7 @@ class Generate : Producer { fileprivate let _resultSelector: (S) throws -> E fileprivate let _scheduler: ImmediateSchedulerType - init(initialState: S, condition: (S) throws -> Bool, iterate: (S) throws -> S, resultSelector: (S) throws -> E, scheduler: ImmediateSchedulerType) { + init(initialState: S, condition: @escaping (S) throws -> Bool, iterate: @escaping (S) throws -> S, resultSelector: @escaping (S) throws -> E, scheduler: ImmediateSchedulerType) { _initialState = initialState _condition = condition _iterate = iterate diff --git a/RxSwift/Observables/Implementations/RefCount.swift b/RxSwift/Observables/Implementations/RefCount.swift index a9b13d06..11f1756a 100644 --- a/RxSwift/Observables/Implementations/RefCount.swift +++ b/RxSwift/Observables/Implementations/RefCount.swift @@ -64,7 +64,7 @@ class RefCountSink } class RefCount: Producer { - private let _lock = NSRecursiveLock() + fileprivate let _lock = NSRecursiveLock() // state fileprivate var _count = 0 diff --git a/RxSwift/Observables/Implementations/RetryWhen.swift b/RxSwift/Observables/Implementations/RetryWhen.swift index 78302987..ceed0edc 100644 --- a/RxSwift/Observables/Implementations/RetryWhen.swift +++ b/RxSwift/Observables/Implementations/RetryWhen.swift @@ -137,7 +137,7 @@ class RetryWhenSequence : fileprivate let _sources: S fileprivate let _notificationHandler: (Observable) -> TriggerObservable - init(sources: S, notificationHandler: (Observable) -> TriggerObservable) { + init(sources: S, notificationHandler: @escaping (Observable) -> TriggerObservable) { _sources = sources _notificationHandler = notificationHandler } diff --git a/RxSwift/Observables/Implementations/Zip+arity.swift b/RxSwift/Observables/Implementations/Zip+arity.swift index d9bd1dbb..e429c387 100644 --- a/RxSwift/Observables/Implementations/Zip+arity.swift +++ b/RxSwift/Observables/Implementations/Zip+arity.swift @@ -24,7 +24,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip - (_ source1: O1, _ source2: O2, resultSelector: (O1.E, O2.E) throws -> E) + (_ source1: O1, _ source2: O2, resultSelector: @escaping (O1.E, O2.E) throws -> E) -> Observable { return Zip2( source1: source1.asObservable(), source2: source2.asObservable(), @@ -117,7 +117,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip - (_ source1: O1, _ source2: O2, _ source3: O3, resultSelector: (O1.E, O2.E, O3.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, resultSelector: @escaping (O1.E, O2.E, O3.E) throws -> E) -> Observable { return Zip3( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), @@ -218,7 +218,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, resultSelector: (O1.E, O2.E, O3.E, O4.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E) throws -> E) -> Observable { return Zip4( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), @@ -327,7 +327,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> E) -> Observable { return Zip5( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), @@ -444,7 +444,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> E) -> Observable { return Zip6( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), @@ -569,7 +569,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> E) -> Observable { return Zip7( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), source7: source7.asObservable(), @@ -702,7 +702,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip - (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8, resultSelector: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> E) + (_ source1: O1, _ source2: O2, _ source3: O3, _ source4: O4, _ source5: O5, _ source6: O6, _ source7: O7, _ source8: O8, resultSelector: @escaping (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> E) -> Observable { return Zip8( source1: source1.asObservable(), source2: source2.asObservable(), source3: source3.asObservable(), source4: source4.asObservable(), source5: source5.asObservable(), source6: source6.asObservable(), source7: source7.asObservable(), source8: source8.asObservable(), diff --git a/RxSwift/Observables/Implementations/Zip+arity.tt b/RxSwift/Observables/Implementations/Zip+arity.tt index 3b3542ab..97bb6c28 100644 --- a/RxSwift/Observables/Implementations/Zip+arity.tt +++ b/RxSwift/Observables/Implementations/Zip+arity.tt @@ -23,7 +23,7 @@ extension Observable { */ // @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip<<%= (Array(1...i).map { "O\($0): ObservableType" }).joined(separator: ", ") %>> - (<%= (Array(1...i).map { "_ source\($0): O\($0)" }).joined(separator: ", ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joined(separator: ", ") %>) throws -> E) + (<%= (Array(1...i).map { "_ source\($0): O\($0)" }).joined(separator: ", ") %>, resultSelector: @escaping (<%= (Array(1...i).map { "O\($0).E" }).joined(separator: ", ") %>) throws -> E) -> Observable { return Zip<%= i %>( <%= (Array(1...i).map { "source\($0): source\($0).asObservable()" }).joined(separator: ", ") %>, diff --git a/RxSwift/Observables/Observable+Aggregate.swift b/RxSwift/Observables/Observable+Aggregate.swift index 8aafaf63..b56be33f 100644 --- a/RxSwift/Observables/Observable+Aggregate.swift +++ b/RxSwift/Observables/Observable+Aggregate.swift @@ -25,7 +25,7 @@ extension ObservableType { - returns: An observable sequence containing a single element with the final accumulator value. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func reduce(_ seed: A, accumulator: (A, E) throws -> A, mapResult: (A) throws -> R) + public func reduce(_ seed: A, accumulator: @escaping (A, E) throws -> A, mapResult: @escaping (A) throws -> R) -> Observable { return Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: mapResult) } @@ -42,7 +42,7 @@ extension ObservableType { - returns: An observable sequence containing a single element with the final accumulator value. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func reduce(_ seed: A, accumulator: (A, E) throws -> A) + public func reduce(_ seed: A, accumulator: @escaping (A, E) throws -> A) -> Observable { return Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: { $0 }) } diff --git a/RxSwift/Observables/Observable+Binding.swift b/RxSwift/Observables/Observable+Binding.swift index ef7c9f3b..95f6e53c 100644 --- a/RxSwift/Observables/Observable+Binding.swift +++ b/RxSwift/Observables/Observable+Binding.swift @@ -44,7 +44,7 @@ extension ObservableType { - returns: An observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func multicast(_ subjectSelector: () throws -> S, selector: (Observable) throws -> Observable) + public func multicast(_ subjectSelector: @escaping () throws -> S, selector: @escaping (Observable) throws -> Observable) -> Observable where S.SubjectObserverType.E == E { return Multicast( source: self.asObservable(), diff --git a/RxSwift/Observables/Observable+Creation.swift b/RxSwift/Observables/Observable+Creation.swift index 781db73b..c42b0191 100644 --- a/RxSwift/Observables/Observable+Creation.swift +++ b/RxSwift/Observables/Observable+Creation.swift @@ -132,7 +132,7 @@ extension Observable { - returns: The generated sequence. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public static func generate(initialState: E, condition: (E) throws -> Bool, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance, iterate: (E) throws -> E) -> Observable { + public static func generate(initialState: E, condition: @escaping (E) throws -> Bool, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance, iterate: @escaping (E) throws -> E) -> Observable { return Generate(initialState: initialState, condition: condition, iterate: iterate, resultSelector: { $0 }, scheduler: scheduler) } diff --git a/RxSwift/Observables/Observable+Multiple.swift b/RxSwift/Observables/Observable+Multiple.swift index 3e520e7f..703246f9 100644 --- a/RxSwift/Observables/Observable+Multiple.swift +++ b/RxSwift/Observables/Observable+Multiple.swift @@ -21,7 +21,7 @@ extension Collection where Iterator.Element : ObservableType { - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func combineLatest(_ resultSelector: ([Generator.Element.E]) throws -> R) -> Observable { + public func combineLatest(_ resultSelector: @escaping ([Generator.Element.E]) throws -> R) -> Observable { return CombineLatestCollectionType(sources: self, resultSelector: resultSelector) } } @@ -39,7 +39,7 @@ extension Collection where Iterator.Element : ObservableType { - returns: An observable sequence containing the result of combining elements of the sources using the specified result selector function. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func zip(_ resultSelector: ([Generator.Element.E]) throws -> R) -> Observable { + public func zip(_ resultSelector: @escaping ([Generator.Element.E]) throws -> R) -> Observable { return ZipCollectionType(sources: self, resultSelector: resultSelector) } } @@ -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. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func catchError(_ handler: (Swift.Error) throws -> Observable) + public func catchError(_ handler: @escaping (Swift.Error) throws -> Observable) -> Observable { return Catch(source: asObservable(), handler: handler) } @@ -312,7 +312,7 @@ extension ObservableType { - parameter resultSelector: Function to invoke for each element from the self combined with the latest element from the second source, if any. - returns: An observable sequence containing the result of combining each element of the self with the latest element from the second source, if any, using the specified result selector function. */ - public func withLatestFrom(_ second: SecondO, resultSelector: (E, SecondO.E) throws -> ResultType) -> Observable { + public func withLatestFrom(_ second: SecondO, resultSelector: @escaping (E, SecondO.E) throws -> ResultType) -> Observable { return WithLatestFrom(first: asObservable(), second: second.asObservable(), resultSelector: resultSelector) } diff --git a/RxSwift/Observables/Observable+Single.swift b/RxSwift/Observables/Observable+Single.swift index ebf1d139..17aa334e 100644 --- a/RxSwift/Observables/Observable+Single.swift +++ b/RxSwift/Observables/Observable+Single.swift @@ -36,7 +36,7 @@ extension ObservableType { - returns: An observable sequence only containing the distinct contiguous elements, based on a computed key value, from the source sequence. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func distinctUntilChanged(_ keySelector: (E) throws -> K) + public func distinctUntilChanged(_ keySelector: @escaping (E) throws -> K) -> Observable { return self.distinctUntilChanged(keySelector, comparer: { $0 == $1 }) } @@ -50,7 +50,7 @@ extension ObservableType { - returns: An observable sequence only containing the distinct contiguous elements, based on `comparer`, from the source sequence. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func distinctUntilChanged(_ comparer: (E, E) throws -> Bool) + public func distinctUntilChanged(_ comparer: @escaping (E, E) throws -> Bool) -> Observable { return self.distinctUntilChanged({ $0 }, comparer: comparer) } @@ -65,7 +65,7 @@ extension ObservableType { - returns: An observable sequence only containing the distinct contiguous elements, based on a computed key value and the comparer, from the source sequence. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func distinctUntilChanged(_ keySelector: (E) throws -> K, comparer: (K, K) throws -> Bool) + public func distinctUntilChanged(_ keySelector: @escaping (E) throws -> K, comparer: @escaping (K, K) throws -> Bool) -> Observable { return DistinctUntilChanged(source: self.asObservable(), selector: keySelector, comparer: comparer) } @@ -85,7 +85,7 @@ extension ObservableType { */ // @warn_unused_result(message:"http://git.io/rxs.uo") @available(*, deprecated, renamed: "do(onNext:onError:onCompleted:)") - public func doOn(_ eventHandler: (Event) throws -> Void) + public func doOn(_ eventHandler: @escaping (Event) throws -> Void) -> Observable { return Do(source: self.asObservable(), eventHandler: eventHandler, onSubscribe: nil, onDispose: nil) } @@ -128,7 +128,7 @@ extension ObservableType { */ // @warn_unused_result(message:"http://git.io/rxs.uo") @available(*, deprecated, renamed: "do(onNext:)") - public func doOnNext(onNext: ((E) throws -> Void)) + public func doOnNext(onNext: @escaping (E) throws -> Void) -> Observable { return self.do(onNext: onNext) } @@ -141,7 +141,7 @@ extension ObservableType { */ // @warn_unused_result(message:"http://git.io/rxs.uo") @available(*, deprecated, renamed: "do(onError:)") - public func doOnError(onError: ((Swift.Error) throws -> Void)) + public func doOnError(onError: @escaping (Swift.Error) throws -> Void) -> Observable { return self.do(onError: onError) } @@ -154,7 +154,7 @@ extension ObservableType { */ // @warn_unused_result(message:"http://git.io/rxs.uo") @available(*, deprecated, renamed: "do(onCompleted:)") - public func doOnCompleted(onCompleted: (() throws -> Void)) + public func doOnCompleted(onCompleted: @escaping () throws -> Void) -> Observable { return self.do(onCompleted: onCompleted) } @@ -250,7 +250,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. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func retryWhen(_ notificationHandler: (Observable) -> TriggerObservable) + public func retryWhen(_ notificationHandler: @escaping (Observable) -> TriggerObservable) -> Observable { return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) } @@ -265,7 +265,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. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func retryWhen(_ notificationHandler: (Observable) -> TriggerObservable) + public func retryWhen(_ notificationHandler: @escaping (Observable) -> TriggerObservable) -> Observable { return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) } @@ -287,7 +287,7 @@ extension ObservableType { - returns: An observable sequence containing the accumulated values. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func scan(_ seed: A, accumulator: (A, E) throws -> A) + public func scan(_ seed: A, accumulator: @escaping (A, E) throws -> A) -> Observable { return Scan(source: self.asObservable(), seed: seed, accumulator: accumulator) } diff --git a/RxSwift/Observables/Observable+StandardSequenceOperators.swift b/RxSwift/Observables/Observable+StandardSequenceOperators.swift index 6bfb5055..6c5db5f1 100644 --- a/RxSwift/Observables/Observable+StandardSequenceOperators.swift +++ b/RxSwift/Observables/Observable+StandardSequenceOperators.swift @@ -21,7 +21,7 @@ extension ObservableType { - returns: An observable sequence that contains elements from the input sequence that satisfy the condition. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func filter(_ predicate: (E) throws -> Bool) + public func filter(_ predicate: @escaping (E) throws -> Bool) -> Observable { return Filter(source: asObservable(), predicate: predicate) } @@ -40,7 +40,7 @@ extension ObservableType { - returns: An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func takeWhile(_ predicate: (E) throws -> Bool) + public func takeWhile(_ predicate: @escaping (E) throws -> Bool) -> Observable { return TakeWhile(source: asObservable(), predicate: predicate) } @@ -56,7 +56,7 @@ extension ObservableType { - returns: An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func takeWhileWithIndex(_ predicate: (E, Int) throws -> Bool) + public func takeWhileWithIndex(_ predicate: @escaping (E, Int) throws -> Bool) -> Observable { return TakeWhile(source: asObservable(), predicate: predicate) } @@ -140,7 +140,7 @@ extension ObservableType { - returns: An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func skipWhile(_ predicate: (E) throws -> Bool) -> Observable { + public func skipWhile(_ predicate: @escaping (E) throws -> Bool) -> Observable { return SkipWhile(source: asObservable(), predicate: predicate) } @@ -154,7 +154,7 @@ extension ObservableType { - returns: An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func skipWhileWithIndex(_ predicate: (E, Int) throws -> Bool) -> Observable { + public func skipWhileWithIndex(_ predicate: @escaping (E, Int) throws -> Bool) -> Observable { return SkipWhile(source: asObservable(), predicate: predicate) } } @@ -173,7 +173,7 @@ extension ObservableType { */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func map(_ selector: (E) throws -> R) + public func map(_ selector: @escaping (E) throws -> R) -> Observable { return self.asObservable().composeMap(selector) } @@ -187,7 +187,7 @@ extension ObservableType { - returns: An observable sequence whose elements are the result of invoking the transform function on each element of source. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func mapWithIndex(_ selector: (E, Int) throws -> R) + public func mapWithIndex(_ selector: @escaping (E, Int) throws -> R) -> Observable { return MapWithIndex(source: asObservable(), selector: selector) } @@ -206,7 +206,7 @@ extension ObservableType { - returns: An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func flatMap(_ selector: (E) throws -> O) + public func flatMap(_ selector: @escaping (E) throws -> O) -> Observable { return FlatMap(source: asObservable(), selector: selector) } @@ -220,7 +220,7 @@ extension ObservableType { - returns: An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func flatMapWithIndex(_ selector: (E, Int) throws -> O) + public func flatMapWithIndex(_ selector: @escaping (E, Int) throws -> O) -> Observable { return FlatMapWithIndex(source: asObservable(), selector: selector) } @@ -240,7 +240,7 @@ extension ObservableType { - returns: An observable sequence whose elements are the result of invoking the one-to-many transform function on each element of the input sequence that was received while no other sequence was being calculated. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func flatMapFirst(_ selector: (E) throws -> O) + public func flatMapFirst(_ selector: @escaping (E) throws -> O) -> Observable { return FlatMapFirst(source: asObservable(), selector: selector) } @@ -262,7 +262,7 @@ extension ObservableType { Observable of Observable sequences and that at any point in time produces the elements of the most recent inner observable sequence that has been received. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func flatMapLatest(_ selector: (E) throws -> O) + public func flatMapLatest(_ selector: @escaping (E) throws -> O) -> Observable { return FlatMapLatest(source: asObservable(), selector: selector) } @@ -315,7 +315,7 @@ extension ObservableType { - returns: An observable sequence that emits a single item or throws an exception if more (or none) of them are emitted. */ // @warn_unused_result(message:"http://git.io/rxs.uo") - public func single(_ predicate: (E) throws -> Bool) + public func single(_ predicate: @escaping (E) throws -> Bool) -> Observable { return SingleAsync(source: asObservable(), predicate: predicate) } diff --git a/RxSwift/SchedulerType.swift b/RxSwift/SchedulerType.swift index cb6f373a..ba92ff1e 100644 --- a/RxSwift/SchedulerType.swift +++ b/RxSwift/SchedulerType.swift @@ -38,7 +38,7 @@ public protocol SchedulerType: ImmediateSchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: (StateType) -> Disposable) -> Disposable + func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable /** Schedules a periodic piece of work. @@ -49,7 +49,7 @@ public protocol SchedulerType: ImmediateSchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - func schedulePeriodic(_ state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: (StateType) -> StateType) -> Disposable + func schedulePeriodic(_ state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: @escaping (StateType) -> StateType) -> Disposable } extension SchedulerType { @@ -62,13 +62,13 @@ extension SchedulerType { - parameter period: Period for running the work periodically. - returns: The disposable object used to cancel the scheduled recurring action (best effort). */ - public func schedulePeriodic(_ state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: (StateType) -> StateType) -> Disposable { + public func schedulePeriodic(_ state: StateType, startAfter: RxTimeInterval, period: RxTimeInterval, action: @escaping (StateType) -> StateType) -> Disposable { let schedule = SchedulePeriodicRecursive(scheduler: self, startAfter: startAfter, period: period, action: action, state: state) return schedule.start() } - func scheduleRecursive(_ state: State, dueTime: RxTimeInterval, action: (State, AnyRecursiveScheduler) -> ()) -> Disposable { + func scheduleRecursive(_ state: State, dueTime: RxTimeInterval, action: @escaping (State, AnyRecursiveScheduler) -> ()) -> Disposable { let scheduler = AnyRecursiveScheduler(scheduler: self, action: action) scheduler.schedule(state, dueTime: dueTime) diff --git a/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift b/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift index 4507a191..4250f7b1 100644 --- a/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift +++ b/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift @@ -56,7 +56,7 @@ open class ConcurrentDispatchQueueScheduler: SchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public final func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + public final func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { return self.configuration.schedule(state, action: action) } @@ -68,7 +68,7 @@ open class ConcurrentDispatchQueueScheduler: SchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: (StateType) -> Disposable) -> Disposable { + public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { return self.configuration.scheduleRelative(state, dueTime: dueTime, action: action) } @@ -81,7 +81,7 @@ open class ConcurrentDispatchQueueScheduler: SchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - open func schedulePeriodic(_ state: StateType, startAfter: TimeInterval, period: TimeInterval, action: (StateType) -> StateType) -> Disposable { + open func schedulePeriodic(_ state: StateType, startAfter: TimeInterval, period: TimeInterval, action: @escaping (StateType) -> StateType) -> Disposable { return self.configuration.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) } } diff --git a/RxSwift/Schedulers/ConcurrentMainScheduler.swift b/RxSwift/Schedulers/ConcurrentMainScheduler.swift index 5898bf2b..04a5e0fa 100644 --- a/RxSwift/Schedulers/ConcurrentMainScheduler.swift +++ b/RxSwift/Schedulers/ConcurrentMainScheduler.swift @@ -71,7 +71,7 @@ public final class ConcurrentMainScheduler : SchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: (StateType) -> Disposable) -> Disposable { + public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { return _mainScheduler.scheduleRelative(state, dueTime: dueTime, action: action) } @@ -84,7 +84,7 @@ public final class ConcurrentMainScheduler : SchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public func schedulePeriodic(_ state: StateType, startAfter: TimeInterval, period: TimeInterval, action: (StateType) -> StateType) -> Disposable { + public func schedulePeriodic(_ state: StateType, startAfter: TimeInterval, period: TimeInterval, action: @escaping (StateType) -> StateType) -> Disposable { return _mainScheduler.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) } } diff --git a/RxSwift/Schedulers/CurrentThreadScheduler.swift b/RxSwift/Schedulers/CurrentThreadScheduler.swift index dc8fc379..43c0bb94 100644 --- a/RxSwift/Schedulers/CurrentThreadScheduler.swift +++ b/RxSwift/Schedulers/CurrentThreadScheduler.swift @@ -104,7 +104,7 @@ open class CurrentThreadScheduler : ImmediateSchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - open func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + open func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { if CurrentThreadScheduler.isScheduleRequired { CurrentThreadScheduler.isScheduleRequired = false diff --git a/RxSwift/Schedulers/ImmediateScheduler.swift b/RxSwift/Schedulers/ImmediateScheduler.swift index 4da9c82d..0dc7a035 100644 --- a/RxSwift/Schedulers/ImmediateScheduler.swift +++ b/RxSwift/Schedulers/ImmediateScheduler.swift @@ -25,7 +25,7 @@ private class ImmediateScheduler : ImmediateSchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { let disposable = SingleAssignmentDisposable() _asyncLock.invoke(AnonymousInvocable { if disposable.isDisposed { diff --git a/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift b/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift index 7d5fe4b8..203dc490 100644 --- a/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift +++ b/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift @@ -89,11 +89,11 @@ open class SerialDispatchQueueScheduler : SchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public final func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + public final func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { return self.scheduleInternal(state, action: action) } - func scheduleInternal(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + func scheduleInternal(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { return self.configuration.schedule(state, action: action) } @@ -105,7 +105,7 @@ open class SerialDispatchQueueScheduler : SchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: (StateType) -> Disposable) -> Disposable { + public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { return self.configuration.scheduleRelative(state, dueTime: dueTime, action: action) } @@ -118,7 +118,7 @@ open class SerialDispatchQueueScheduler : SchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - open func schedulePeriodic(_ state: StateType, startAfter: TimeInterval, period: TimeInterval, action: (StateType) -> StateType) -> Disposable { + open func schedulePeriodic(_ state: StateType, startAfter: TimeInterval, period: TimeInterval, action: @escaping (StateType) -> StateType) -> Disposable { return self.configuration.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) } } diff --git a/RxSwift/Schedulers/VirtualTimeScheduler.swift b/RxSwift/Schedulers/VirtualTimeScheduler.swift index 4c3b2e28..5cd01001 100644 --- a/RxSwift/Schedulers/VirtualTimeScheduler.swift +++ b/RxSwift/Schedulers/VirtualTimeScheduler.swift @@ -72,7 +72,7 @@ open class VirtualTimeScheduler - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - open func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + open func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { return self.scheduleRelative(state, dueTime: 0.0) { a in return action(a) } @@ -86,7 +86,7 @@ open class VirtualTimeScheduler - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - open func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: (StateType) -> Disposable) -> Disposable { + open func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { let time = self.now.addingTimeInterval(dueTime) let absoluteTime = _converter.convertToVirtualTime(time) let adjustedTime = self.adjustScheduledTime(absoluteTime) @@ -101,7 +101,7 @@ open class VirtualTimeScheduler - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - open func scheduleRelativeVirtual(_ state: StateType, dueTime: VirtualTimeInterval, action: (StateType) -> Disposable) -> Disposable { + open func scheduleRelativeVirtual(_ state: StateType, dueTime: VirtualTimeInterval, action: @escaping (StateType) -> Disposable) -> Disposable { let time = _converter.offsetVirtualTime(self.clock, offset: dueTime) return scheduleAbsoluteVirtual(state, time: time, action: action) }