diff --git a/Rx.xcodeproj/project.pbxproj b/Rx.xcodeproj/project.pbxproj index 3effdde6..7bf1199f 100644 --- a/Rx.xcodeproj/project.pbxproj +++ b/Rx.xcodeproj/project.pbxproj @@ -3108,8 +3108,15 @@ LastUpgradeCheck = 0720; ORGANIZATIONNAME = "Krunoslav Zaher"; TargetAttributes = { + C80938F51B8A71760088E94D = { + LastSwiftMigration = 0800; + }; + C8093B4B1B8A71F00088E94D = { + LastSwiftMigration = 0800; + }; C83508C21C386F6F0027C24C = { CreatedOnToolsVersion = 7.2; + LastSwiftMigration = 0800; }; C83509831C38740E0027C24C = { CreatedOnToolsVersion = 7.2; @@ -3120,8 +3127,12 @@ C85BA04A1C3878740075D68E = { CreatedOnToolsVersion = 7.2; }; + C88FA4FD1C25C44800CCFEA4 = { + LastSwiftMigration = 0800; + }; C8A56AD61AD7424700B4673B = { CreatedOnToolsVersion = 6.3; + LastSwiftMigration = 0800; }; D2138C741BB9BE9800339B5C = { CreatedOnToolsVersion = 7.1; @@ -4756,6 +4767,7 @@ PRODUCT_NAME = RxCocoa; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -4773,6 +4785,7 @@ PRODUCT_NAME = RxCocoa; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -4790,6 +4803,7 @@ PRODUCT_NAME = RxCocoa; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = "Release-Tests"; }; @@ -4864,6 +4878,7 @@ PRODUCT_NAME = RxBlocking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -4881,6 +4896,7 @@ PRODUCT_NAME = RxBlocking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -4898,6 +4914,7 @@ PRODUCT_NAME = RxBlocking; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = "Release-Tests"; }; @@ -4973,6 +4990,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SWIFT_OBJC_BRIDGING_HEADER = "Tests/RxCocoaTests/RxTests-iOS-Bridging-Header.h"; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -4986,6 +5004,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SWIFT_OBJC_BRIDGING_HEADER = "Tests/RxCocoaTests/RxTests-iOS-Bridging-Header.h"; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -4999,6 +5018,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SWIFT_OBJC_BRIDGING_HEADER = "Tests/RxCocoaTests/RxTests-iOS-Bridging-Header.h"; + SWIFT_VERSION = 3.0; }; name = "Release-Tests"; }; @@ -5216,6 +5236,7 @@ PRODUCT_NAME = RxSwift; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = "Release-Tests"; }; @@ -5294,6 +5315,7 @@ PRODUCT_NAME = RxTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -5315,6 +5337,7 @@ PRODUCT_NAME = RxTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -5336,6 +5359,7 @@ PRODUCT_NAME = RxTests; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = "Release-Tests"; }; @@ -5662,6 +5686,7 @@ PRODUCT_NAME = RxSwift; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -5679,6 +5704,7 @@ PRODUCT_NAME = RxSwift; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Release; }; diff --git a/RxBlocking/BlockingObservable+Operators.swift b/RxBlocking/BlockingObservable+Operators.swift index d567976d..faf5f025 100644 --- a/RxBlocking/BlockingObservable+Operators.swift +++ b/RxBlocking/BlockingObservable+Operators.swift @@ -34,13 +34,13 @@ extension BlockingObservable { return } switch e { - case .Next(let element): + case .next(let element): elements.append(element) - case .Error(let e): + case .error(let e): error = e d.dispose() lock.stop() - case .Completed: + case .completed: d.dispose() lock.stop() } @@ -83,12 +83,12 @@ extension BlockingObservable { } switch e { - case .Next(let e): + case .next(let e): if element == nil { element = e } break - case .Error(let e): + case .error(let e): error = e default: break @@ -134,10 +134,10 @@ extension BlockingObservable { return } switch e { - case .Next(let e): + case .next(let e): element = e return - case .Error(let e): + case .error(let e): error = e default: break @@ -180,7 +180,7 @@ extension BlockingObservable { - parameter predicate: A function to test each source element for a condition. - returns: Returns the only element of an sequence that satisfies the condition in the predicate, and reports an error if there is not exactly one element in the sequence. */ - public func single(predicate: (E) throws -> Bool) throws -> E? { + public func single(_ predicate: (E) throws -> Bool) throws -> E? { var element: E? var error: ErrorProtocol? @@ -195,7 +195,7 @@ extension BlockingObservable { return } switch e { - case .Next(let e): + case .next(let e): do { if try !predicate(e) { return @@ -203,7 +203,7 @@ extension BlockingObservable { if element == nil { element = e } else { - throw RxError.MoreThanOneElement + throw RxError.moreThanOneElement } } catch (let err) { error = err @@ -211,11 +211,11 @@ extension BlockingObservable { lock.stop() } return - case .Error(let e): + case .error(let e): error = e - case .Completed: + case .completed: if element == nil { - error = RxError.NoElements + error = RxError.noElements } } diff --git a/RxBlocking/ObservableConvertibleType+Blocking.swift b/RxBlocking/ObservableConvertibleType+Blocking.swift index 028d099f..4268fbd4 100644 --- a/RxBlocking/ObservableConvertibleType+Blocking.swift +++ b/RxBlocking/ObservableConvertibleType+Blocking.swift @@ -17,8 +17,8 @@ extension ObservableConvertibleType { - returns: `BlockingObservable` version of `self` */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func toBlocking() -> BlockingObservable { return BlockingObservable(source: self.asObservable()) } -} \ No newline at end of file +} diff --git a/RxBlocking/RunLoopLock.swift b/RxBlocking/RunLoopLock.swift index 3e3af5e1..47842c59 100644 --- a/RxBlocking/RunLoopLock.swift +++ b/RxBlocking/RunLoopLock.swift @@ -38,10 +38,10 @@ class RunLoopLock { currentRunLoop = CFRunLoopGetCurrent() } - func dispatch(action: () -> ()) { - CFRunLoopPerformBlock(currentRunLoop, kCFRunLoopDefaultMode) { + func dispatch(_ action: () -> ()) { + CFRunLoopPerformBlock(currentRunLoop, CFRunLoopMode.defaultMode as! CFTypeRef) { if CurrentThreadScheduler.isScheduleRequired { - CurrentThreadScheduler.instance.schedule(state: ()) { _ in + _ = CurrentThreadScheduler.instance.schedule(()) { _ in action() return NopDisposable.instance } @@ -57,7 +57,7 @@ class RunLoopLock { if AtomicIncrement(&calledStop) != 1 { return } - CFRunLoopPerformBlock(currentRunLoop, kCFRunLoopDefaultMode) { + CFRunLoopPerformBlock(currentRunLoop, CFRunLoopMode.defaultMode as! CFTypeRef) { CFRunLoopStop(self.currentRunLoop) } CFRunLoopWakeUp(currentRunLoop) diff --git a/RxCocoa/Common/CLLocationManager+Rx.swift b/RxCocoa/Common/CLLocationManager+Rx.swift index 9481766b..c5cd8053 100644 --- a/RxCocoa/Common/CLLocationManager+Rx.swift +++ b/RxCocoa/Common/CLLocationManager+Rx.swift @@ -29,7 +29,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didUpdateLocations: Observable<[CLLocation]> { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didUpdate:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didUpdateLocations:))) .map { a in return try castOrThrow([CLLocation].self, a[1]) } @@ -39,7 +39,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didFailWithError: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didFailWithError:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didFailWithError:))) .map { a in return try castOrThrow(NSError.self, a[1]) } @@ -50,7 +50,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didFinishDeferredUpdatesWithError: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didFinishDeferredUpdatesWithError:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didFinishDeferredUpdatesWithError:))) .map { a in return try castOptionalOrThrow(NSError.self, a[1]) } @@ -65,7 +65,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didPauseLocationUpdates: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManagerDidPauseLocationUpdates(_:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManagerDidPauseLocationUpdates(_:))) .map { _ in return () } @@ -75,7 +75,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didResumeLocationUpdates: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManagerDidResumeLocationUpdates(_:))) + return rx_delegate.observe( #selector(CLLocationManagerDelegate.locationManagerDidResumeLocationUpdates(_:))) .map { _ in return () } @@ -87,7 +87,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didUpdateHeading: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didUpdate:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didUpdateHeading:))) .map { a in return try castOrThrow(CLHeading.self, a[1]) } @@ -99,7 +99,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didEnterRegion: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didEnter:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didEnterRegion:))) .map { a in return try castOrThrow(CLRegion.self, a[1]) } @@ -109,7 +109,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didExitRegion: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didExitRegion:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didExitRegion:))) .map { a in return try castOrThrow(CLRegion.self, a[1]) } @@ -124,7 +124,7 @@ extension CLLocationManager { */ @available(OSX 10.10, *) public var rx_didDetermineStateForRegion: Observable<(state: CLRegionState, region: CLRegion)> { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didDetermineState:for:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didDetermineState:for:))) .map { a in let stateNumber = try castOrThrow(NSNumber.self, a[1]) let state = CLRegionState(rawValue: stateNumber.intValue) ?? CLRegionState.unknown @@ -137,7 +137,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_monitoringDidFailForRegionWithError: Observable<(region: CLRegion?, error: NSError)> { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:monitoringDidFailFor:withError:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:monitoringDidFailFor:withError:))) .map { a in let region = try castOptionalOrThrow(CLRegion.self, a[1]) let error = try castOrThrow(NSError.self, a[2]) @@ -149,7 +149,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didStartMonitoringForRegion: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didStartMonitoringFor:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didStartMonitoringFor:))) .map { a in return try castOrThrow(CLRegion.self, a[1]) } @@ -165,7 +165,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didRangeBeaconsInRegion: Observable<(beacons: [CLBeacon], region: CLBeaconRegion)> { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didRangeBeacons:in:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didRangeBeacons:in:))) .map { a in let beacons = try castOrThrow([CLBeacon].self, a[1]) let region = try castOrThrow(CLBeaconRegion.self, a[2]) @@ -177,7 +177,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_rangingBeaconsDidFailForRegionWithError: Observable<(region: CLBeaconRegion, error: NSError)> { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:rangingBeaconsDidFailFor:withError:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:rangingBeaconsDidFailFor:withError:))) .map { a in let region = try castOrThrow(CLBeaconRegion.self, a[1]) let error = try castOrThrow(NSError.self, a[2]) @@ -192,7 +192,7 @@ extension CLLocationManager { */ @available(iOS 8.0, *) public var rx_didVisit: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didVisit:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didVisit:))) .map { a in return try castOrThrow(CLVisit.self, a[1]) } @@ -206,7 +206,7 @@ extension CLLocationManager { Reactive wrapper for `delegate` message. */ public var rx_didChangeAuthorizationStatus: Observable { - return rx_delegate.observe(selector: #selector(CLLocationManagerDelegate.locationManager(_:didChange:))) + return rx_delegate.observe(#selector(CLLocationManagerDelegate.locationManager(_:didChangeAuthorization:))) .map { a in let number = try castOrThrow(NSNumber.self, a[1]) return CLAuthorizationStatus(rawValue: Int32(number.intValue)) ?? .notDetermined diff --git a/RxCocoa/Common/CocoaUnits/ControlEvent.swift b/RxCocoa/Common/CocoaUnits/ControlEvent.swift index 4e138dbe..41212931 100644 --- a/RxCocoa/Common/CocoaUnits/ControlEvent.swift +++ b/RxCocoa/Common/CocoaUnits/ControlEvent.swift @@ -55,7 +55,7 @@ public struct ControlEvent : ControlEventType { - returns: Control event created with a observable sequence of events. */ public init(events: Ev) { - _events = events.subscribeOn(scheduler: ConcurrentMainScheduler.instance) + _events = events.subscribeOn(ConcurrentMainScheduler.instance) } /** @@ -64,14 +64,14 @@ public struct ControlEvent : ControlEventType { - parameter observer: Observer to subscribe to events. - returns: Disposable object that can be used to unsubscribe the observer from receiving control events. */ - public func subscribe(observer: O) -> Disposable { - return _events.subscribe(observer: observer) + public func subscribe(_ observer: O) -> Disposable { + return _events.subscribe(observer) } /** - returns: `Observable` interface. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asObservable() -> Observable { return _events } @@ -79,7 +79,7 @@ public struct ControlEvent : ControlEventType { /** - returns: `ControlEvent` interface. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asControlEvent() -> ControlEvent { return self } diff --git a/RxCocoa/Common/CocoaUnits/ControlProperty.swift b/RxCocoa/Common/CocoaUnits/ControlProperty.swift index a6a28185..cdbeca1a 100644 --- a/RxCocoa/Common/CocoaUnits/ControlProperty.swift +++ b/RxCocoa/Common/CocoaUnits/ControlProperty.swift @@ -60,7 +60,7 @@ public struct ControlProperty : ControlPropertyType { to property. */ public init(values: V, valueSink: S) { - _values = values.subscribeOn(scheduler: ConcurrentMainScheduler.instance) + _values = values.subscribeOn(ConcurrentMainScheduler.instance) _valueSink = valueSink.asObserver() } @@ -70,14 +70,14 @@ public struct ControlProperty : ControlPropertyType { - parameter observer: Observer to subscribe to property values. - returns: Disposable object that can be used to unsubscribe the observer from receiving control property values. */ - public func subscribe(observer: O) -> Disposable { - return _values.subscribe(observer: observer) + public func subscribe(_ observer: O) -> Disposable { + return _values.subscribe(observer) } /** - returns: `Observable` interface. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asObservable() -> Observable { return _values } @@ -85,7 +85,7 @@ public struct ControlProperty : ControlPropertyType { /** - returns: `ControlProperty` interface. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asControlProperty() -> ControlProperty { return self } @@ -97,14 +97,14 @@ public struct ControlProperty : ControlPropertyType { - In case error is received, DEBUG buids raise fatal error, RELEASE builds log event to standard output. - In case sequence completes, nothing happens. */ - public func on(event: Event) { + public func on(_ event: Event) { switch event { - case .Error(let error): + case .error(let error): bindingErrorToInterface(error) - case .Next: - _valueSink.on(event: event) - case .Completed: - _valueSink.on(event: event) + case .next: + _valueSink.on(event) + case .completed: + _valueSink.on(event) } } } diff --git a/RxCocoa/Common/CocoaUnits/Driver/ControlEvent+Driver.swift b/RxCocoa/Common/CocoaUnits/Driver/ControlEvent+Driver.swift index 22471520..6bbf0065 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/ControlEvent+Driver.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/ControlEvent+Driver.swift @@ -17,7 +17,7 @@ extension ControlEvent { `ControlEvent` already can't fail, so no special case needs to be handled. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asDriver() -> Driver { return self.asDriver { (error) -> Driver in #if DEBUG @@ -27,4 +27,4 @@ extension ControlEvent { #endif } } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/CocoaUnits/Driver/ControlProperty+Driver.swift b/RxCocoa/Common/CocoaUnits/Driver/ControlProperty+Driver.swift index 90983408..0baef68b 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/ControlProperty+Driver.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/ControlProperty+Driver.swift @@ -17,7 +17,7 @@ extension ControlProperty { `ControlProperty` already can't fail, so no special case needs to be handled. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asDriver() -> Driver { return self.asDriver { (error) -> Driver in #if DEBUG @@ -27,4 +27,4 @@ extension ControlProperty { #endif } } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.swift b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.swift index c7066004..31589e76 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.swift @@ -23,9 +23,9 @@ extension Driver { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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: (O1.E, O2.E) throws -> E) -> Driver { let source = Observable.zip( source1.asDriver().asObservable(), source2.asDriver().asObservable(), @@ -43,9 +43,9 @@ extension Driver { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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: (O1.E, O2.E) throws -> E) -> Driver { let source = Observable.combineLatest( source1.asDriver().asObservable(), source2.asDriver().asObservable(), @@ -67,9 +67,9 @@ extension Driver { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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: (O1.E, O2.E, O3.E) throws -> E) -> Driver { let source = Observable.zip( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), @@ -87,9 +87,9 @@ extension Driver { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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: (O1.E, O2.E, O3.E) throws -> E) -> Driver { let source = Observable.combineLatest( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), @@ -111,9 +111,9 @@ extension Driver { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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: (O1.E, O2.E, O3.E, O4.E) throws -> E) -> Driver { let source = Observable.zip( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), @@ -131,9 +131,9 @@ extension Driver { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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: (O1.E, O2.E, O3.E, O4.E) throws -> E) -> Driver { let source = Observable.combineLatest( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), @@ -155,9 +155,9 @@ extension Driver { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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: (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> E) -> Driver { let source = Observable.zip( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), source5.asDriver().asObservable(), @@ -175,9 +175,9 @@ extension Driver { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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: (O1.E, O2.E, O3.E, O4.E, O5.E) throws -> E) -> Driver { let source = Observable.combineLatest( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), source5.asDriver().asObservable(), @@ -199,9 +199,9 @@ extension Driver { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> E) -> Driver { let source = Observable.zip( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), source5.asDriver().asObservable(), source6.asDriver().asObservable(), @@ -219,9 +219,9 @@ extension Driver { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E) throws -> E) -> Driver { let source = Observable.combineLatest( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), source5.asDriver().asObservable(), source6.asDriver().asObservable(), @@ -243,9 +243,9 @@ extension Driver { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> E) -> Driver { let source = Observable.zip( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), source5.asDriver().asObservable(), source6.asDriver().asObservable(), source7.asDriver().asObservable(), @@ -263,9 +263,9 @@ extension Driver { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E) throws -> E) -> Driver { let source = Observable.combineLatest( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), source5.asDriver().asObservable(), source6.asDriver().asObservable(), source7.asDriver().asObservable(), @@ -287,9 +287,9 @@ extension Driver { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> E) -> Driver { let source = Observable.zip( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), source5.asDriver().asObservable(), source6.asDriver().asObservable(), source7.asDriver().asObservable(), source8.asDriver().asObservable(), @@ -307,9 +307,9 @@ extension Driver { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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: (O1.E, O2.E, O3.E, O4.E, O5.E, O6.E, O7.E, O8.E) throws -> E) -> Driver { let source = Observable.combineLatest( source1.asDriver().asObservable(), source2.asDriver().asObservable(), source3.asDriver().asObservable(), source4.asDriver().asObservable(), source5.asDriver().asObservable(), source6.asDriver().asObservable(), source7.asDriver().asObservable(), source8.asDriver().asObservable(), diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.tt b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.tt index c09ec2b3..9b7ea8f5 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.tt +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators+arity.tt @@ -22,7 +22,7 @@ extension Driver { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip<<%= (Array(1...i).map { "O\($0): DriverConvertibleType" }).joinWithSeparator(", ") %>> (<%= (Array(1...i).map { "source\($0): O\($0)" }).joinWithSeparator(", _ ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joinWithSeparator(", ") %>) throws -> E) -> Driver { @@ -42,7 +42,7 @@ extension Driver { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest<<%= (Array(1...i).map { "O\($0): DriverConvertibleType" }).joinWithSeparator(", ") %>> (<%= (Array(1...i).map { "source\($0): O\($0)" }).joinWithSeparator(", _ ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joinWithSeparator(", ") %>) throws -> E) -> Driver { @@ -55,4 +55,4 @@ extension Driver { } } -<% } %> \ No newline at end of file +<% } %> diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators.swift b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators.swift index cdcf53ef..1968da84 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver+Operators.swift @@ -20,11 +20,11 @@ extension DriverConvertibleType { - parameter selector: A transform function to apply to each source element. - 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 map(selector: E -> R) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func map(_ selector: (E) -> R) -> Driver { let source = self .asObservable() - .map(selector: selector) + .map(selector) return Driver(source) } } @@ -37,11 +37,11 @@ extension DriverConvertibleType { - parameter predicate: A function to test each source element for a condition. - 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) -> Bool) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func filter(_ predicate: (E) -> Bool) -> Driver { let source = self .asObservable() - .filter(predicate: predicate) + .filter(predicate) return Driver(source) } } @@ -58,7 +58,7 @@ extension DriverConvertibleType where E : DriverConvertibleType { - returns: The observable sequence 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public func switchLatest() -> Driver { let source: Observable = self .asObservable() @@ -80,12 +80,12 @@ extension DriverConvertibleType { - returns: An observable sequence whose elements are the result of invoking the transform function on each element of source producing an 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) -> Driver) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func flatMapLatest(_ selector: (E) -> Driver) -> Driver { let source: Observable = self .asObservable() - .flatMapLatest(selector: selector) + .flatMapLatest(selector) return Driver(source) } } @@ -100,12 +100,12 @@ extension DriverConvertibleType { - parameter selector: A transform function to apply to element that was observed while no observable is executing in parallel. - 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) -> Driver) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func flatMapFirst(_ selector: (E) -> Driver) -> Driver { let source: Observable = self .asObservable() - .flatMapFirst(selector: selector) + .flatMapFirst(selector) return Driver(source) } } @@ -119,8 +119,8 @@ extension DriverConvertibleType { - parameter eventHandler: Action to invoke for each event in the observable sequence. - returns: The source sequence with the side-effecting behavior applied. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func doOn(eventHandler: (Event) -> Void) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func doOn(_ eventHandler: (Event) -> Void) -> Driver { let source = self.asObservable() .doOn(eventHandler: eventHandler) @@ -136,8 +136,8 @@ extension DriverConvertibleType { - parameter onCompleted: Action to invoke upon graceful termination of the observable sequence. - returns: The source sequence with the side-effecting behavior applied. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func doOn(onNext: (E -> Void)? = nil, onError: (ErrorProtocol -> Void)? = nil, onCompleted: (() -> Void)? = nil) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func doOn(_ onNext: ((E) -> Void)? = nil, onError: ((ErrorProtocol) -> Void)? = nil, onCompleted: (() -> Void)? = nil) -> Driver { let source = self.asObservable() .doOn(onNext: onNext, onError: onError, onCompleted: onCompleted) @@ -151,10 +151,10 @@ extension DriverConvertibleType { - parameter onNext: Action to invoke for each element in the observable sequence. - returns: The source sequence with the side-effecting behavior applied. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func doOnNext(onNext: (E -> Void)) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func doOnNext(_ onNext: ((E) -> Void)) -> Driver { - return self.doOn(onNext: onNext) + return self.doOn(onNext) } /** @@ -163,8 +163,8 @@ extension DriverConvertibleType { - parameter onCompleted: Action to invoke upon graceful termination of the observable sequence. - returns: The source sequence with the side-effecting behavior applied. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func doOnCompleted(onCompleted: (() -> Void)) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func doOnCompleted(_ onCompleted: (() -> Void)) -> Driver { return self.doOn(onCompleted: onCompleted) } @@ -179,10 +179,10 @@ extension DriverConvertibleType { - parameter identifier: Identifier that is printed together with event description to standard output. - returns: An observable sequence whose events are printed to standard output. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func debug(identifier: String? = nil, file: String = #file, line: UInt = #line, function: String = #function) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func debug(_ identifier: String? = nil, file: String = #file, line: UInt = #line, function: String = #function) -> Driver { let source = self.asObservable() - .debug(identifier: identifier, file: file, line: line, function: function) + .debug(identifier, file: file, line: line, function: function) return Driver(source) } } @@ -195,7 +195,7 @@ extension DriverConvertibleType where E: Equatable { - returns: An observable sequence only containing the distinct contiguous elements, based on equality operator, from the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func distinctUntilChanged() -> Driver { let source = self.asObservable() @@ -213,8 +213,8 @@ extension DriverConvertibleType { - parameter keySelector: A function to compute the comparison key for each element. - 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) -> K) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func distinctUntilChanged(_ keySelector: (E) -> K) -> Driver { let source = self.asObservable() .distinctUntilChanged(keySelector: keySelector, comparer: { $0 == $1 }) return Driver(source) @@ -226,8 +226,8 @@ extension DriverConvertibleType { - parameter comparer: Equality comparer for computed key values. - 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: (lhs: E, rhs: E) -> Bool) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func distinctUntilChanged(_ comparer: (lhs: E, rhs: E) -> Bool) -> Driver { let source = self.asObservable() .distinctUntilChanged(keySelector: { $0 }, comparer: comparer) return Driver(source) @@ -240,8 +240,8 @@ extension DriverConvertibleType { - parameter comparer: Equality comparer for computed key values. - 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) -> K, comparer: (lhs: K, rhs: K) -> Bool) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func distinctUntilChanged(_ keySelector: (E) -> K, comparer: (lhs: K, rhs: K) -> Bool) -> Driver { let source = self.asObservable() .distinctUntilChanged(keySelector: keySelector, comparer: comparer) return Driver(source) @@ -258,10 +258,10 @@ extension DriverConvertibleType { - parameter selector: A transform function to apply to each element. - 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) -> Driver) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func flatMap(_ selector: (E) -> Driver) -> Driver { let source = self.asObservable() - .flatMap(selector: selector) + .flatMap(selector) return Driver(source) } @@ -276,7 +276,7 @@ extension DriverConvertibleType where E : DriverConvertibleType { - parameter maxConcurrent: Maximum number of inner observable sequences being subscribed to concurrently. - returns: The observable sequence that merges the elements of the observable sequences. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func merge() -> Driver { let source = self.asObservable() .map { $0.asDriver() } @@ -289,12 +289,12 @@ extension DriverConvertibleType where E : DriverConvertibleType { - returns: The observable sequence that merges the elements of the inner sequences. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func merge(maxConcurrent: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func merge(_ maxConcurrent: Int) -> Driver { let source = self.asObservable() .map { $0.asDriver() } - .merge(maxConcurrent: maxConcurrent) + .merge( maxConcurrent) return Driver(source) } } @@ -310,11 +310,11 @@ extension DriverConvertibleType { - parameter dueTime: Throttling duration for each element. - returns: The throttled sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func throttle(dueTime: RxTimeInterval) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func throttle(_ dueTime: RxTimeInterval) -> Driver { let source = self.asObservable() - .throttle(dueTime: dueTime, scheduler: driverObserveOnScheduler) + .throttle(dueTime, scheduler: driverObserveOnScheduler) return Driver(source) } @@ -327,11 +327,11 @@ extension DriverConvertibleType { - parameter dueTime: Throttling duration for each element. - returns: The throttled sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func debounce(dueTime: RxTimeInterval) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func debounce(_ dueTime: RxTimeInterval) -> Driver { let source = self.asObservable() - .debounce(dueTime: dueTime, scheduler: driverObserveOnScheduler) + .debounce(dueTime, scheduler: driverObserveOnScheduler) return Driver(source) } @@ -348,8 +348,8 @@ extension DriverConvertibleType { - parameter accumulator: An accumulator function to be invoked on each element. - 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) -> A) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func scan(_ seed: A, accumulator: (A, E) -> A) -> Driver { let source = self.asObservable() .scan(seed: seed, accumulator: accumulator) @@ -365,7 +365,7 @@ extension Sequence where Iterator.Element : DriverConvertibleType { - returns: An observable sequence that contains the elements of each given sequence, in sequential order. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func concat() -> Driver { let source = self.lazy.map { $0.asDriver().asObservable() }.concat() @@ -380,7 +380,7 @@ extension Collection where Iterator.Element : DriverConvertibleType { - returns: An observable sequence that contains the elements of each given sequence, in sequential order. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func concat() -> Driver { let source = self.map { $0.asDriver().asObservable() }.concat() @@ -397,9 +397,9 @@ extension Collection where Iterator.Element : DriverConvertibleType { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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) -> Driver { - let source = self.map { $0.asDriver().asObservable() }.zip(resultSelector: resultSelector) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func zip(_ resultSelector: ([Generator.Element.E]) throws -> R) -> Driver { + let source = self.map { $0.asDriver().asObservable() }.zip(resultSelector) return Driver(source) } } @@ -413,9 +413,9 @@ extension Collection where Iterator.Element : DriverConvertibleType { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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) -> Driver { - let source = self.map { $0.asDriver().asObservable() }.combineLatest(resultSelector: resultSelector) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func combineLatest(_ resultSelector: ([Generator.Element.E]) throws -> R) -> Driver { + let source = self.map { $0.asDriver().asObservable() }.combineLatest(resultSelector) return Driver(source) } } @@ -430,9 +430,9 @@ extension DriverConvertibleType { - 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) -> ResultType) -> Driver { + public func withLatestFrom(_ second: SecondO, resultSelector: (E, SecondO.E) -> ResultType) -> Driver { let source = self.asObservable() - .withLatestFrom(second: second.asDriver(), resultSelector: resultSelector) + .withLatestFrom(second.asDriver(), resultSelector: resultSelector) return Driver(source) } @@ -443,9 +443,9 @@ extension DriverConvertibleType { - parameter second: Second observable source. - 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) -> Driver { + public func withLatestFrom(_ second: SecondO) -> Driver { let source = self.asObservable() - .withLatestFrom(second: second.asDriver()) + .withLatestFrom(second.asDriver()) return Driver(source) } @@ -462,11 +462,11 @@ extension DriverConvertibleType { - parameter count: The number of elements to skip before returning the remaining elements. - returns: An observable sequence that contains the elements that occur after the specified index in the input sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func skip(count: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func skip(_ count: Int) -> Driver { let source = self.asObservable() - .skip(count: count) + .skip(count) return Driver(source) } } @@ -482,12 +482,12 @@ extension DriverConvertibleType { - parameter element: Element to prepend to the specified sequence. - returns: The source sequence prepended with the specified values. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func startWith(element: E) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func startWith(_ element: E) -> Driver { let source = self.asObservable() .startWith(elements: element) return Driver(source) } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver+Subscription.swift b/RxCocoa/Common/CocoaUnits/Driver/Driver+Subscription.swift index de25ea4e..87e12dc7 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver+Subscription.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver+Subscription.swift @@ -21,9 +21,9 @@ extension DriverConvertibleType { - returns: Disposable object that can be used to unsubscribe the observer from the subject. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func drive(observer: O) -> Disposable { + public func drive(_ observer: O) -> Disposable { MainScheduler.ensureExecutingOnScheduler() - return self.asObservable().subscribe(observer: observer) + return self.asObservable().subscribe(observer) } /** @@ -33,8 +33,8 @@ extension DriverConvertibleType { - returns: Disposable object that can be used to unsubscribe the observer from the variable. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func drive(variable: Variable) -> Disposable { - return drive(onNext: { e in + public func drive(_ variable: Variable) -> Disposable { + return drive({ e in variable.value = e }) } @@ -46,7 +46,7 @@ extension DriverConvertibleType { - returns: Object representing subscription. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func drive(transformation: Observable -> R) -> R { + public func drive(_ transformation: (Observable) -> R) -> R { MainScheduler.ensureExecutingOnScheduler() return transformation(self.asObservable()) } @@ -64,7 +64,7 @@ extension DriverConvertibleType { - returns: Object representing subscription. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func drive(with: Observable -> R1 -> R2, curriedArgument: R1) -> R2 { + public func drive(_ with: (Observable) -> (R1) -> R2, curriedArgument: R1) -> R2 { MainScheduler.ensureExecutingOnScheduler() return with(self.asObservable())(curriedArgument) } @@ -82,9 +82,9 @@ extension DriverConvertibleType { - returns: Subscription object used to unsubscribe from the observable sequence. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func drive(onNext: ((E) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil) -> Disposable { + public func drive(_ onNext: ((E) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil) -> Disposable { MainScheduler.ensureExecutingOnScheduler() - return self.asObservable().subscribe(onNext: onNext, onCompleted: onCompleted, onDisposed: onDisposed) + return self.asObservable().subscribe(onNext, onCompleted: onCompleted, onDisposed: onDisposed) } /** @@ -94,9 +94,9 @@ extension DriverConvertibleType { - returns: Subscription object used to unsubscribe from the observable sequence. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func driveNext(onNext: E -> Void) -> Disposable { + public func driveNext(_ onNext: (E) -> Void) -> Disposable { MainScheduler.ensureExecutingOnScheduler() - return self.asObservable().subscribeNext(onNext: onNext) + return self.asObservable().subscribeNext(onNext) } } diff --git a/RxCocoa/Common/CocoaUnits/Driver/Driver.swift b/RxCocoa/Common/CocoaUnits/Driver/Driver.swift index 93c8be1d..06f447b7 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Driver.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/Driver.swift @@ -19,12 +19,12 @@ public protocol DriverConvertibleType : ObservableConvertibleType { /** Converts self to `Driver`. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") func asDriver() -> Driver } extension DriverConvertibleType { - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asObservable() -> Observable { return asDriver().asObservable() } @@ -75,7 +75,7 @@ public struct Driver : DriverConvertibleType { /** - returns: Built observable sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asObservable() -> Observable { return _source } @@ -83,7 +83,7 @@ public struct Driver : DriverConvertibleType { /** - returns: `self` */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asDriver() -> Driver { return self } @@ -97,9 +97,9 @@ extension Driver { - returns: An observable sequence with no elements. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func empty() -> Driver { - return Driver(raw: Observable.empty().subscribeOn(scheduler: driverSubscribeOnScheduler)) + return Driver(Observable.empty().subscribeOn(driverSubscribeOnScheduler)) } /** @@ -107,9 +107,9 @@ extension Driver { - returns: An observable sequence whose observers will never get called. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func never() -> Driver { - return Driver(raw: Observable.never().subscribeOn(scheduler: driverSubscribeOnScheduler)) + return Driver(Observable.never().subscribeOn(driverSubscribeOnScheduler)) } /** @@ -118,9 +118,9 @@ extension Driver { - parameter element: Single element in the resulting observable sequence. - returns: An observable sequence containing the single specified element. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func just(element: E) -> Driver { - return Driver(raw: Observable.just(element).subscribeOn(scheduler: driverSubscribeOnScheduler)) + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func just(_ element: E) -> Driver { + return Driver(Observable.just(element).subscribeOn(driverSubscribeOnScheduler)) } /** @@ -129,8 +129,8 @@ extension Driver { - parameter observableFactory: Observable factory function to invoke for each observer that subscribes to the resulting sequence. - returns: An observable sequence whose observers trigger an invocation of the given observable factory function. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func deferred(observableFactory: () -> Driver) + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func deferred(_ observableFactory: () -> Driver) -> Driver { return Driver(Observable.deferred { observableFactory().asObservable() }) } @@ -143,9 +143,9 @@ extension Driver { - parameter elements: Elements to generate. - returns: The observable sequence whose elements are pulled from the given arguments. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func of(elements: E ...) -> Driver { - let source = elements.toObservable(scheduler: driverSubscribeOnScheduler) + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func of(_ elements: E ...) -> Driver { + let source = elements.toObservable(driverSubscribeOnScheduler) return Driver(raw: source) } } @@ -159,10 +159,10 @@ extension Driver where Element : SignedInteger { - parameter period: Period for producing the values in the resulting sequence. - returns: An observable sequence that produces a value after each period. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func interval(period: RxTimeInterval) + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func interval(_ period: RxTimeInterval) -> Driver { - return Driver(Observable.interval(period: period, scheduler: driverObserveOnScheduler)) + return Driver(Observable.interval(period, scheduler: driverObserveOnScheduler)) } } @@ -178,10 +178,10 @@ extension Driver where Element: SignedInteger { - parameter period: Period to produce subsequent values. - returns: An observable sequence that produces a value after due time has elapsed and then each period. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func timer(dueTime: RxTimeInterval, period: RxTimeInterval) + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func timer(_ dueTime: RxTimeInterval, period: RxTimeInterval) -> Driver { - return Driver(Observable.timer(dueTime: dueTime, period: period, scheduler: driverObserveOnScheduler)) + return Driver(Observable.timer(dueTime, period: period, scheduler: driverObserveOnScheduler)) } } @@ -191,7 +191,7 @@ extension Driver where Element: SignedInteger { **This shouldn't be used in normal release builds.** */ -public func driveOnScheduler(scheduler: SchedulerType, action: () -> ()) { +public func driveOnScheduler(_ scheduler: SchedulerType, action: () -> ()) { let originalObserveOnScheduler = driverObserveOnScheduler let originalSubscribeOnScheduler = driverSubscribeOnScheduler @@ -201,17 +201,17 @@ public func driveOnScheduler(scheduler: SchedulerType, action: () -> ()) { action() // If you remove this line , compiler buggy optimizations will change behavior of this code - _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(scheduler: driverObserveOnScheduler) - _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(scheduler: driverSubscribeOnScheduler) + _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(driverObserveOnScheduler) + _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(driverSubscribeOnScheduler) // Scary, I know driverObserveOnScheduler = originalObserveOnScheduler driverSubscribeOnScheduler = originalSubscribeOnScheduler } -func _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(scheduler: SchedulerType) { +func _forceCompilerToStopDoingInsaneOptimizationsThatBreakCode(_ scheduler: SchedulerType) { let a: Int32 = 1 - let b = 314 + Int32(rand() & 1) + let b = 314 + Int32(arc4random() & 1) if a == b { print(scheduler) } diff --git a/RxCocoa/Common/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift b/RxCocoa/Common/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift index 3b9adc4a..edab5cb3 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/ObservableConvertibleType+Driver.swift @@ -18,12 +18,12 @@ extension ObservableConvertibleType { - parameter onErrorJustReturn: Element to return in case of error and after that complete the sequence. - returns: Driving observable sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func asDriver(onErrorJustReturn: E) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func asDriver(_ onErrorJustReturn: E) -> Driver { let source = self .asObservable() - .observeOn(scheduler: driverObserveOnScheduler) - .catchErrorJustReturn(element: onErrorJustReturn) + .observeOn(driverObserveOnScheduler) + .catchErrorJustReturn(onErrorJustReturn) return Driver(source) } @@ -33,11 +33,11 @@ extension ObservableConvertibleType { - parameter onErrorDriveWith: Driver that continues to drive the sequence in case of error. - returns: Driving observable sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func asDriver(onErrorDriveWith: Driver) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func asDriver(_ onErrorDriveWith: Driver) -> Driver { let source = self .asObservable() - .observeOn(scheduler: driverObserveOnScheduler) + .observeOn(driverObserveOnScheduler) .catchError { _ in onErrorDriveWith.asObservable() } @@ -50,14 +50,14 @@ extension ObservableConvertibleType { - parameter onErrorRecover: Calculates driver that continues to drive the sequence in case of error. - returns: Driving observable sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func asDriver(onErrorRecover: (error: ErrorProtocol) -> Driver) -> Driver { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func asDriver(_ onErrorRecover: (error: ErrorProtocol) -> Driver) -> Driver { let source = self .asObservable() - .observeOn(scheduler: driverObserveOnScheduler) + .observeOn(driverObserveOnScheduler) .catchError { error in onErrorRecover(error: error).asObservable() } return Driver(source) } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/CocoaUnits/Driver/Variable+Driver.swift b/RxCocoa/Common/CocoaUnits/Driver/Variable+Driver.swift index 56591a04..311ab2fe 100644 --- a/RxCocoa/Common/CocoaUnits/Driver/Variable+Driver.swift +++ b/RxCocoa/Common/CocoaUnits/Driver/Variable+Driver.swift @@ -17,10 +17,10 @@ extension Variable { - 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() -> Driver { let source = self.asObservable() - .observeOn(scheduler: driverObserveOnScheduler) + .observeOn(driverObserveOnScheduler) return Driver(source) } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/CocoaUnits/UIBindingObserver.swift b/RxCocoa/Common/CocoaUnits/UIBindingObserver.swift index 8595a691..4d8909e7 100644 --- a/RxCocoa/Common/CocoaUnits/UIBindingObserver.swift +++ b/RxCocoa/Common/CocoaUnits/UIBindingObserver.swift @@ -36,17 +36,17 @@ public class UIBindingObserver) { + public func on(_ event: Event) { MainScheduler.ensureExecutingOnScheduler() switch event { - case .Next(let element): + case .next(let element): if let view = self.UIElement { binding(view, element) } - case .Error(let error): + case .error(let error): bindingErrorToInterface(error) - case .Completed: + case .completed: break } } diff --git a/RxCocoa/Common/DelegateProxy.swift b/RxCocoa/Common/DelegateProxy.swift index bb4170fb..b1b22a9a 100644 --- a/RxCocoa/Common/DelegateProxy.swift +++ b/RxCocoa/Common/DelegateProxy.swift @@ -85,12 +85,12 @@ public class DelegateProxy : _RXDelegateProxy { - parameter selector: Selector used to filter observed invocations of delegate methods. - returns: Observable sequence of arguments passed to `selector` method. */ - public func observe(selector: Selector) -> Observable<[AnyObject]> { - if hasWiredImplementationForSelector(selector) { + public func observe(_ selector: Selector) -> Observable<[AnyObject]> { + if hasWiredImplementation(for: selector) { print("Delegate proxy is already implementing `\(selector)`, a more performant way of registering might exist.") } - if !self.respondsToSelector(selector) { + if !self.responds(to: selector) { rxFatalError("This class doesn't respond to selector \(selector)") } @@ -109,7 +109,7 @@ public class DelegateProxy : _RXDelegateProxy { // proxy public override func interceptedSelector(_ selector: Selector, withArguments arguments: [AnyObject]!) { - subjectsForSelector[selector]?.on(.Next(arguments)) + subjectsForSelector[selector]?.on(.next(arguments)) } /** @@ -126,7 +126,7 @@ public class DelegateProxy : _RXDelegateProxy { - returns: Initialized instance of `self`. */ - public class func createProxyForObject(object: AnyObject) -> AnyObject { + public class func createProxyForObject(_ object: AnyObject) -> AnyObject { return self.init(parentObject: object) } @@ -136,7 +136,7 @@ public class DelegateProxy : _RXDelegateProxy { - parameter object: Object that can have assigned delegate proxy. - returns: Assigned delegate proxy or `nil` if no delegate proxy is assigned. */ - public class func assignedProxyFor(object: AnyObject) -> AnyObject? { + public class func assignedProxyFor(_ object: AnyObject) -> AnyObject? { let maybeDelegate: AnyObject? = objc_getAssociatedObject(object, self.delegateAssociatedObjectTag()) return castOptionalOrFatalError(maybeDelegate) } @@ -147,8 +147,8 @@ public class DelegateProxy : _RXDelegateProxy { - parameter object: Object that can have assigned delegate proxy. - parameter proxy: Delegate proxy object to assign to `object`. */ - public class func assignProxy(proxy: AnyObject, toObject object: AnyObject) { - precondition(proxy.isKindOfClass(self.classForCoder())) + public class func assignProxy(_ proxy: AnyObject, toObject object: AnyObject) { + precondition(proxy.isKind(of: self.classForCoder())) objc_setAssociatedObject(object, self.delegateAssociatedObjectTag(), proxy, .OBJC_ASSOCIATION_RETAIN) } @@ -160,8 +160,8 @@ public class DelegateProxy : _RXDelegateProxy { - parameter forwardToDelegate: Reference of delegate that receives all messages through `self`. - parameter retainDelegate: Should `self` retain `forwardToDelegate`. */ - public func setForwardToDelegate(forwardToDelegate delegate: AnyObject?, retainDelegate: Bool) { - self._setForwardToDelegate(delegate, retainDelegate: retainDelegate) + public func setForwardToDelegate(_ delegate: AnyObject?, retainDelegate: Bool) { + self._setForward(toDelegate: delegate, retainDelegate: retainDelegate) } /** @@ -176,7 +176,7 @@ public class DelegateProxy : _RXDelegateProxy { deinit { for v in subjectsForSelector.values { - v.on(.Completed) + v.on(.completed) } #if TRACE_RESOURCES OSAtomicDecrement32(&resourceCount) @@ -185,7 +185,7 @@ public class DelegateProxy : _RXDelegateProxy { // MARK: Pointer - class func _pointer(p: UnsafePointer) -> UnsafePointer { + class func _pointer(_ p: UnsafePointer) -> UnsafePointer { return p } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/DelegateProxyType.swift b/RxCocoa/Common/DelegateProxyType.swift index 4292e359..3a976e04 100644 --- a/RxCocoa/Common/DelegateProxyType.swift +++ b/RxCocoa/Common/DelegateProxyType.swift @@ -87,7 +87,7 @@ public protocol DelegateProxyType : AnyObject { /** Creates new proxy for target object. */ - static func createProxyForObject(object: AnyObject) -> AnyObject + static func createProxyForObject(_ object: AnyObject) -> AnyObject /** Returns assigned proxy for object. @@ -95,7 +95,7 @@ public protocol DelegateProxyType : AnyObject { - parameter object: Object that can have assigned delegate proxy. - returns: Assigned delegate proxy or `nil` if no delegate proxy is assigned. */ - static func assignedProxyFor(object: AnyObject) -> AnyObject? + static func assignedProxyFor(_ object: AnyObject) -> AnyObject? /** Assigns proxy to object. @@ -103,7 +103,7 @@ public protocol DelegateProxyType : AnyObject { - parameter object: Object that can have assigned delegate proxy. - parameter proxy: Delegate proxy object to assign to `object`. */ - static func assignProxy(proxy: AnyObject, toObject object: AnyObject) + static func assignProxy(_ proxy: AnyObject, toObject object: AnyObject) /** Returns designated delegate property for object. @@ -115,7 +115,7 @@ public protocol DelegateProxyType : AnyObject { - parameter object: Object that has delegate property. - returns: Value of delegate property. */ - static func currentDelegateFor(object: AnyObject) -> AnyObject? + static func currentDelegateFor(_ object: AnyObject) -> AnyObject? /** Sets designated delegate property for object. @@ -127,7 +127,7 @@ public protocol DelegateProxyType : AnyObject { - parameter toObject: Object that has delegate property. - parameter delegate: Delegate value. */ - static func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) + static func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) /** Returns reference of normal delegate that receives all forwarded messages @@ -144,11 +144,11 @@ public protocol DelegateProxyType : AnyObject { - parameter forwardToDelegate: Reference of delegate that receives all messages through `self`. - parameter retainDelegate: Should `self` retain `forwardToDelegate`. */ - func setForwardToDelegate(forwardToDelegate: AnyObject?, retainDelegate: Bool) + func setForwardToDelegate(_ forwardToDelegate: AnyObject?, retainDelegate: Bool) } -@available(*, deprecated=2.5, renamed="DelegateProxyType.proxyForObject", message="You can just use normal static protocol extension. E.g. `RxScrollViewDelegateProxy.proxyForObject`") -public func proxyForObject(type: P.Type, _ object: AnyObject) -> P { +@available(*, deprecated:2.5, renamed:"DelegateProxyType.proxyForObject", message:"You can just use normal static protocol extension. E.g. `RxScrollViewDelegateProxy.proxyForObject`") +public func proxyForObject(_ type: P.Type, _ object: AnyObject) -> P { return P.proxyForObject(object) } @@ -172,7 +172,7 @@ extension DelegateProxyType { } } */ - public static func proxyForObject(object: AnyObject) -> Self { + public static func proxyForObject(_ object: AnyObject) -> Self { MainScheduler.ensureExecutingOnScheduler() let maybeProxy = Self.assignedProxyFor(object) as? Self @@ -208,7 +208,7 @@ extension DelegateProxyType { - parameter onProxyForObject: Object that has `delegate` property. - returns: Disposable object that can be used to clear forward delegate. */ - public static func installForwardDelegate(forwardDelegate: AnyObject, retainDelegate: Bool, onProxyForObject object: AnyObject) -> Disposable { + public static func installForwardDelegate(_ forwardDelegate: AnyObject, retainDelegate: Bool, onProxyForObject object: AnyObject) -> Disposable { weak var weakForwardDelegate: AnyObject? = forwardDelegate let proxy = Self.proxyForObject(object) @@ -241,7 +241,7 @@ extension DelegateProxyType { } extension ObservableType { - func subscribeProxyDataSourceForObject(object: AnyObject, dataSource: AnyObject, retainDataSource: Bool, binding: (P, Event) -> Void) + func subscribeProxyDataSourceForObject(_ object: AnyObject, dataSource: AnyObject, retainDataSource: Bool, binding: (P, Event) -> Void) -> Disposable { let proxy = P.proxyForObject(object) let disposable = P.installForwardDelegate(dataSource, retainDelegate: retainDataSource, onProxyForObject: object) @@ -259,10 +259,10 @@ extension ObservableType { binding(proxy, event) switch event { - case .Error(let error): + case .error(let error): bindingErrorToInterface(error) disposable.dispose() - case .Completed: + case .completed: disposable.dispose() default: break diff --git a/RxCocoa/Common/KVORepresentable+Swift.swift b/RxCocoa/Common/KVORepresentable+Swift.swift index e539cc12..e77ba506 100644 --- a/RxCocoa/Common/KVORepresentable+Swift.swift +++ b/RxCocoa/Common/KVORepresentable+Swift.swift @@ -15,7 +15,7 @@ extension Int : KVORepresentable { Constructs `Self` using KVO value. */ public init?(KVOValue: KVOType) { - self.init(KVOValue.intValue) + self.init(KVOValue.int32Value) } } @@ -26,7 +26,7 @@ extension Int32 : KVORepresentable { Constructs `Self` using KVO value. */ public init?(KVOValue: KVOType) { - self.init(KVOValue.intValue) + self.init(KVOValue.int32Value) } } @@ -90,4 +90,4 @@ extension RawRepresentable where RawValue: KVORepresentable { self.init(rawValue: rawValue) } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/Logging.swift b/RxCocoa/Common/Logging.swift index 0db671a0..c937310f 100644 --- a/RxCocoa/Common/Logging.swift +++ b/RxCocoa/Common/Logging.swift @@ -12,7 +12,7 @@ import Foundation Simple logging settings for RxCocoa library. */ public struct Logging { - public typealias LogURLRequest = (NSURLRequest) -> Bool + public typealias LogURLRequest = (URLRequest) -> Bool /** Log URL requests to standard output in curl format. @@ -24,4 +24,4 @@ public struct Logging { return false #endif } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/NSLayoutConstraint+Rx.swift b/RxCocoa/Common/NSLayoutConstraint+Rx.swift index 36e97598..d7e01e42 100644 --- a/RxCocoa/Common/NSLayoutConstraint+Rx.swift +++ b/RxCocoa/Common/NSLayoutConstraint+Rx.swift @@ -35,7 +35,7 @@ extension NSLayoutConstraint { @available(iOS 8, OSX 10.10, *) public var rx_active: AnyObserver { return UIBindingObserver(UIElement: self) { constraint, value in - constraint.active = value + constraint.isActive = value }.asObserver() } } diff --git a/RxCocoa/Common/Observable+Bind.swift b/RxCocoa/Common/Observable+Bind.swift index f6dcd3d6..e8d4d797 100644 --- a/RxCocoa/Common/Observable+Bind.swift +++ b/RxCocoa/Common/Observable+Bind.swift @@ -23,8 +23,8 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observer. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func bindTo(observer: O) -> Disposable { - return self.subscribe(observer: observer) + public func bindTo(_ observer: O) -> Disposable { + return self.subscribe(observer) } /** @@ -37,19 +37,19 @@ extension ObservableType { - returns: Disposable object that can be used to unsubscribe the observer. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func bindTo(variable: Variable) -> Disposable { + public func bindTo(_ variable: Variable) -> Disposable { return subscribe { e in switch e { - case let .Next(element): + case let .next(element): variable.value = element - case let .Error(error): + case let .error(error): let error = "Binding error to variable: \(error)" #if DEBUG rxFatalError(error) #else print(error) #endif - case .Completed: + case .completed: break } } @@ -62,7 +62,7 @@ extension ObservableType { - returns: Object representing subscription. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func bindTo(binder: Self -> R) -> R { + public func bindTo(_ binder: (Self) -> R) -> R { return binder(self) } @@ -79,7 +79,7 @@ extension ObservableType { - returns: Object representing subscription. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func bindTo(binder: Self -> R1 -> R2, curriedArgument: R1) -> R2 { + public func bindTo(_ binder: (Self) -> (R1) -> R2, curriedArgument: R1) -> R2 { return binder(self)(curriedArgument) } @@ -94,8 +94,8 @@ extension ObservableType { - returns: Subscription object used to unsubscribe from the observable sequence. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func bindNext(onNext: E -> Void) -> Disposable { - return subscribe(onNext: onNext, onError: { error in + public func bindNext(_ onNext: (E) -> Void) -> Disposable { + return subscribe(onNext, onError: { error in let error = "Binding error: \(error)" #if DEBUG rxFatalError(error) diff --git a/RxCocoa/Common/Observables/Implementations/ControlTarget.swift b/RxCocoa/Common/Observables/Implementations/ControlTarget.swift index ade22a28..4a410dfd 100644 --- a/RxCocoa/Common/Observables/Implementations/ControlTarget.swift +++ b/RxCocoa/Common/Observables/Implementations/ControlTarget.swift @@ -45,9 +45,9 @@ class ControlTarget: RxTarget { super.init() - control.addTarget(self, action: selector, forControlEvents: controlEvents) + control.addTarget(self, action: selector, for: controlEvents) - let method = self.methodForSelector(selector) + let method = self.method(for: selector) if method == nil { rxFatalError("Can't find method") } @@ -71,7 +71,7 @@ class ControlTarget: RxTarget { } #endif - func eventHandler(sender: Control!) { + func eventHandler(_ sender: Control!) { if let callback = self.callback, control = self.control { callback(control) } @@ -80,7 +80,7 @@ class ControlTarget: RxTarget { override func dispose() { super.dispose() #if os(iOS) || os(tvOS) - self.control?.removeTarget(self, action: self.selector, forControlEvents: self.controlEvents) + self.control?.removeTarget(self, action: self.selector, for: self.controlEvents) #elseif os(OSX) self.control?.target = nil self.control?.action = nil diff --git a/RxCocoa/Common/Observables/Implementations/DeallocObservable.swift b/RxCocoa/Common/Observables/Implementations/DeallocObservable.swift index a8896be1..e2586d12 100644 --- a/RxCocoa/Common/Observables/Implementations/DeallocObservable.swift +++ b/RxCocoa/Common/Observables/Implementations/DeallocObservable.swift @@ -12,13 +12,13 @@ import RxSwift #endif class DeallocObservable { - let _subject = ReplaySubject.create(bufferSize: 1) + let _subject = ReplaySubject.create(1) init() { } deinit { - _subject.on(event: .Next(())) - _subject.on(event: .Completed) + _subject.on(.next(())) + _subject.on(.completed) } } diff --git a/RxCocoa/Common/Observables/Implementations/KVOObservable.swift b/RxCocoa/Common/Observables/Implementations/KVOObservable.swift index fa21b2b8..8c329e4e 100644 --- a/RxCocoa/Common/Observables/Implementations/KVOObservable.swift +++ b/RxCocoa/Common/Observables/Implementations/KVOObservable.swift @@ -33,13 +33,13 @@ class KVOObservable } } - func subscribe(observer: O) -> Disposable { + func subscribe(_ observer: O) -> Disposable { let observer = KVOObserver(parent: self) { (value) in if value as? NSNull != nil { - observer.on(event: .Next(nil)) + observer.on(.next(nil)) return } - observer.on(event: .Next(value as? Element)) + observer.on(.next(value as? Element)) } return AnonymousDisposable(observer.dispose) @@ -49,18 +49,18 @@ class KVOObservable #if !DISABLE_SWIZZLING -func observeWeaklyKeyPathFor(target: NSObject, keyPath: String, options: NSKeyValueObservingOptions) -> Observable { +func observeWeaklyKeyPathFor(_ target: NSObject, keyPath: String, options: NSKeyValueObservingOptions) -> Observable { let components = keyPath.components(separatedBy: ".").filter { $0 != "self" } - let observable = observeWeaklyKeyPathFor(target: target, keyPathSections: components, options: options) - .finishWithNilWhenDealloc(target: target) + let observable = observeWeaklyKeyPathFor(target, keyPathSections: components, options: options) + .finishWithNilWhenDealloc(target) - if !options.intersect(.initial).isEmpty { + if !options.intersection(.initial).isEmpty { return observable } else { return observable - .skip(count: 1) + .skip(1) } } @@ -68,12 +68,12 @@ func observeWeaklyKeyPathFor(target: NSObject, keyPath: String, options: NSKeyVa // Identifiers can't contain `,`, so the only place where `,` can appear // is as a delimiter. // This means there is `W` as element in an array of property attributes. -func isWeakProperty(properyRuntimeInfo: String) -> Bool { +func isWeakProperty(_ properyRuntimeInfo: String) -> Bool { return properyRuntimeInfo.range(of: ",W,") != nil } extension ObservableType where E == AnyObject? { - func finishWithNilWhenDealloc(target: NSObject) + func finishWithNilWhenDealloc(_ target: NSObject) -> Observable { let deallocating = target.rx_deallocating @@ -87,7 +87,7 @@ extension ObservableType where E == AnyObject? { } func observeWeaklyKeyPathFor( - target: NSObject, + _ target: NSObject, keyPathSections: [String], options: NSKeyValueObservingOptions ) -> Observable { @@ -99,12 +99,12 @@ func observeWeaklyKeyPathFor( let property = class_getProperty(object_getClass(target), propertyName) if property == nil { - return Observable.error(RxCocoaError.InvalidPropertyName(object: target, propertyName: propertyName)) + return Observable.error(RxCocoaError.invalidPropertyName(object: target, propertyName: propertyName)) } let propertyAttributes = property_getAttributes(property) // should dealloc hook be in place if week property, or just create strong reference because it doesn't matter - let isWeak = isWeakProperty(properyRuntimeInfo: String(propertyAttributes) ?? "") + let isWeak = isWeakProperty(String(propertyAttributes) ?? "") let propertyObservable = KVOObservable(object: target, keyPath: propertyName, options: options.union(.initial), retainTarget: false) as KVOObservable // KVO recursion for value changes @@ -118,7 +118,7 @@ func observeWeaklyKeyPathFor( let strongTarget: AnyObject? = weakTarget if nextObject == nil { - return Observable.error(RxCocoaError.InvalidObjectOnKeyPath(object: nextTarget!, sourceObject: strongTarget ?? NSNull(), propertyName: propertyName)) + return Observable.error(RxCocoaError.invalidObjectOnKeyPath(object: nextTarget!, sourceObject: strongTarget ?? NSNull(), propertyName: propertyName)) } // if target is alive, then send change @@ -129,11 +129,11 @@ func observeWeaklyKeyPathFor( let nextElementsObservable = keyPathSections.count == 1 ? Observable.just(nextTarget) - : observeWeaklyKeyPathFor(target: nextObject!, keyPathSections: remainingPaths, options: options) + : observeWeaklyKeyPathFor(nextObject!, keyPathSections: remainingPaths, options: options) if isWeak { return nextElementsObservable - .finishWithNilWhenDealloc(target: nextObject!) + .finishWithNilWhenDealloc(nextObject!) } else { return nextElementsObservable diff --git a/RxCocoa/Common/Observables/Implementations/MessageSentObserver.swift b/RxCocoa/Common/Observables/Implementations/MessageSentObserver.swift index 9e56450f..7e03014b 100644 --- a/RxCocoa/Common/Observables/Implementations/MessageSentObserver.swift +++ b/RxCocoa/Common/Observables/Implementations/MessageSentObserver.swift @@ -18,7 +18,7 @@ import Foundation , RXMessageSentObserver { typealias E = () - private let _subject = ReplaySubject<()>.create(bufferSize: 1) + private let _subject = ReplaySubject<()>.create(1) @objc var targetImplementation: IMP = RX_default_target_implementation() @@ -29,8 +29,8 @@ import Foundation init() { } - @objc func messageSentWithParameters(_ parameters: [AnyObject]) -> Void { - _subject.on(event: .Next()) + @objc func messageSent(withParameters parameters: [AnyObject]) -> Void { + _subject.on(.next()) } func asObservable() -> Observable<()> { @@ -38,7 +38,7 @@ import Foundation } deinit { - _subject.on(event: .Completed) + _subject.on(.completed) } } @@ -58,8 +58,8 @@ import Foundation init() { } - @objc func messageSentWithParameters(_ parameters: [AnyObject]) -> Void { - _subject.on(event: .Next(parameters)) + @objc func messageSent(withParameters parameters: [AnyObject]) -> Void { + _subject.on(.next(parameters)) } func asObservable() -> Observable<[AnyObject]> { @@ -67,7 +67,7 @@ import Foundation } deinit { - _subject.on(event: .Completed) + _subject.on(.completed) } } diff --git a/RxCocoa/Common/Observables/NSNotificationCenter+Rx.swift b/RxCocoa/Common/Observables/NSNotificationCenter+Rx.swift index 46c8989c..523b6b70 100644 --- a/RxCocoa/Common/Observables/NSNotificationCenter+Rx.swift +++ b/RxCocoa/Common/Observables/NSNotificationCenter+Rx.swift @@ -11,7 +11,7 @@ import Foundation import RxSwift #endif -extension NSNotificationCenter { +extension NotificationCenter { /** Transforms notifications posted to notification center to observable sequence of notifications. @@ -19,11 +19,11 @@ extension NSNotificationCenter { - parameter object: Optional object used to filter notifications. - returns: Observable sequence of posted notifications. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_notification(name: String?, object: AnyObject? = nil) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_notification(_ name: Notification.Name, object: AnyObject? = nil) -> Observable { return Observable.create { [weak object] observer in - let nsObserver = self.addObserverForName(name, object: object, queue: nil) { notification in - observer.on(.Next(notification)) + let nsObserver = self.addObserver(forName: name, object: object, queue: nil) { notification in + observer.on(.next(notification)) } return AnonymousDisposable { @@ -31,4 +31,4 @@ extension NSNotificationCenter { } } } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/Observables/NSObject+Rx+KVORepresentable.swift b/RxCocoa/Common/Observables/NSObject+Rx+KVORepresentable.swift index 7997e388..2c279109 100644 --- a/RxCocoa/Common/Observables/NSObject+Rx+KVORepresentable.swift +++ b/RxCocoa/Common/Observables/NSObject+Rx+KVORepresentable.swift @@ -21,8 +21,8 @@ extension NSObject { For more information take a look at `rx_observe` method. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_observe(type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial], retainSelf: Bool = true) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_observe(_ type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.new, .initial], retainSelf: Bool = true) -> Observable { return rx_observe(E.KVOType.self, keyPath, options: options, retainSelf: retainSelf) .map(E.init) } @@ -36,8 +36,8 @@ extension NSObject { For more information take a look at `rx_observeWeakly` method. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_observeWeakly(type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.New, .Initial]) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_observeWeakly(_ type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.new, .initial]) -> Observable { return rx_observeWeakly(E.KVOType.self, keyPath, options: options) .map(E.init) } diff --git a/RxCocoa/Common/Observables/NSObject+Rx+RawRepresentable.swift b/RxCocoa/Common/Observables/NSObject+Rx+RawRepresentable.swift index dcd98b0b..e53f8907 100644 --- a/RxCocoa/Common/Observables/NSObject+Rx+RawRepresentable.swift +++ b/RxCocoa/Common/Observables/NSObject+Rx+RawRepresentable.swift @@ -21,10 +21,10 @@ extension NSObject { For more information take a look at `rx_observe` method. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_observe(type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.new, .initial], retainSelf: Bool = true) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_observe(_ type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.new, .initial], retainSelf: Bool = true) -> Observable { return rx_observe(E.RawValue.KVOType.self, keyPath, options: options, retainSelf: retainSelf) - .map(selector: E.init) + .map(E.init) } } @@ -42,10 +42,10 @@ extension NSObject { For more information take a look at `rx_observeWeakly` method. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_observeWeakly(type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.new, .initial]) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_observeWeakly(_ type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.new, .initial]) -> Observable { return rx_observeWeakly(E.RawValue.KVOType.self, keyPath, options: options) - .map(selector: E.init) + .map(E.init) } } #endif diff --git a/RxCocoa/Common/Observables/NSObject+Rx.swift b/RxCocoa/Common/Observables/NSObject+Rx.swift index b9dbf10a..c3c92836 100644 --- a/RxCocoa/Common/Observables/NSObject+Rx.swift +++ b/RxCocoa/Common/Observables/NSObject+Rx.swift @@ -58,7 +58,7 @@ extension NSObject { - parameter retainSelf: Retains self during observation if set `true`. - returns: Observable sequence of objects on `keyPath`. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func rx_observe(_ type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.new, .initial], retainSelf: Bool = true) -> Observable { return KVOObservable(object: self, keyPath: keyPath, options: options, retainTarget: retainSelf).asObservable() } @@ -81,9 +81,9 @@ extension NSObject { - parameter options: KVO mechanism notification options. - returns: Observable sequence of objects on `keyPath`. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func rx_observeWeakly(_ type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = [.new, .initial]) -> Observable { - return observeWeaklyKeyPathFor(target: self, keyPath: keyPath, options: options) + return observeWeaklyKeyPathFor(self, keyPath: keyPath, options: options) .map { n in return n as? E } @@ -125,7 +125,7 @@ extension NSObject { - returns: Observable sequence of object deallocating events. */ - public func rx_sentMessage(selector: Selector) -> Observable<[AnyObject]> { + public func rx_sentMessage(_ selector: Selector) -> Observable<[AnyObject]> { return rx_synchronized { // in case of dealloc selector replay subject behavior needs to be used if selector == deallocSelector { @@ -197,7 +197,7 @@ extension NSObject { var error: NSError? let targetImplementation = RX_ensure_observing(self, deallocSelector, &error) if targetImplementation == nil { - return Observable.error(error?.rxCocoaErrorForTarget(self) ?? RxCocoaError.Unknown) + return Observable.error(error?.rxCocoaErrorForTarget(self) ?? RxCocoaError.unknown) } subject.targetImplementation = targetImplementation! @@ -212,7 +212,7 @@ let rxDeallocatingSelector = RX_selector(deallocSelector) let rxDeallocatingSelectorReference = RX_reference_from_selector(rxDeallocatingSelector) extension NSObject { - func rx_synchronized(@noescape action: () -> T) -> T { + func rx_synchronized( _ action: @noescape() -> T) -> T { objc_sync_enter(self) let result = action() objc_sync_exit(self) @@ -225,15 +225,15 @@ extension NSObject { Helper to make sure that `Observable` returned from `createCachedObservable` is only created once. This is important because there is only one `target` and `action` properties on `NSControl` or `UIBarButtonItem`. */ - func rx_lazyInstanceObservable(key: UnsafePointer, createCachedObservable: () -> T) -> T { + func rx_lazyInstanceObservable(_ key: UnsafePointer, createCachedObservable: () -> T) -> T { if let value = objc_getAssociatedObject(self, key) { return value as! T } let observable = createCachedObservable() - objc_setAssociatedObject(self, key, observable, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) + objc_setAssociatedObject(self, key, observable, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) return observable } -} \ No newline at end of file +} diff --git a/RxCocoa/Common/Observables/NSURLSession+Rx.swift b/RxCocoa/Common/Observables/NSURLSession+Rx.swift index 8bcbcf1d..9d4e0ef1 100644 --- a/RxCocoa/Common/Observables/NSURLSession+Rx.swift +++ b/RxCocoa/Common/Observables/NSURLSession+Rx.swift @@ -20,19 +20,19 @@ public enum RxCocoaURLError /** Unknown error occurred. */ - case Unknown + case unknown /** Response is not NSHTTPURLResponse */ - case NonHTTPResponse(response: NSURLResponse) + case nonHTTPResponse(response: URLResponse) /** Response is not successful. (not in `200 ..< 300` range) */ - case HTTPRequestFailed(response: NSHTTPURLResponse, data: NSData?) + case httpRequestFailed(response: HTTPURLResponse, data: Data?) /** Deserialization error. */ - case DeserializationError(error: ErrorProtocol) + case deserializationError(error: ErrorProtocol) } public extension RxCocoaURLError { @@ -41,28 +41,28 @@ public extension RxCocoaURLError { */ public var debugDescription: String { switch self { - case .Unknown: + case .unknown: return "Unknown error has occurred." - case let .NonHTTPResponse(response): + case let .nonHTTPResponse(response): return "Response is not NSHTTPURLResponse `\(response)`." - case let .HTTPRequestFailed(response, _): + case let .httpRequestFailed(response, _): return "HTTP request failed with `\(response.statusCode)`." - case let .DeserializationError(error): + case let .deserializationError(error): return "Error during deserialization of the response: \(error)" } } } -func escapeTerminalString(value: String) -> String { - return value.stringByReplacingOccurrencesOfString("\"", withString: "\\\"", options:[], range: nil) +func escapeTerminalString(_ value: String) -> String { + return value.replacingOccurrences(of: "\"", with: "\\\"", options:[], range: nil) } -func convertURLRequestToCurlCommand(request: NSURLRequest) -> String { - let method = request.HTTPMethod ?? "GET" +func convertURLRequestToCurlCommand(_ request: URLRequest) -> String { + let method = request.httpMethod ?? "GET" var returnValue = "curl -X \(method) " - if request.HTTPMethod == "POST" && request.HTTPBody != nil { - let maybeBody = NSString(data: request.HTTPBody!, encoding: NSUTF8StringEncoding) as? String + if request.httpMethod == "POST" && request.httpBody != nil { + let maybeBody = NSString(data: request.httpBody!, encoding: String.Encoding.utf8.rawValue) as? String if let body = maybeBody { returnValue += "-d \"\(escapeTerminalString(body))\" " } @@ -74,7 +74,7 @@ func convertURLRequestToCurlCommand(request: NSURLRequest) -> String { returnValue += "\n -H \"\(escapedKey): \(escapedValue)\" " } - let URLString = request.URL?.absoluteString ?? "" + let URLString = request.url?.absoluteString ?? "" returnValue += "\n\"\(escapeTerminalString(URLString))\"" @@ -83,10 +83,10 @@ func convertURLRequestToCurlCommand(request: NSURLRequest) -> String { return returnValue } -func convertResponseToString(data: NSData!, _ response: NSURLResponse!, _ error: NSError!, _ interval: NSTimeInterval) -> String { +func convertResponseToString(_ data: Data!, _ response: URLResponse!, _ error: NSError!, _ interval: TimeInterval) -> String { let ms = Int(interval * 1000) - if let response = response as? NSHTTPURLResponse { + if let response = response as? HTTPURLResponse { if 200 ..< 300 ~= response.statusCode { return "Success (\(ms)ms): Status \(response.statusCode)" } @@ -105,7 +105,7 @@ func convertResponseToString(data: NSData!, _ response: NSURLResponse!, _ error: return "" } -extension NSURLSession { +extension URLSession { /** Observable sequence of responses for URL request. @@ -118,37 +118,37 @@ extension NSURLSession { - parameter request: URL request. - returns: Observable sequence of URL responses. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_response(request: NSURLRequest) -> Observable<(NSData, NSHTTPURLResponse)> { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_response(_ request: URLRequest) -> Observable<(Data, HTTPURLResponse)> { return Observable.create { observer in // smart compiler should be able to optimize this out - var d: NSDate? + var d: Date? if Logging.URLRequests(request) { - d = NSDate() + d = Date() } - let task = self.dataTaskWithRequest(request) { (data, response, error) in + let task = self.dataTask(with: request) { (data, response, error) in if Logging.URLRequests(request) { - let interval = NSDate().timeIntervalSinceDate(d ?? NSDate()) + let interval = Date().timeIntervalSince(d ?? Date()) print(convertURLRequestToCurlCommand(request)) print(convertResponseToString(data, response, error, interval)) } guard let response = response, data = data else { - observer.on(.Error(error ?? RxCocoaURLError.Unknown)) + observer.on(.error(error ?? RxCocoaURLError.unknown)) return } - guard let httpResponse = response as? NSHTTPURLResponse else { - observer.on(.Error(RxCocoaURLError.NonHTTPResponse(response: response))) + guard let httpResponse = response as? HTTPURLResponse else { + observer.on(.error(RxCocoaURLError.nonHTTPResponse(response: response))) return } - observer.on(.Next(data, httpResponse)) - observer.on(.Completed) + observer.on(.next(data, httpResponse)) + observer.on(.completed) } @@ -174,14 +174,14 @@ extension NSURLSession { - parameter request: URL request. - returns: Observable sequence of response data. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_data(request: NSURLRequest) -> Observable { - return rx_response(request).map { (data, response) -> NSData in + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_data(_ request: URLRequest) -> Observable { + return rx_response(request).map { (data, response) -> Data in if 200 ..< 300 ~= response.statusCode { return data } else { - throw RxCocoaURLError.HTTPRequestFailed(response: response, data: data) + throw RxCocoaURLError.httpRequestFailed(response: response, data: data) } } } @@ -203,13 +203,13 @@ extension NSURLSession { - parameter request: URL request. - returns: Observable sequence of response JSON. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_JSON(request: NSURLRequest) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_JSON(_ request: URLRequest) -> Observable { return rx_data(request).map { (data) -> AnyObject in do { - return try NSJSONSerialization.JSONObjectWithData(data, options: []) + return try JSONSerialization.jsonObject(with: data, options: []) } catch let error { - throw RxCocoaURLError.DeserializationError(error: error) + throw RxCocoaURLError.deserializationError(error: error) } } } @@ -231,8 +231,8 @@ extension NSURLSession { - parameter URL: URL of `NSURLRequest` request. - returns: Observable sequence of response JSON. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func rx_JSON(URL: NSURL) -> Observable { - return rx_JSON(NSURLRequest(URL: URL)) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func rx_JSON(_ URL: Foundation.URL) -> Observable { + return rx_JSON(URLRequest(url: URL)) } } diff --git a/RxCocoa/Common/Proxies/RxCLLocationManagerDelegateProxy.swift b/RxCocoa/Common/Proxies/RxCLLocationManagerDelegateProxy.swift index 5ab7dd69..d09f1275 100644 --- a/RxCocoa/Common/Proxies/RxCLLocationManagerDelegateProxy.swift +++ b/RxCocoa/Common/Proxies/RxCLLocationManagerDelegateProxy.swift @@ -15,12 +15,12 @@ class RxCLLocationManagerDelegateProxy : DelegateProxy , CLLocationManagerDelegate , DelegateProxyType { - class func currentDelegateFor(object: AnyObject) -> AnyObject? { + class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let locationManager: CLLocationManager = castOrFatalError(object) return locationManager.delegate } - class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let locationManager: CLLocationManager = castOrFatalError(object) locationManager.delegate = castOptionalOrFatalError(delegate) } diff --git a/RxCocoa/Common/RxCocoa.swift b/RxCocoa/Common/RxCocoa.swift index 63bddee4..1c1de971 100644 --- a/RxCocoa/Common/RxCocoa.swift +++ b/RxCocoa/Common/RxCocoa.swift @@ -23,31 +23,31 @@ public enum RxCocoaError /** Unknown error has occurred. */ - case Unknown + case unknown /** Invalid operation was attempted. */ - case InvalidOperation(object: AnyObject) + case invalidOperation(object: AnyObject) /** Items are not yet bound to user interface but have been requested. */ - case ItemsNotYetBound(object: AnyObject) + case itemsNotYetBound(object: AnyObject) /** Invalid KVO Path. */ - case InvalidPropertyName(object: AnyObject, propertyName: String) + case invalidPropertyName(object: AnyObject, propertyName: String) /** Invalid object on key path. */ - case InvalidObjectOnKeyPath(object: AnyObject, sourceObject: AnyObject, propertyName: String) + case invalidObjectOnKeyPath(object: AnyObject, sourceObject: AnyObject, propertyName: String) /** Error during swizzling. */ - case ErrorDuringSwizzling + case errorDuringSwizzling /* Casting error. */ - case CastingError(object: AnyObject, targetType: Any.Type) + case castingError(object: AnyObject, targetType: Any.Type) } #if !DISABLE_SWIZZLING @@ -58,11 +58,11 @@ public enum RxCocoaInterceptionMechanism { /** Unknown message interception mechanism. */ - case Unknown + case unknown /** Key value observing interception mechanism. */ - case KVO + case kvo } /** @@ -74,7 +74,7 @@ public enum RxCocoaObjCRuntimeError /** Unknown error has occurred. */ - case Unknown(target: AnyObject) + case unknown(target: AnyObject) /** If the object is reporting a different class then it's real class, that means that there is probably @@ -101,12 +101,12 @@ public enum RxCocoaObjCRuntimeError it's highly unlikely it would have any benefit in real world use cases, and it's even more dangerous. */ - case ObjectMessagesAlreadyBeingIntercepted(target: AnyObject, interceptionMechanism: RxCocoaInterceptionMechanism) + case objectMessagesAlreadyBeingIntercepted(target: AnyObject, interceptionMechanism: RxCocoaInterceptionMechanism) /** Trying to observe messages for selector that isn't implemented. */ - case SelectorNotImplemented(target: AnyObject) + case selectorNotImplemented(target: AnyObject) /** Core Foundation classes are usually toll free bridged. Those classes crash the program in case @@ -115,7 +115,7 @@ public enum RxCocoaObjCRuntimeError There is a possibility to just swizzle methods on original object, but since those won't be usual use cases for this library, then an error will just be reported for now. */ - case CantInterceptCoreFoundationTollFreeBridgedObjects(target: AnyObject) + case cantInterceptCoreFoundationTollFreeBridgedObjects(target: AnyObject) /** Two libraries have simultaneously tried to modify ObjC runtime and that was detected. This can only @@ -124,17 +124,17 @@ public enum RxCocoaObjCRuntimeError To synchronize other libraries intercepting messages for an object, use `synchronized` on target object and it's meta-class. */ - case ThreadingCollisionWithOtherInterceptionMechanism(target: AnyObject) + case threadingCollisionWithOtherInterceptionMechanism(target: AnyObject) /** For some reason saving original method implementation under RX namespace failed. */ - case SavingOriginalForwardingMethodFailed(target: AnyObject) + case savingOriginalForwardingMethodFailed(target: AnyObject) /** Intercepting a sent message by replacing a method implementation with `_objc_msgForward` failed for some reason. */ - case ReplacingMethodWithForwardingImplementation(target: AnyObject) + case replacingMethodWithForwardingImplementation(target: AnyObject) /** Attempt to intercept one of the performance sensitive methods: @@ -143,7 +143,7 @@ public enum RxCocoaObjCRuntimeError * methodSignatureForSelector: * forwardingTargetForSelector: */ - case ObservingPerformanceSensitiveMessages(target: AnyObject) + case observingPerformanceSensitiveMessages(target: AnyObject) /** Message implementation has unsupported return type (for example large struct). The reason why this is a error @@ -152,7 +152,7 @@ public enum RxCocoaObjCRuntimeError The unsupported cases should be fairly uncommon. */ - case ObservingMessagesWithUnsupportedReturnType(target: AnyObject) + case observingMessagesWithUnsupportedReturnType(target: AnyObject) } #endif @@ -165,19 +165,19 @@ public extension RxCocoaError { */ public var debugDescription: String { switch self { - case .Unknown: + case .unknown: return "Unknown error occurred." - case let .InvalidOperation(object): + case let .invalidOperation(object): return "Invalid operation was attempted on `\(object)`." - case let .ItemsNotYetBound(object): + case let .itemsNotYetBound(object): return "Data source is set, but items are not yet bound to user interface for `\(object)`." - case let .InvalidPropertyName(object, propertyName): + case let .invalidPropertyName(object, propertyName): return "Object `\(object)` dosn't have a property named `\(propertyName)`." - case let .InvalidObjectOnKeyPath(object, sourceObject, propertyName): + case let .invalidObjectOnKeyPath(object, sourceObject, propertyName): return "Unobservable object `\(object)` was observed as `\(propertyName)` of `\(sourceObject)`." - case .ErrorDuringSwizzling: + case .errorDuringSwizzling: return "Error during swizzling." - case .CastingError(let object, let targetType): + case .castingError(let object, let targetType): return "Error casting `\(object)` to `\(targetType)`" } } @@ -191,25 +191,25 @@ public extension RxCocoaObjCRuntimeError { */ public var debugDescription: String { switch self { - case let .Unknown(target): + case let .unknown(target): return "Unknown error occurred.\nTarget: `\(target)`" - case let ObjectMessagesAlreadyBeingIntercepted(target, interceptionMechanism): - let interceptionMechanismDescription = interceptionMechanism == .KVO ? "KVO" : "other interception mechanism" + case let objectMessagesAlreadyBeingIntercepted(target, interceptionMechanism): + let interceptionMechanismDescription = interceptionMechanism == .kvo ? "KVO" : "other interception mechanism" return "Collision between RxCocoa interception mechanism and \(interceptionMechanismDescription)." + " 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)" - case let CantInterceptCoreFoundationTollFreeBridgedObjects(target): + case let cantInterceptCoreFoundationTollFreeBridgedObjects(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)" - case let SavingOriginalForwardingMethodFailed(target): + case let savingOriginalForwardingMethodFailed(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)" - case let ObservingPerformanceSensitiveMessages(target): + case let observingPerformanceSensitiveMessages(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)" } } @@ -251,7 +251,7 @@ func castOptionalOrFatalError(_ value: AnyObject?) -> T? { func castOrThrow(_ resultType: T.Type, _ object: AnyObject) throws -> T { guard let returnValue = object as? T else { - throw RxCocoaError.CastingError(object: object, targetType: resultType) + throw RxCocoaError.castingError(object: object, targetType: resultType) } return returnValue @@ -263,7 +263,7 @@ func castOptionalOrThrow(_ resultType: T.Type, _ object: AnyObject) throws -> } guard let returnValue = object as? T else { - throw RxCocoaError.CastingError(object: object, targetType: resultType) + throw RxCocoaError.castingError(object: object, targetType: resultType) } return returnValue @@ -303,28 +303,28 @@ extension NSError { switch errorCode { case .unknown: - return .Unknown(target: target) + return .unknown(target: target) case .objectMessagesAlreadyBeingIntercepted: let isKVO = (self.userInfo[RXObjCRuntimeErrorIsKVOKey] as? NSNumber)?.boolValue ?? false - return .ObjectMessagesAlreadyBeingIntercepted(target: target, interceptionMechanism: isKVO ? .KVO : .Unknown) + return .objectMessagesAlreadyBeingIntercepted(target: target, interceptionMechanism: isKVO ? .kvo : .unknown) case .selectorNotImplemented: - return .SelectorNotImplemented(target: target) + return .selectorNotImplemented(target: target) case .cantInterceptCoreFoundationTollFreeBridgedObjects: - return .CantInterceptCoreFoundationTollFreeBridgedObjects(target: target) + return .cantInterceptCoreFoundationTollFreeBridgedObjects(target: target) case .threadingCollisionWithOtherInterceptionMechanism: - return .ThreadingCollisionWithOtherInterceptionMechanism(target: target) + return .threadingCollisionWithOtherInterceptionMechanism(target: target) case .savingOriginalForwardingMethodFailed: - return .SavingOriginalForwardingMethodFailed(target: target) + return .savingOriginalForwardingMethodFailed(target: target) case .replacingMethodWithForwardingImplementation: - return .ReplacingMethodWithForwardingImplementation(target: target) + return .replacingMethodWithForwardingImplementation(target: target) case .observingPerformanceSensitiveMessages: - return .ObservingPerformanceSensitiveMessages(target: target) + return .observingPerformanceSensitiveMessages(target: target) case .observingMessagesWithUnsupportedReturnType: - return .ObservingMessagesWithUnsupportedReturnType(target: target) + return .observingMessagesWithUnsupportedReturnType(target: target) } } - return RxCocoaObjCRuntimeError.Unknown(target: target) + return RxCocoaObjCRuntimeError.unknown(target: target) } } diff --git a/RxCocoa/Common/SectionedViewDataSourceType.swift b/RxCocoa/Common/SectionedViewDataSourceType.swift index e4d52d3b..d1ac49c8 100644 --- a/RxCocoa/Common/SectionedViewDataSourceType.swift +++ b/RxCocoa/Common/SectionedViewDataSourceType.swift @@ -20,5 +20,5 @@ public protocol SectionedViewDataSourceType { - parameter indexPath: Model index path - returns: Model at index path. */ - func modelAtIndexPath(indexPath: NSIndexPath) throws -> Any -} \ No newline at end of file + func modelAtIndexPath(_ indexPath: IndexPath) throws -> Any +} diff --git a/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift b/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift index 649be09e..ed6572de 100644 --- a/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift +++ b/RxCocoa/iOS/DataSources/RxCollectionViewReactiveArrayDataSource.swift @@ -19,6 +19,7 @@ class _RxCollectionViewReactiveArrayDataSource : NSObject , UICollectionViewDataSource { + @objc(numberOfSectionsInCollectionView:) func numberOfSections(in: UICollectionView) -> Int { return 1 } @@ -31,11 +32,11 @@ class _RxCollectionViewReactiveArrayDataSource return _collectionView(collectionView, numberOfItemsInSection: section) } - func _collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: NSIndexPath) -> UICollectionViewCell { + private func _collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { rxAbstractMethod() } - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: NSIndexPath) -> UICollectionViewCell { + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { return _collectionView(collectionView, cellForItemAt: indexPath) } } @@ -53,7 +54,7 @@ class RxCollectionViewReactiveArrayDataSourceSequenceWrapper UIBindingObserver(UIElement: self) { collectionViewDataSource, sectionModels in let sections = Array(sectionModels) collectionViewDataSource.collectionView(collectionView, observedElements: sections) - }.on(event: observedEvent) + }.on(observedEvent) } } @@ -67,14 +68,14 @@ class RxCollectionViewReactiveArrayDataSource var itemModels: [Element]? = nil - func modelAtIndex(index: Int) -> Element? { + func modelAtIndex(_ index: Int) -> Element? { return itemModels?[index] } - func modelAtIndexPath(indexPath: NSIndexPath) throws -> Any { - precondition(indexPath.section == 0) - guard let item = itemModels?[indexPath.item] else { - throw RxCocoaError.ItemsNotYetBound(object: self) + func modelAtIndexPath(_ indexPath: IndexPath) throws -> Any { + precondition((indexPath as NSIndexPath).section == 0) + guard let item = itemModels?[(indexPath as NSIndexPath).item] else { + throw RxCocoaError.itemsNotYetBound(object: self) } return item } @@ -91,8 +92,8 @@ class RxCollectionViewReactiveArrayDataSource return itemModels?.count ?? 0 } - override func _collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: NSIndexPath) -> UICollectionViewCell { - return cellFactory(collectionView, indexPath.item, itemModels![indexPath.item]) + override func _collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + return cellFactory(collectionView, (indexPath as NSIndexPath).item, itemModels![(indexPath as NSIndexPath).item]) } // reactive diff --git a/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift b/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift index ab85f0f1..96540b95 100644 --- a/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift +++ b/RxCocoa/iOS/DataSources/RxTableViewReactiveArrayDataSource.swift @@ -19,7 +19,7 @@ class _RxTableViewReactiveArrayDataSource : NSObject , UITableViewDataSource { - func numberOfSectionsInTableView(tableView: UITableView) -> Int { + func numberOfSections(in tableView: UITableView) -> Int { return 1 } @@ -31,12 +31,12 @@ class _RxTableViewReactiveArrayDataSource return _tableView(tableView, numberOfRowsInSection: section) } - func _tableView(tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell { + private func _tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { rxAbstractMethod() } - func tableView(tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell { - return _tableView(tableView: tableView, cellForRowAt: indexPath) + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + return _tableView(tableView, cellForRowAt: indexPath) } } @@ -54,7 +54,7 @@ class RxTableViewReactiveArrayDataSourceSequenceWrapper UIBindingObserver(UIElement: self) { tableViewDataSource, sectionModels in let sections = Array(sectionModels) tableViewDataSource.tableView(tableView, observedElements: sections) - }.on(event: observedEvent) + }.on(observedEvent) } } @@ -66,14 +66,14 @@ class RxTableViewReactiveArrayDataSource var itemModels: [Element]? = nil - func modelAtIndex(index: Int) -> Element? { + func modelAtIndex(_ index: Int) -> Element? { return itemModels?[index] } - func modelAtIndexPath(indexPath: NSIndexPath) throws -> Any { - precondition(indexPath.section == 0) - guard let item = itemModels?[indexPath.item] else { - throw RxCocoaError.ItemsNotYetBound(object: self) + func modelAtIndexPath(_ indexPath: IndexPath) throws -> Any { + precondition((indexPath as NSIndexPath).section == 0) + guard let item = itemModels?[(indexPath as NSIndexPath).item] else { + throw RxCocoaError.itemsNotYetBound(object: self) } return item } @@ -88,8 +88,8 @@ class RxTableViewReactiveArrayDataSource return itemModels?.count ?? 0 } - override func _tableView(_ tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell { - return cellFactory(tableView, indexPath.item, itemModels![indexPath.row]) + override func _tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + return cellFactory(tableView, (indexPath as NSIndexPath).item, itemModels![(indexPath as NSIndexPath).row]) } // reactive diff --git a/RxCocoa/iOS/Events/ItemEvents.swift b/RxCocoa/iOS/Events/ItemEvents.swift index 947ef2aa..66f42939 100644 --- a/RxCocoa/iOS/Events/ItemEvents.swift +++ b/RxCocoa/iOS/Events/ItemEvents.swift @@ -10,7 +10,7 @@ import Foundation import UIKit #if os(iOS) || os(tvOS) -public typealias ItemMovedEvent = (sourceIndex: NSIndexPath, destinationIndex: NSIndexPath) -public typealias WillDisplayCellEvent = (cell: UITableViewCell, indexPath: NSIndexPath) -public typealias DidEndDisplayingCellEvent = (cell: UITableViewCell, indexPath: NSIndexPath) -#endif \ No newline at end of file +public typealias ItemMovedEvent = (sourceIndex: IndexPath, destinationIndex: IndexPath) +public typealias WillDisplayCellEvent = (cell: UITableViewCell, indexPath: IndexPath) +public typealias DidEndDisplayingCellEvent = (cell: UITableViewCell, indexPath: IndexPath) +#endif diff --git a/RxCocoa/iOS/NSTextStorage+Rx.swift b/RxCocoa/iOS/NSTextStorage+Rx.swift index d351ac2f..262fc01d 100644 --- a/RxCocoa/iOS/NSTextStorage+Rx.swift +++ b/RxCocoa/iOS/NSTextStorage+Rx.swift @@ -30,7 +30,7 @@ extension NSTextStorage { */ public var rx_didProcessEditingRangeChangeInLength: Observable<(editedMask:NSTextStorageEditActions, editedRange:NSRange, delta:Int)> { return rx_delegate - .observe(selector: #selector(NSTextStorageDelegate.textStorage(_:didProcessEditing:range:changeInLength:))) + .observe(#selector(NSTextStorageDelegate.textStorage(_:didProcessEditing:range:changeInLength:))) .map { a in let editedMask = NSTextStorageEditActions(rawValue: try castOrThrow(UInt.self, a[1]) ) let editedRange = try castOrThrow(NSValue.self, a[2]).rangeValue diff --git a/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift b/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift index 2be1ef4e..452a14c6 100644 --- a/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift +++ b/RxCocoa/iOS/Proxies/RxCollectionViewDataSourceProxy.swift @@ -24,7 +24,7 @@ class CollectionViewDataSourceNotSet } // The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath: - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: NSIndexPath) -> UICollectionViewCell { + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { rxAbstractMethodWithMessage(dataSourceNotSet) } @@ -67,7 +67,7 @@ public class RxCollectionViewDataSourceProxy /** Required delegate method implementation. */ - public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: NSIndexPath) -> UICollectionViewCell { + public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { return (_requiredMethodsDataSource ?? collectionViewDataSourceNotSet).collectionView(collectionView, cellForItemAt: indexPath) } @@ -76,7 +76,7 @@ public class RxCollectionViewDataSourceProxy /** For more information take a look at `DelegateProxyType`. */ - public override class func createProxyForObject(object: AnyObject) -> AnyObject { + public override class func createProxyForObject(_ object: AnyObject) -> AnyObject { let collectionView = (object as! UICollectionView) return castOrFatalError(collectionView.rx_createDataSourceProxy()) @@ -86,13 +86,13 @@ public class RxCollectionViewDataSourceProxy For more information take a look at `DelegateProxyType`. */ public override class func delegateAssociatedObjectTag() -> UnsafePointer { - return _pointer(p: &dataSourceAssociatedTag) + return _pointer(&dataSourceAssociatedTag) } /** For more information take a look at `DelegateProxyType`. */ - public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + public class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let collectionView: UICollectionView = castOrFatalError(object) collectionView.dataSource = castOptionalOrFatalError(delegate) } @@ -100,7 +100,7 @@ public class RxCollectionViewDataSourceProxy /** For more information take a look at `DelegateProxyType`. */ - public class func currentDelegateFor(object: AnyObject) -> AnyObject? { + public class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let collectionView: UICollectionView = castOrFatalError(object) return collectionView.dataSource } @@ -108,10 +108,10 @@ public class RxCollectionViewDataSourceProxy /** For more information take a look at `DelegateProxyType`. */ - public override func setForwardToDelegate(forwardToDelegate: AnyObject?, retainDelegate: Bool) { + public override func setForwardToDelegate(_ forwardToDelegate: AnyObject?, retainDelegate: Bool) { let requiredMethodsDataSource: UICollectionViewDataSource? = castOptionalOrFatalError(forwardToDelegate) _requiredMethodsDataSource = requiredMethodsDataSource ?? collectionViewDataSourceNotSet - super.setForwardToDelegate(forwardToDelegate: forwardToDelegate, retainDelegate: retainDelegate) + super.setForwardToDelegate(forwardToDelegate, retainDelegate: retainDelegate) } } diff --git a/RxCocoa/iOS/Proxies/RxImagePickerDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxImagePickerDelegateProxy.swift index 21397b93..91f0aaea 100644 --- a/RxCocoa/iOS/Proxies/RxImagePickerDelegateProxy.swift +++ b/RxCocoa/iOS/Proxies/RxImagePickerDelegateProxy.swift @@ -23,7 +23,7 @@ public class RxImagePickerDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + public class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let imagePickerController: UIImagePickerController = castOrFatalError(object) imagePickerController.delegate = castOptionalOrFatalError(delegate) } @@ -31,7 +31,7 @@ public class RxImagePickerDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func currentDelegateFor(object: AnyObject) -> AnyObject? { + public class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let imagePickerController: UIImagePickerController = castOrFatalError(object) return imagePickerController.delegate } diff --git a/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift index 024f74c8..29ed3978 100644 --- a/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift +++ b/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift @@ -22,7 +22,7 @@ public class RxPickerViewDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + public class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let pickerView: UIPickerView = castOrFatalError(object) pickerView.delegate = castOptionalOrFatalError(delegate) } @@ -30,7 +30,7 @@ public class RxPickerViewDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func currentDelegateFor(object: AnyObject) -> AnyObject? { + public class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let pickerView: UIPickerView = castOrFatalError(object) return pickerView.delegate } diff --git a/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift index 31273b84..40d273a7 100644 --- a/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift +++ b/RxCocoa/iOS/Proxies/RxScrollViewDelegateProxy.swift @@ -34,9 +34,9 @@ public class RxScrollViewDelegateProxy */ internal var contentOffsetSubject: Observable { if _contentOffsetSubject == nil { - let replaySubject = ReplaySubject.create(bufferSize: 1) + let replaySubject = ReplaySubject.create(1) _contentOffsetSubject = replaySubject - replaySubject.on(event: .Next(self.scrollView?.contentOffset ?? CGPoint.zero)) + replaySubject.on(.next(self.scrollView?.contentOffset ?? CGPoint.zero)) } return _contentOffsetSubject! @@ -57,9 +57,9 @@ public class RxScrollViewDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public func scrollViewDidScroll(scrollView: UIScrollView) { + public func scrollViewDidScroll(_ scrollView: UIScrollView) { if let contentOffset = _contentOffsetSubject { - contentOffset.on(event: .Next(scrollView.contentOffset)) + contentOffset.on(.next(scrollView.contentOffset)) } self._forwardToDelegate?.scrollViewDidScroll?(scrollView) } @@ -69,7 +69,7 @@ public class RxScrollViewDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public override class func createProxyForObject(object: AnyObject) -> AnyObject { + public override class func createProxyForObject(_ object: AnyObject) -> AnyObject { let scrollView = (object as! UIScrollView) return castOrFatalError(scrollView.rx_createDelegateProxy()) @@ -78,7 +78,7 @@ public class RxScrollViewDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + public class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let scrollView: UIScrollView = castOrFatalError(object) scrollView.delegate = castOptionalOrFatalError(delegate) } @@ -86,14 +86,14 @@ public class RxScrollViewDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func currentDelegateFor(object: AnyObject) -> AnyObject? { + public class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let scrollView: UIScrollView = castOrFatalError(object) return scrollView.delegate } deinit { if let contentOffset = _contentOffsetSubject { - contentOffset.on(event: .Completed) + contentOffset.on(.completed) } } } diff --git a/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift index 749c1ea0..330028b0 100644 --- a/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift +++ b/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift @@ -25,7 +25,7 @@ public class RxSearchBarDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func currentDelegateFor(object: AnyObject) -> AnyObject? { + public class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let searchBar: UISearchBar = castOrFatalError(object) return searchBar.delegate } @@ -33,7 +33,7 @@ public class RxSearchBarDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + public class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let searchBar: UISearchBar = castOrFatalError(object) searchBar.delegate = castOptionalOrFatalError(delegate) } @@ -44,7 +44,7 @@ public class RxSearchBarDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public override class func createProxyForObject(object: AnyObject) -> AnyObject { + public override class func createProxyForObject(_ object: AnyObject) -> AnyObject { let searchBar = (object as! UISearchBar) return castOrFatalError(searchBar.rx_createDelegateProxy()) diff --git a/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift index c5d01d6c..2273fc2e 100644 --- a/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift +++ b/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift @@ -26,7 +26,7 @@ public class RxSearchControllerDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + public class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let searchController: UISearchController = castOrFatalError(object) searchController.delegate = castOptionalOrFatalError(delegate) } @@ -34,7 +34,7 @@ public class RxSearchControllerDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func currentDelegateFor(object: AnyObject) -> AnyObject? { + public class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let searchController: UISearchController = castOrFatalError(object) return searchController.delegate } diff --git a/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift b/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift index 9c5bea65..75e8033a 100644 --- a/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift +++ b/RxCocoa/iOS/Proxies/RxTableViewDataSourceProxy.swift @@ -19,15 +19,15 @@ let tableViewDataSourceNotSet = TableViewDataSourceNotSet() class TableViewDataSourceNotSet : NSObject , UITableViewDataSource { - func numberOfSectionsInTableView(tableView: UITableView) -> Int { + func numberOfSections(in tableView: UITableView) -> Int { rxAbstractMethodWithMessage(dataSourceNotSet) } - func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { rxAbstractMethodWithMessage(dataSourceNotSet) } - func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { rxAbstractMethodWithMessage(dataSourceNotSet) } } @@ -62,21 +62,21 @@ public class RxTableViewDataSourceProxy /** Required delegate method implementation. */ - public func numberOfSectionsInTableView(tableView: UITableView) -> Int { - return (_requiredMethodsDataSource ?? tableViewDataSourceNotSet).numberOfSectionsInTableView?(tableView) ?? 1 + public func numberOfSections(in tableView: UITableView) -> Int { + return (_requiredMethodsDataSource ?? tableViewDataSourceNotSet).numberOfSections?(in: tableView) ?? 1 } /** Required delegate method implementation. */ - public func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return (_requiredMethodsDataSource ?? tableViewDataSourceNotSet).tableView(tableView, numberOfRowsInSection: section) } /** Required delegate method implementation. */ - public func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { return (_requiredMethodsDataSource ?? tableViewDataSourceNotSet).tableView(tableView, cellForRowAt: indexPath) } @@ -85,7 +85,7 @@ public class RxTableViewDataSourceProxy /** For more information take a look at `DelegateProxyType`. */ - public override class func createProxyForObject(object: AnyObject) -> AnyObject { + public override class func createProxyForObject(_ object: AnyObject) -> AnyObject { let tableView = (object as! UITableView) return castOrFatalError(tableView.rx_createDataSourceProxy()) @@ -95,13 +95,13 @@ public class RxTableViewDataSourceProxy For more information take a look at `DelegateProxyType`. */ public override class func delegateAssociatedObjectTag() -> UnsafePointer { - return _pointer(p: &dataSourceAssociatedTag) + return _pointer(&dataSourceAssociatedTag) } /** For more information take a look at `DelegateProxyType`. */ - public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + public class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let tableView: UITableView = castOrFatalError(object) tableView.dataSource = castOptionalOrFatalError(delegate) } @@ -109,7 +109,7 @@ public class RxTableViewDataSourceProxy /** For more information take a look at `DelegateProxyType`. */ - public class func currentDelegateFor(object: AnyObject) -> AnyObject? { + public class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let tableView: UITableView = castOrFatalError(object) return tableView.dataSource } @@ -117,10 +117,10 @@ public class RxTableViewDataSourceProxy /** For more information take a look at `DelegateProxyType`. */ - public override func setForwardToDelegate(forwardToDelegate: AnyObject?, retainDelegate: Bool) { + public override func setForwardToDelegate(_ forwardToDelegate: AnyObject?, retainDelegate: Bool) { let requiredMethodsDataSource: UITableViewDataSource? = castOptionalOrFatalError(forwardToDelegate) _requiredMethodsDataSource = requiredMethodsDataSource ?? tableViewDataSourceNotSet - super.setForwardToDelegate(forwardToDelegate: forwardToDelegate, retainDelegate: retainDelegate) + super.setForwardToDelegate(forwardToDelegate, retainDelegate: retainDelegate) } } diff --git a/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift index 074b2d9f..d546d4cf 100644 --- a/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift +++ b/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift @@ -23,7 +23,7 @@ public class RxTextStorageDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + public class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let textStorage: NSTextStorage = castOrFatalError(object) textStorage.delegate = castOptionalOrFatalError(delegate) } @@ -31,7 +31,7 @@ public class RxTextStorageDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - public class func currentDelegateFor(object: AnyObject) -> AnyObject? { + public class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let textStorage: NSTextStorage = castOrFatalError(object) return textStorage.delegate } diff --git a/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift b/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift index 6b0a5bc6..3caf7bac 100644 --- a/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift +++ b/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift @@ -41,14 +41,14 @@ public class RxTextViewDelegateProxy /** For more information take a look at `DelegateProxyType`. */ - @objc public func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { + @objc public func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { /** We've had some issues with observing text changes. This is here just in case we need the same hack in future and that we wouldn't need to change the public interface. */ let forwardToDelegate = self.forwardToDelegate() as? UITextViewDelegate return forwardToDelegate?.textView?(textView, - shouldChangeTextInRange: range, + shouldChangeTextIn: range, replacementText: text) ?? true } } diff --git a/RxCocoa/iOS/UIAlertAction+Rx.swift b/RxCocoa/iOS/UIAlertAction+Rx.swift index f893456e..165b979e 100644 --- a/RxCocoa/iOS/UIAlertAction+Rx.swift +++ b/RxCocoa/iOS/UIAlertAction+Rx.swift @@ -24,7 +24,7 @@ extension UIAlertAction { */ public var rx_enabled: AnyObserver { return UIBindingObserver(UIElement: self) { alertAction, value in - alertAction.enabled = value + alertAction.isEnabled = value }.asObserver() } diff --git a/RxCocoa/iOS/UIApplication+Rx.swift b/RxCocoa/iOS/UIApplication+Rx.swift index 1bf270da..8a9a8276 100644 --- a/RxCocoa/iOS/UIApplication+Rx.swift +++ b/RxCocoa/iOS/UIApplication+Rx.swift @@ -22,7 +22,7 @@ import Foundation */ public var rx_networkActivityIndicatorVisible: AnyObserver { return UIBindingObserver(UIElement: self) { application, active in - application.networkActivityIndicatorVisible = active + application.isNetworkActivityIndicatorVisible = active }.asObserver() } } diff --git a/RxCocoa/iOS/UIBarButtonItem+Rx.swift b/RxCocoa/iOS/UIBarButtonItem+Rx.swift index be780e1e..4331b8f9 100644 --- a/RxCocoa/iOS/UIBarButtonItem+Rx.swift +++ b/RxCocoa/iOS/UIBarButtonItem+Rx.swift @@ -22,7 +22,7 @@ extension UIBarButtonItem { */ public var rx_enabled: AnyObserver { return UIBindingObserver(UIElement: self) { UIElement, value in - UIElement.enabled = value + UIElement.isEnabled = value }.asObserver() } @@ -30,18 +30,18 @@ extension UIBarButtonItem { Reactive wrapper for target action pattern on `self`. */ public var rx_tap: ControlEvent { - let source = rx_lazyInstanceObservable(key: &rx_tap_key) { () -> Observable in + let source = rx_lazyInstanceObservable(&rx_tap_key) { () -> Observable in Observable.create { [weak self] observer in guard let control = self else { - observer.on(event: .Completed) + observer.on(.completed) return NopDisposable.instance } let target = BarButtonItemTarget(barButtonItem: control) { - observer.on(event: .Next()) + observer.on(.next()) } return target } - .takeUntil(other: self.rx_deallocated) + .takeUntil(self.rx_deallocated) .share() } diff --git a/RxCocoa/iOS/UIButton+Rx.swift b/RxCocoa/iOS/UIButton+Rx.swift index acd8f480..16e03e24 100644 --- a/RxCocoa/iOS/UIButton+Rx.swift +++ b/RxCocoa/iOS/UIButton+Rx.swift @@ -20,7 +20,7 @@ extension UIButton { Reactive wrapper for `TouchUpInside` control event. */ public var rx_tap: ControlEvent { - return rx_controlEvent(controlEvents: .touchUpInside) + return rx_controlEvent(.touchUpInside) } } @@ -41,7 +41,7 @@ extension UIButton { Reactive wrapper for `PrimaryActionTriggered` control event. */ public var rx_primaryAction: ControlEvent { - return rx_controlEvent(.PrimaryActionTriggered) + return rx_controlEvent(.primaryActionTriggered) } } diff --git a/RxCocoa/iOS/UICollectionView+Rx.swift b/RxCocoa/iOS/UICollectionView+Rx.swift index 8f40e947..c3ac311b 100644 --- a/RxCocoa/iOS/UICollectionView+Rx.swift +++ b/RxCocoa/iOS/UICollectionView+Rx.swift @@ -25,9 +25,9 @@ extension UICollectionView { - parameter cellFactory: Transform between sequence elements and view cells. - returns: Disposable object that can be used to unbind. */ - public func rx_itemsWithCellFactory - (source: O) - -> (cellFactory: (UICollectionView, Int, S.Generator.Element) -> UICollectionViewCell) + public func rx_itemsWithCellFactory + (_ source: O) + -> (cellFactory: (UICollectionView, Int, S.Iterator.Element) -> UICollectionViewCell) -> Disposable { return { cellFactory in let dataSource = RxCollectionViewReactiveArrayDataSourceSequenceWrapper(cellFactory: cellFactory) @@ -45,16 +45,16 @@ extension UICollectionView { - parameter cellType: Type of table view cell. - returns: Disposable object that can be used to unbind. */ - public func rx_itemsWithCellIdentifier - (cellIdentifier: String, cellType: Cell.Type = Cell.self) + public func rx_itemsWithCellIdentifier + (_ cellIdentifier: String, cellType: Cell.Type = Cell.self) -> (source: O) - -> (configureCell: (Int, S.Generator.Element, Cell) -> Void) + -> (configureCell: (Int, S.Iterator.Element, Cell) -> Void) -> Disposable { return { source in return { configureCell in let dataSource = RxCollectionViewReactiveArrayDataSourceSequenceWrapper { (cv, i, item) in - let indexPath = NSIndexPath(forItem: i, inSection: 0) - let cell = cv.dequeueReusableCellWithReuseIdentifier(cellIdentifier, forIndexPath: indexPath) as! Cell + let indexPath = IndexPath(item: i, section: 0) + let cell = cv.dequeueReusableCell(withReuseIdentifier: cellIdentifier, for: indexPath) as! Cell configureCell(i, item, cell) return cell } @@ -75,7 +75,7 @@ extension UICollectionView { DataSource: protocol, O: ObservableType where DataSource.Element == O.E > - (dataSource: DataSource) + (_ dataSource: DataSource) -> (source: O) -> Disposable { return { source in @@ -126,7 +126,7 @@ extension UICollectionView { - parameter dataSource: Data source object. - returns: Disposable object that can be used to unbind the data source. */ - public func rx_setDataSource(dataSource: UICollectionViewDataSource) + public func rx_setDataSource(_ dataSource: UICollectionViewDataSource) -> Disposable { return RxCollectionViewDataSourceProxy.installForwardDelegate(dataSource, retainDelegate: false, onProxyForObject: self) } @@ -134,10 +134,10 @@ extension UICollectionView { /** Reactive wrapper for `delegate` message `collectionView:didSelectItemAtIndexPath:`. */ - public var rx_itemSelected: ControlEvent { - let source = rx_delegate.observe(#selector(UICollectionViewDelegate.collectionView(_:didSelectItemAtIndexPath:))) + public var rx_itemSelected: ControlEvent { + let source = rx_delegate.observe(#selector(UICollectionViewDelegate.collectionView(_:didSelectItemAt:))) .map { a in - return a[1] as! NSIndexPath + return a[1] as! IndexPath } return ControlEvent(events: source) @@ -146,10 +146,10 @@ extension UICollectionView { /** Reactive wrapper for `delegate` message `collectionView:didSelectItemAtIndexPath:`. */ - public var rx_itemDeselected: ControlEvent { - let source = rx_delegate.observe(#selector(UICollectionViewDelegate.collectionView(_:didDeselectItemAtIndexPath:))) + public var rx_itemDeselected: ControlEvent { + let source = rx_delegate.observe(#selector(UICollectionViewDelegate.collectionView(_:didDeselectItemAt:))) .map { a in - return a[1] as! NSIndexPath + return a[1] as! IndexPath } return ControlEvent(events: source) @@ -166,7 +166,7 @@ extension UICollectionView { .map { ... ``` */ - public func rx_modelSelected(modelType: T.Type) -> ControlEvent { + public func rx_modelSelected(_ modelType: T.Type) -> ControlEvent { let source: Observable = rx_itemSelected.flatMap { [weak self] indexPath -> Observable in guard let view = self else { return Observable.empty() @@ -189,7 +189,7 @@ extension UICollectionView { .map { ... ``` */ - public func rx_modelDeselected(modelType: T.Type) -> ControlEvent { + public func rx_modelDeselected(_ modelType: T.Type) -> ControlEvent { let source: Observable = rx_itemDeselected.flatMap { [weak self] indexPath -> Observable in guard let view = self else { return Observable.empty() @@ -204,7 +204,7 @@ extension UICollectionView { /** Syncronous helper method for retrieving a model at indexPath through a reactive data source */ - public func rx_modelAtIndexPath(indexPath: NSIndexPath) throws -> T { + public func rx_modelAtIndexPath(_ indexPath: IndexPath) throws -> T { let dataSource: SectionedViewDataSourceType = castOrFatalError(self.rx_dataSource.forwardToDelegate(), message: "This method only works in case one of the `rx_itemsWith*` methods was used.") let element = try dataSource.modelAtIndexPath(indexPath) diff --git a/RxCocoa/iOS/UIControl+Rx.swift b/RxCocoa/iOS/UIControl+Rx.swift index 3dd5fd35..cc1b8350 100644 --- a/RxCocoa/iOS/UIControl+Rx.swift +++ b/RxCocoa/iOS/UIControl+Rx.swift @@ -21,7 +21,7 @@ extension UIControl { */ public var rx_enabled: AnyObserver { return UIBindingObserver(UIElement: self) { control, value in - control.enabled = value + control.isEnabled = value }.asObserver() } @@ -30,7 +30,7 @@ extension UIControl { */ public var rx_selected: AnyObserver { return UIBindingObserver(UIElement: self) { control, selected in - control.selected = selected + control.isSelected = selected }.asObserver() } @@ -39,18 +39,18 @@ extension UIControl { - parameter controlEvents: Filter for observed event types. */ - public func rx_controlEvent(controlEvents: UIControlEvents) -> ControlEvent { + public func rx_controlEvent(_ controlEvents: UIControlEvents) -> ControlEvent { let source: Observable = Observable.create { [weak self] observer in MainScheduler.ensureExecutingOnScheduler() guard let control = self else { - observer.on(.Completed) + observer.on(.completed) return NopDisposable.instance } let controlTarget = ControlTarget(control: control, controlEvents: controlEvents) { control in - observer.on(.Next()) + observer.on(.next()) } return AnonymousDisposable(controlTarget.dispose) @@ -63,18 +63,18 @@ extension UIControl { You might be wondering why the ugly `as!` casts etc, well, for some reason if Swift compiler knows C is UIControl type and optimizations are turned on, it will crash. */ - static func rx_value(control: C, getter: (C) -> T, setter: (C, T) -> Void) -> ControlProperty { + static func rx_value(_ control: C, getter: (C) -> T, setter: (C, T) -> Void) -> ControlProperty { let source: Observable = Observable.create { [weak weakControl = control] observer in guard let control = weakControl else { - observer.on(.Completed) + observer.on(.completed) return NopDisposable.instance } - observer.on(.Next(getter(control))) + observer.on(.next(getter(control))) - let controlTarget = ControlTarget(control: control as! UIControl, controlEvents: [.AllEditingEvents, .ValueChanged]) { _ in + let controlTarget = ControlTarget(control: control as! UIControl, controlEvents: [.allEditingEvents, .valueChanged]) { _ in if let control = weakControl { - observer.on(.Next(getter(control))) + observer.on(.next(getter(control))) } } diff --git a/RxCocoa/iOS/UIDatePicker+Rx.swift b/RxCocoa/iOS/UIDatePicker+Rx.swift index 94cf1473..ae33579e 100644 --- a/RxCocoa/iOS/UIDatePicker+Rx.swift +++ b/RxCocoa/iOS/UIDatePicker+Rx.swift @@ -19,9 +19,9 @@ extension UIDatePicker { /** Reactive wrapper for `date` property. */ - public var rx_date: ControlProperty { + public var rx_date: ControlProperty { return UIControl.rx_value( - control: self, + self, getter: { datePicker in datePicker.date }, setter: { datePicker, value in diff --git a/RxCocoa/iOS/UIGestureRecognizer+Rx.swift b/RxCocoa/iOS/UIGestureRecognizer+Rx.swift index a6a74f38..97e4c679 100644 --- a/RxCocoa/iOS/UIGestureRecognizer+Rx.swift +++ b/RxCocoa/iOS/UIGestureRecognizer+Rx.swift @@ -31,7 +31,7 @@ class GestureTarget: RxTarget { gestureRecognizer.addTarget(self, action: selector) - let method = self.methodForSelector(selector) + let method = self.method(for: selector) if method == nil { fatalError("Can't find method") } @@ -63,17 +63,17 @@ extension Reactive where Self: UIGestureRecognizer { MainScheduler.ensureExecutingOnScheduler() guard let control = self else { - observer.on(event: .Completed) + observer.on(.completed) return NopDisposable.instance } let observer = GestureTarget(control) { control in - observer.on(event: .Next(control)) + observer.on(.next(control)) } return observer - }.takeUntil(other: rx_deallocated) + }.takeUntil(rx_deallocated) return ControlEvent(events: source) } diff --git a/RxCocoa/iOS/UIImageView+Rx.swift b/RxCocoa/iOS/UIImageView+Rx.swift index 937a916e..1f99be20 100644 --- a/RxCocoa/iOS/UIImageView+Rx.swift +++ b/RxCocoa/iOS/UIImageView+Rx.swift @@ -20,7 +20,7 @@ extension UIImageView { Bindable sink for `image` property. */ public var rx_image: AnyObserver { - return self.rx_imageAnimated(transitionType: nil) + return self.rx_imageAnimated(nil) } /** @@ -28,7 +28,7 @@ extension UIImageView { - parameter transitionType: Optional transition type while setting the image (kCATransitionFade, kCATransitionMoveIn, ...) */ - public func rx_imageAnimated(transitionType: String?) -> AnyObserver { + public func rx_imageAnimated(_ transitionType: String?) -> AnyObserver { return UIBindingObserver(UIElement: self) { imageView, image in if let transitionType = transitionType { if image != nil { diff --git a/RxCocoa/iOS/UILabel+Rx.swift b/RxCocoa/iOS/UILabel+Rx.swift index ee3d8004..f7dfded9 100644 --- a/RxCocoa/iOS/UILabel+Rx.swift +++ b/RxCocoa/iOS/UILabel+Rx.swift @@ -28,7 +28,7 @@ extension UILabel { /** Bindable sink for `attributedText` property. */ - public var rx_attributedText: AnyObserver { + public var rx_attributedText: AnyObserver { return UIBindingObserver(UIElement: self) { label, text in label.attributedText = text }.asObserver() diff --git a/RxCocoa/iOS/UIPickerView+Rx.swift b/RxCocoa/iOS/UIPickerView+Rx.swift index 5006dc50..9c198241 100644 --- a/RxCocoa/iOS/UIPickerView+Rx.swift +++ b/RxCocoa/iOS/UIPickerView+Rx.swift @@ -23,7 +23,7 @@ extension UIPickerView { return RxPickerViewDelegateProxy.proxyForObject(self) } - public var rx_itemSelected: ControlEvent<(row: Int, component: Int)> { + public var rx_itemSelected: ControlEvent<(Int, Int)> { let source = rx_delegate .observe(#selector(UIPickerViewDelegate.pickerView(_:didSelectRow:inComponent:))) .map { diff --git a/RxCocoa/iOS/UIScrollView+Rx.swift b/RxCocoa/iOS/UIScrollView+Rx.swift index e0f5e7a8..9ae58753 100644 --- a/RxCocoa/iOS/UIScrollView+Rx.swift +++ b/RxCocoa/iOS/UIScrollView+Rx.swift @@ -55,7 +55,7 @@ extension UIScrollView { - parameter delegate: Delegate object. - returns: Disposable object that can be used to unbind the delegate. */ - public func rx_setDelegate(delegate: UIScrollViewDelegate) + public func rx_setDelegate(_ delegate: UIScrollViewDelegate) -> Disposable { return RxScrollViewDelegateProxy.installForwardDelegate(delegate, retainDelegate: false, onProxyForObject: self) } diff --git a/RxCocoa/iOS/UISearchBar+Rx.swift b/RxCocoa/iOS/UISearchBar+Rx.swift index 358baa73..72378ab1 100644 --- a/RxCocoa/iOS/UISearchBar+Rx.swift +++ b/RxCocoa/iOS/UISearchBar+Rx.swift @@ -49,7 +49,7 @@ extension UISearchBar { .map { a in return a[1] as? String ?? "" } - .startWith(text) + .startWith(elements: text) } let bindingObserver = UIBindingObserver(UIElement: self) { (searchBar, text: String) in @@ -70,7 +70,7 @@ extension UISearchBar { .map { a in return try castOrThrow(Int.self, a[1]) } - .startWith(index) + .startWith(elements: index) } let bindingObserver = UIBindingObserver(UIElement: self) { (searchBar, index: Int) in diff --git a/RxCocoa/iOS/UISearchController+Rx.swift b/RxCocoa/iOS/UISearchController+Rx.swift index d122e4d5..11bde04e 100644 --- a/RxCocoa/iOS/UISearchController+Rx.swift +++ b/RxCocoa/iOS/UISearchController+Rx.swift @@ -30,7 +30,7 @@ extension UISearchController { */ public var rx_didDismiss: Observable { return rx_delegate - .observe(selector: #selector(UISearchControllerDelegate.didDismiss(_:))) + .observe( #selector(UISearchControllerDelegate.didDismissSearchController(_:))) .map {_ in} } /** @@ -38,7 +38,7 @@ extension UISearchController { */ public var rx_didPresent: Observable { return rx_delegate - .observe(selector: #selector(UISearchControllerDelegate.didPresent(_:))) + .observe(#selector(UISearchControllerDelegate.didPresentSearchController(_:))) .map {_ in} } /** @@ -46,7 +46,7 @@ extension UISearchController { */ public var rx_present: Observable { return rx_delegate - .observe(selector: #selector(UISearchControllerDelegate.present(_:))) + .observe( #selector(UISearchControllerDelegate.presentSearchController(_:))) .map {_ in} } /** @@ -54,7 +54,7 @@ extension UISearchController { */ public var rx_willDismiss: Observable { return rx_delegate - .observe(selector: #selector(UISearchControllerDelegate.willDismiss(_:))) + .observe(#selector(UISearchControllerDelegate.willDismissSearchController(_:))) .map {_ in} } /** @@ -62,7 +62,7 @@ extension UISearchController { */ public var rx_willPresent: Observable { return rx_delegate - .observe(selector: #selector(UISearchControllerDelegate.willPresent(_:))) + .observe( #selector(UISearchControllerDelegate.willPresentSearchController(_:))) .map {_ in} } diff --git a/RxCocoa/iOS/UISegmentedControl+Rx.swift b/RxCocoa/iOS/UISegmentedControl+Rx.swift index 8d9db173..be46f4a7 100644 --- a/RxCocoa/iOS/UISegmentedControl+Rx.swift +++ b/RxCocoa/iOS/UISegmentedControl+Rx.swift @@ -21,7 +21,7 @@ extension UISegmentedControl { */ public var rx_value: ControlProperty { return UIControl.rx_value( - control: self, + self, getter: { segmentedControl in segmentedControl.selectedSegmentIndex }, setter: { segmentedControl, value in diff --git a/RxCocoa/iOS/UISlider+Rx.swift b/RxCocoa/iOS/UISlider+Rx.swift index 6b935ed8..2c02bd08 100644 --- a/RxCocoa/iOS/UISlider+Rx.swift +++ b/RxCocoa/iOS/UISlider+Rx.swift @@ -21,7 +21,7 @@ extension UISlider { */ public var rx_value: ControlProperty { return UIControl.rx_value( - control: self, + self, getter: { slider in slider.value }, setter: { slider, value in diff --git a/RxCocoa/iOS/UIStepper+Rx.swift b/RxCocoa/iOS/UIStepper+Rx.swift index 79e446c0..9dc40c5c 100644 --- a/RxCocoa/iOS/UIStepper+Rx.swift +++ b/RxCocoa/iOS/UIStepper+Rx.swift @@ -21,7 +21,7 @@ extension UIStepper { */ public var rx_value: ControlProperty { return UIControl.rx_value( - control: self, + self, getter: { stepper in stepper.value }, setter: { stepper, value in diff --git a/RxCocoa/iOS/UISwitch+Rx.swift b/RxCocoa/iOS/UISwitch+Rx.swift index bfc5b11f..c5971b09 100644 --- a/RxCocoa/iOS/UISwitch+Rx.swift +++ b/RxCocoa/iOS/UISwitch+Rx.swift @@ -23,9 +23,9 @@ extension UISwitch { return UIControl.rx_value( self, getter: { uiSwitch in - uiSwitch.on + uiSwitch.isOn }, setter: { uiSwitch, value in - uiSwitch.on = value + uiSwitch.isOn = value } ) } diff --git a/RxCocoa/iOS/UITableView+Rx.swift b/RxCocoa/iOS/UITableView+Rx.swift index 8b1472c1..3c3df16b 100644 --- a/RxCocoa/iOS/UITableView+Rx.swift +++ b/RxCocoa/iOS/UITableView+Rx.swift @@ -25,9 +25,9 @@ extension UITableView { - parameter cellFactory: Transform between sequence elements and view cells. - returns: Disposable object that can be used to unbind. */ - public func rx_itemsWithCellFactory - (source: O) - -> (cellFactory: (UITableView, Int, S.Generator.Element) -> UITableViewCell) + public func rx_itemsWithCellFactory + (_ source: O) + -> (cellFactory: (UITableView, Int, S.Iterator.Element) -> UITableViewCell) -> Disposable { return { cellFactory in let dataSource = RxTableViewReactiveArrayDataSourceSequenceWrapper(cellFactory: cellFactory) @@ -45,16 +45,16 @@ extension UITableView { - parameter cellType: Type of table view cell. - returns: Disposable object that can be used to unbind. */ - public func rx_itemsWithCellIdentifier - (cellIdentifier: String, cellType: Cell.Type = Cell.self) + public func rx_itemsWithCellIdentifier + (_ cellIdentifier: String, cellType: Cell.Type = Cell.self) -> (source: O) - -> (configureCell: (Int, S.Generator.Element, Cell) -> Void) + -> (configureCell: (Int, S.Iterator.Element, Cell) -> Void) -> Disposable { return { source in return { configureCell in let dataSource = RxTableViewReactiveArrayDataSourceSequenceWrapper { (tv, i, item) in - let indexPath = NSIndexPath(forItem: i, inSection: 0) - let cell = tv.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! Cell + let indexPath = IndexPath(item: i, section: 0) + let cell = tv.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! Cell configureCell(i, item, cell) return cell } @@ -74,7 +74,7 @@ extension UITableView { DataSource: protocol, O: ObservableType where DataSource.Element == O.E > - (dataSource: DataSource) + (_ dataSource: DataSource) -> (source: O) -> Disposable { return { source in @@ -125,7 +125,7 @@ extension UITableView { - parameter dataSource: Data source object. - returns: Disposable object that can be used to unbind the data source. */ - public func rx_setDataSource(dataSource: UITableViewDataSource) + public func rx_setDataSource(_ dataSource: UITableViewDataSource) -> Disposable { return RxTableViewDataSourceProxy.installForwardDelegate(dataSource, retainDelegate: false, onProxyForObject: self) } @@ -135,10 +135,10 @@ extension UITableView { /** Reactive wrapper for `delegate` message `tableView:didSelectRowAtIndexPath:`. */ - public var rx_itemSelected: ControlEvent { - let source = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:didSelectRowAtIndexPath:))) + public var rx_itemSelected: ControlEvent { + let source = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:didSelectRowAt:))) .map { a in - return try castOrThrow(NSIndexPath.self, a[1]) + return try castOrThrow(IndexPath.self, a[1]) } return ControlEvent(events: source) @@ -147,10 +147,10 @@ extension UITableView { /** Reactive wrapper for `delegate` message `tableView:didDeselectRowAtIndexPath:`. */ - public var rx_itemDeselected: ControlEvent { - let source = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:didDeselectRowAtIndexPath:))) + public var rx_itemDeselected: ControlEvent { + let source = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:didDeselectRowAt:))) .map { a in - return try castOrThrow(NSIndexPath.self, a[1]) + return try castOrThrow(IndexPath.self, a[1]) } return ControlEvent(events: source) @@ -159,10 +159,10 @@ extension UITableView { /** Reactive wrapper for `delegate` message `tableView:accessoryButtonTappedForRowWithIndexPath:`. */ - public var rx_itemAccessoryButtonTapped: ControlEvent { - let source: Observable = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:accessoryButtonTappedForRowWithIndexPath:))) + public var rx_itemAccessoryButtonTapped: ControlEvent { + let source: Observable = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:accessoryButtonTappedForRowWith:))) .map { a in - return try castOrThrow(NSIndexPath.self, a[1]) + return try castOrThrow(IndexPath.self, a[1]) } return ControlEvent(events: source) @@ -171,13 +171,13 @@ extension UITableView { /** Reactive wrapper for `delegate` message `tableView:commitEditingStyle:forRowAtIndexPath:`. */ - public var rx_itemInserted: ControlEvent { - let source = rx_dataSource.observe(#selector(UITableViewDataSource.tableView(_:commitEditingStyle:forRowAtIndexPath:))) + public var rx_itemInserted: ControlEvent { + let source = rx_dataSource.observe(#selector(UITableViewDataSource.tableView(_:commit:forRowAt:))) .filter { a in - return UITableViewCellEditingStyle(rawValue: (try castOrThrow(NSNumber.self, a[1])).integerValue) == .Insert + return UITableViewCellEditingStyle(rawValue: (try castOrThrow(NSNumber.self, a[1])).intValue) == .insert } .map { a in - return (try castOrThrow(NSIndexPath.self, a[2])) + return (try castOrThrow(IndexPath.self, a[2])) } return ControlEvent(events: source) @@ -186,13 +186,13 @@ extension UITableView { /** Reactive wrapper for `delegate` message `tableView:commitEditingStyle:forRowAtIndexPath:`. */ - public var rx_itemDeleted: ControlEvent { - let source = rx_dataSource.observe(#selector(UITableViewDataSource.tableView(_:commitEditingStyle:forRowAtIndexPath:))) + public var rx_itemDeleted: ControlEvent { + let source = rx_dataSource.observe(#selector(UITableViewDataSource.tableView(_:commit:forRowAt:))) .filter { a in - return UITableViewCellEditingStyle(rawValue: (try castOrThrow(NSNumber.self, a[1])).integerValue) == .Delete + return UITableViewCellEditingStyle(rawValue: (try castOrThrow(NSNumber.self, a[1])).intValue) == .delete } .map { a in - return try castOrThrow(NSIndexPath.self, a[2]) + return try castOrThrow(IndexPath.self, a[2]) } return ControlEvent(events: source) @@ -202,9 +202,9 @@ extension UITableView { Reactive wrapper for `delegate` message `tableView:moveRowAtIndexPath:toIndexPath:`. */ public var rx_itemMoved: ControlEvent { - let source: Observable = rx_dataSource.observe(#selector(UITableViewDataSource.tableView(_:moveRowAtIndexPath:toIndexPath:))) + let source: Observable = rx_dataSource.observe(#selector(UITableViewDataSource.tableView(_:moveRowAt:to:))) .map { a in - return (try castOrThrow(NSIndexPath.self, a[1]), try castOrThrow(NSIndexPath.self, a[2])) + return (try castOrThrow(IndexPath.self, a[1]), try castOrThrow(IndexPath.self, a[2])) } return ControlEvent(events: source) @@ -214,9 +214,9 @@ extension UITableView { Reactive wrapper for `delegate` message `tableView:willDisplayCell:forRowAtIndexPath:`. */ public var rx_willDisplayCell: ControlEvent { - let source: Observable = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:willDisplayCell:forRowAtIndexPath:))) + let source: Observable = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:willDisplay:forRowAt:))) .map { a in - return (try castOrThrow(UITableViewCell.self, a[1]), try castOrThrow(NSIndexPath.self, a[2])) + return (try castOrThrow(UITableViewCell.self, a[1]), try castOrThrow(IndexPath.self, a[2])) } return ControlEvent(events: source) @@ -226,9 +226,9 @@ extension UITableView { Reactive wrapper for `delegate` message `tableView:didEndDisplayingCell:forRowAtIndexPath:`. */ public var rx_didEndDisplayingCell: ControlEvent { - let source: Observable = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:didEndDisplayingCell:forRowAtIndexPath:))) + let source: Observable = rx_delegate.observe(#selector(UITableViewDelegate.tableView(_:didEndDisplaying:forRowAt:))) .map { a in - return (try castOrThrow(UITableViewCell.self, a[1]), try castOrThrow(NSIndexPath.self, a[2])) + return (try castOrThrow(UITableViewCell.self, a[1]), try castOrThrow(IndexPath.self, a[2])) } return ControlEvent(events: source) @@ -245,7 +245,7 @@ extension UITableView { .map { ... ``` */ - public func rx_modelSelected(modelType: T.Type) -> ControlEvent { + public func rx_modelSelected(_ modelType: T.Type) -> ControlEvent { let source: Observable = rx_itemSelected.flatMap { [weak self] indexPath -> Observable in guard let view = self else { return Observable.empty() @@ -268,7 +268,7 @@ extension UITableView { .map { ... ``` */ - public func rx_modelDeselected(modelType: T.Type) -> ControlEvent { + public func rx_modelDeselected(_ modelType: T.Type) -> ControlEvent { let source: Observable = rx_itemDeselected.flatMap { [weak self] indexPath -> Observable in guard let view = self else { return Observable.empty() @@ -283,7 +283,7 @@ extension UITableView { /** Synchronous helper method for retrieving a model at indexPath through a reactive data source. */ - public func rx_modelAtIndexPath(indexPath: NSIndexPath) throws -> T { + public func rx_modelAtIndexPath(_ indexPath: IndexPath) throws -> T { let dataSource: SectionedViewDataSourceType = castOrFatalError(self.rx_dataSource.forwardToDelegate(), message: "This method only works in case one of the `rx_items*` methods was used.") let element = try dataSource.modelAtIndexPath(indexPath) diff --git a/RxCocoa/iOS/UITextView+Rx.swift b/RxCocoa/iOS/UITextView+Rx.swift index 30a853f1..8ebf79a8 100644 --- a/RxCocoa/iOS/UITextView+Rx.swift +++ b/RxCocoa/iOS/UITextView+Rx.swift @@ -42,7 +42,7 @@ extension UITextView : RxTextInput { // This observe on is here because text storage // will emit event while process is not completely done, // so rebinding a value will cause an exception to be thrown. - .observeOn(scheduler: MainScheduler.asyncInstance) + .observeOn(MainScheduler.asyncInstance) .map { _ in return self?.textStorage.string ?? "" } diff --git a/RxCocoa/iOS/UIView+Rx.swift b/RxCocoa/iOS/UIView+Rx.swift index ea0ee82b..7a451782 100644 --- a/RxCocoa/iOS/UIView+Rx.swift +++ b/RxCocoa/iOS/UIView+Rx.swift @@ -20,7 +20,7 @@ extension UIView { */ public var rx_hidden: AnyObserver { return UIBindingObserver(UIElement: self) { view, hidden in - view.hidden = hidden + view.isHidden = hidden }.asObserver() } diff --git a/RxExample/RxExample.xcodeproj/project.pbxproj b/RxExample/RxExample.xcodeproj/project.pbxproj index 1448d4c8..76a70222 100644 --- a/RxExample/RxExample.xcodeproj/project.pbxproj +++ b/RxExample/RxExample.xcodeproj/project.pbxproj @@ -916,7 +916,7 @@ C8CC3EB01C95CB5300ABA17E /* RxTextViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxTextViewDelegateProxy.swift; sourceTree = ""; }; C8CC3EB11C95CB5300ABA17E /* UIActivityIndicatorView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIActivityIndicatorView+Rx.swift"; sourceTree = ""; }; C8CC3EB21C95CB5300ABA17E /* UIApplication+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIApplication+Rx.swift"; sourceTree = ""; }; - C8CC3EB31C95CB5300ABA17E /* UIBarButtonItem+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIBarButtonItem+Rx.swift"; sourceTree = ""; }; + C8CC3EB31C95CB5300ABA17E /* UIBarButtonItem+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIBarButtonItem+Rx.swift"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; C8CC3EB41C95CB5300ABA17E /* UIButton+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIButton+Rx.swift"; sourceTree = ""; }; C8CC3EB51C95CB5300ABA17E /* UICollectionView+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UICollectionView+Rx.swift"; sourceTree = ""; }; C8CC3EB61C95CB5300ABA17E /* UIControl+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIControl+Rx.swift"; sourceTree = ""; }; diff --git a/RxSwift/AnyObserver.swift b/RxSwift/AnyObserver.swift index 88a8440e..770680df 100644 --- a/RxSwift/AnyObserver.swift +++ b/RxSwift/AnyObserver.swift @@ -49,7 +49,7 @@ public struct AnyObserver : ObserverType { - parameter event: Event instance. */ - public func on(event: Event) { + public func on(_ event: Event) { return self.observer(event) } @@ -72,4 +72,4 @@ extension ObserverType { public func asObserver() -> AnyObserver { return AnyObserver(self) } -} \ No newline at end of file +} diff --git a/RxSwift/Concurrency/AsyncLock.swift b/RxSwift/Concurrency/AsyncLock.swift index 8a977538..c534678a 100644 --- a/RxSwift/Concurrency/AsyncLock.swift +++ b/RxSwift/Concurrency/AsyncLock.swift @@ -41,14 +41,14 @@ class AsyncLock } // } - private func enqueue(action: I) -> I? { + private func enqueue(_ action: I) -> I? { _lock.lock(); defer { _lock.unlock() } // { if _hasFaulted { return nil } if _isExecuting { - _queue.enqueue(element: action) + _queue.enqueue(action) return nil } @@ -70,8 +70,8 @@ class AsyncLock // } } - func invoke(action: I) { - let firstEnqueuedAction = enqueue(action: action) + func invoke(_ action: I) { + let firstEnqueuedAction = enqueue(action) if let firstEnqueuedAction = firstEnqueuedAction { firstEnqueuedAction.invoke() diff --git a/RxSwift/Concurrency/Lock.swift b/RxSwift/Concurrency/Lock.swift index d1632f1c..a330c5fe 100644 --- a/RxSwift/Concurrency/Lock.swift +++ b/RxSwift/Concurrency/Lock.swift @@ -59,21 +59,21 @@ protocol Lock { #else // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html - typealias SpinLock = NSRecursiveLock + typealias SpinLock = RecursiveLock #endif -extension NSRecursiveLock : Lock { - func performLocked(@noescape action: () -> Void) { +extension RecursiveLock : Lock { + func performLocked( _ action: @noescape() -> Void) { lock(); defer { unlock() } action() } - func calculateLocked(@noescape action: () -> T) -> T { + func calculateLocked( _ action: @noescape() -> T) -> T { lock(); defer { unlock() } return action() } - func calculateLockedOrFail(@noescape action: () throws -> T) throws -> T { + func calculateLockedOrFail( _ action: @noescape() throws -> T) throws -> T { lock(); defer { unlock() } let result = try action() return result diff --git a/RxSwift/Concurrency/LockOwnerType.swift b/RxSwift/Concurrency/LockOwnerType.swift index b11fcaa8..0b50d8a7 100644 --- a/RxSwift/Concurrency/LockOwnerType.swift +++ b/RxSwift/Concurrency/LockOwnerType.swift @@ -9,7 +9,7 @@ import Foundation protocol LockOwnerType : class, Lock { - var _lock: NSRecursiveLock { get } + var _lock: RecursiveLock { get } } extension LockOwnerType { @@ -20,4 +20,4 @@ extension LockOwnerType { func unlock() { _lock.unlock() } -} \ No newline at end of file +} diff --git a/RxSwift/Concurrency/SynchronizedOnType.swift b/RxSwift/Concurrency/SynchronizedOnType.swift index dcd601bc..366253ec 100644 --- a/RxSwift/Concurrency/SynchronizedOnType.swift +++ b/RxSwift/Concurrency/SynchronizedOnType.swift @@ -9,12 +9,12 @@ import Foundation protocol SynchronizedOnType : class, ObserverType, Lock { - func _synchronized_on(event: Event) + func _synchronized_on(_ event: Event) } extension SynchronizedOnType { - func synchronizedOn(event: Event) { + func synchronizedOn(_ event: Event) { lock(); defer { unlock() } - _synchronized_on(event: event) + _synchronized_on(event) } -} \ No newline at end of file +} diff --git a/RxSwift/Concurrency/SynchronizedSubscribeType.swift b/RxSwift/Concurrency/SynchronizedSubscribeType.swift index 2aedc2f2..d45f7953 100644 --- a/RxSwift/Concurrency/SynchronizedSubscribeType.swift +++ b/RxSwift/Concurrency/SynchronizedSubscribeType.swift @@ -9,12 +9,12 @@ import Foundation protocol SynchronizedSubscribeType : class, ObservableType, Lock { - func _synchronized_subscribe(observer: O) -> Disposable + func _synchronized_subscribe(_ observer: O) -> Disposable } extension SynchronizedSubscribeType { - func synchronizedSubscribe(observer: O) -> Disposable { + func synchronizedSubscribe(_ observer: O) -> Disposable { lock(); defer { unlock() } - return _synchronized_subscribe(observer: observer) + return _synchronized_subscribe(observer) } -} \ No newline at end of file +} diff --git a/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift b/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift index 4f41cb89..ce5deda6 100644 --- a/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift +++ b/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift @@ -11,5 +11,5 @@ import Foundation protocol SynchronizedUnsubscribeType : class { associatedtype DisposeKey - func synchronizedUnsubscribe(disposeKey: DisposeKey) -} \ No newline at end of file + func synchronizedUnsubscribe(_ disposeKey: DisposeKey) +} diff --git a/RxSwift/DataStructures/Bag.swift b/RxSwift/DataStructures/Bag.swift index 2b60aa29..1073251a 100644 --- a/RxSwift/DataStructures/Bag.swift +++ b/RxSwift/DataStructures/Bag.swift @@ -19,7 +19,7 @@ class Identity { var _forceAllocation: Int32 = 0 } -func hash(_x: Int) -> Int { +func hash(_ _x: Int) -> Int { var x = _x x = ((x >> 16) ^ x) &* 0x45d9f3b x = ((x >> 16) ^ x) &* 0x45d9f3b @@ -36,10 +36,10 @@ public struct BagKey : Hashable { public var hashValue: Int { if let uniqueIdentity = uniqueIdentity { - return hash(_x: key) ^ (unsafeAddress(of: uniqueIdentity).hashValue) + return hash(key) ^ (unsafeAddress(of: uniqueIdentity).hashValue) } else { - return hash(_x: key) + return hash(key) } } } @@ -102,7 +102,7 @@ public struct Bag : CustomDebugStringConvertible { - parameter element: Element to insert. - returns: Key that can be used to remove element from bag. */ - public mutating func insert(element: T) -> BagKey { + public mutating func insert(_ element: T) -> BagKey { _nextKey = _nextKey &+ 1 #if DEBUG @@ -174,7 +174,7 @@ public struct Bag : CustomDebugStringConvertible { - parameter key: Key that identifies element to remove from bag. - returns: Element that bag contained, or nil in case element was already removed. */ - public mutating func removeKey(key: BagKey) -> T? { + public mutating func removeKey(_ key: BagKey) -> T? { if _key0 == key { _key0 = nil let value = _value0! @@ -223,7 +223,7 @@ extension Bag { - parameter action: Enumeration closure. */ - public func forEach(action: @noescape (T) -> Void) { + public func forEach(_ action: @noescape (T) -> Void) { if _onlyFastPath { if let value0 = _value0 { action(value0) @@ -262,9 +262,9 @@ extension Bag where T: ObserverType { - parameter action: Enumeration closure. */ - public func on(event: Event) { + public func on(_ event: Event) { if _onlyFastPath { - _value0?.on(event: event) + _value0?.on(event) return } @@ -274,20 +274,20 @@ extension Bag where T: ObserverType { let dictionary = _dictionary if let value0 = value0 { - value0.on(event: event) + value0.on(event) } if let value1 = value1 { - value1.on(event: event) + value1.on(event) } for i in 0 ..< pairs.count { - pairs[i].value.on(event: event) + pairs[i].value.on(event) } if dictionary?.count ?? 0 > 0 { for element in dictionary!.values { - element.on(event: event) + element.on(event) } } } @@ -296,7 +296,7 @@ extension Bag where T: ObserverType { /** Dispatches `dispose` to all disposables contained inside bag. */ -public func disposeAllIn(bag: Bag) { +public func disposeAllIn(_ bag: Bag) { if bag._onlyFastPath { bag._value0?.dispose() return diff --git a/RxSwift/DataStructures/PriorityQueue.swift b/RxSwift/DataStructures/PriorityQueue.swift index ef6fb2e5..704e3244 100644 --- a/RxSwift/DataStructures/PriorityQueue.swift +++ b/RxSwift/DataStructures/PriorityQueue.swift @@ -16,9 +16,9 @@ struct PriorityQueue { _hasHigherPriority = hasHigherPriority } - mutating func enqueue(element: Element) { + mutating func enqueue(_ element: Element) { _elements.append(element) - bubbleToHigherPriority(initialUnbalancedIndex: _elements.count - 1) + bubbleToHigherPriority(_elements.count - 1) } func peek() -> Element? { @@ -34,21 +34,21 @@ struct PriorityQueue { return nil } - removeAt(index: 0) + removeAt(0) return front } - mutating func remove(element: Element) { + mutating func remove(_ element: Element) { for i in 0 ..< _elements.count { if _elements[i] === element { - removeAt(index: i) + removeAt(i) return } } } - private mutating func removeAt(index: Int) { + private mutating func removeAt(_ index: Int) { let removingLast = index == _elements.count - 1 if !removingLast { swap(&_elements[index], &_elements[_elements.count - 1]) @@ -57,12 +57,12 @@ struct PriorityQueue { _ = _elements.popLast() if !removingLast { - bubbleToHigherPriority(initialUnbalancedIndex: index) - bubbleToLowerPriority(initialUnbalancedIndex: index) + bubbleToHigherPriority(index) + bubbleToLowerPriority(index) } } - private mutating func bubbleToHigherPriority(initialUnbalancedIndex: Int) { + private mutating func bubbleToHigherPriority(_ initialUnbalancedIndex: Int) { precondition(initialUnbalancedIndex >= 0) precondition(initialUnbalancedIndex < _elements.count) @@ -82,7 +82,7 @@ struct PriorityQueue { } } - private mutating func bubbleToLowerPriority(initialUnbalancedIndex: Int) { + private mutating func bubbleToLowerPriority(_ initialUnbalancedIndex: Int) { precondition(initialUnbalancedIndex >= 0) precondition(initialUnbalancedIndex < _elements.count) diff --git a/RxSwift/DataStructures/Queue.swift b/RxSwift/DataStructures/Queue.swift index 9dd96822..a82a6ab1 100644 --- a/RxSwift/DataStructures/Queue.swift +++ b/RxSwift/DataStructures/Queue.swift @@ -68,7 +68,7 @@ public struct Queue: Sequence { return _storage[dequeueIndex]! } - mutating private func resizeTo(size: Int) { + mutating private func resizeTo(_ size: Int) { var newStorage = ContiguousArray(repeating: nil, count: size) let count = _count @@ -94,9 +94,9 @@ public struct Queue: Sequence { - parameter element: Element to enqueue. */ - public mutating func enqueue(element: T) { + public mutating func enqueue(_ element: T) { if count == _storage.count { - resizeTo(size: Swift.max(_storage.count, 1) * _resizeFactor) + resizeTo(Swift.max(_storage.count, 1) * _resizeFactor) } _storage[_pushNextIndex] = element @@ -134,7 +134,7 @@ public struct Queue: Sequence { defer { let downsizeLimit = _storage.count / (_resizeFactor * _resizeFactor) if _count < downsizeLimit && downsizeLimit >= _initialCapacity { - resizeTo(size: _storage.count / _resizeFactor) + resizeTo(_storage.count / _resizeFactor) } } diff --git a/RxSwift/Disposables/CompositeDisposable.swift b/RxSwift/Disposables/CompositeDisposable.swift index 68069c16..10bdd313 100644 --- a/RxSwift/Disposables/CompositeDisposable.swift +++ b/RxSwift/Disposables/CompositeDisposable.swift @@ -32,8 +32,8 @@ public class CompositeDisposable : DisposeBase, Disposable, Cancelable { */ public init(_ disposable1: Disposable, _ disposable2: Disposable) { // This overload is here to make sure we are using optimized version up to 4 arguments. - _disposables!.insert(disposable1) - _disposables!.insert(disposable2) + let _ = _disposables!.insert(disposable1) + let _ = _disposables!.insert(disposable2) } /** @@ -41,9 +41,9 @@ public class CompositeDisposable : DisposeBase, Disposable, Cancelable { */ public init(_ disposable1: Disposable, _ disposable2: Disposable, _ disposable3: Disposable) { // This overload is here to make sure we are using optimized version up to 4 arguments. - _disposables!.insert(disposable1) - _disposables!.insert(disposable2) - _disposables!.insert(disposable3) + let _ = _disposables!.insert(disposable1) + let _ = _disposables!.insert(disposable2) + let _ = _disposables!.insert(disposable3) } /** @@ -51,13 +51,13 @@ public class CompositeDisposable : DisposeBase, Disposable, Cancelable { */ public init(_ disposable1: Disposable, _ disposable2: Disposable, _ disposable3: Disposable, _ disposable4: Disposable, _ disposables: Disposable...) { // This overload is here to make sure we are using optimized version up to 4 arguments. - _disposables!.insert(disposable1) - _disposables!.insert(disposable2) - _disposables!.insert(disposable3) - _disposables!.insert(disposable4) + let _ = _disposables!.insert(disposable1) + let _ = _disposables!.insert(disposable2) + let _ = _disposables!.insert(disposable3) + let _ = _disposables!.insert(disposable4) for disposable in disposables { - _disposables!.insert(disposable) + let _ = _disposables!.insert(disposable) } } @@ -66,7 +66,7 @@ public class CompositeDisposable : DisposeBase, Disposable, Cancelable { */ public init(disposables: [Disposable]) { for disposable in disposables { - _disposables!.insert(disposable) + let _ = _disposables!.insert(disposable) } } @@ -77,7 +77,7 @@ public class CompositeDisposable : DisposeBase, Disposable, Cancelable { - returns: Key that can be used to remove disposable from composite disposable. In case dispose bag was already disposed `nil` will be returned. */ - public func addDisposable(disposable: Disposable) -> DisposeKey? { + public func addDisposable(_ disposable: Disposable) -> DisposeKey? { let key = _addDisposable(disposable) if key == nil { @@ -87,7 +87,7 @@ public class CompositeDisposable : DisposeBase, Disposable, Cancelable { return key } - private func _addDisposable(disposable: Disposable) -> DisposeKey? { + private func _addDisposable(_ disposable: Disposable) -> DisposeKey? { _lock.lock(); defer { _lock.unlock() } return _disposables?.insert(disposable) @@ -106,11 +106,11 @@ public class CompositeDisposable : DisposeBase, Disposable, Cancelable { - parameter disposeKey: Key used to identify disposable to be removed. */ - public func removeDisposable(disposeKey: DisposeKey) { + public func removeDisposable(_ disposeKey: DisposeKey) { _removeDisposable(disposeKey)?.dispose() } - private func _removeDisposable(disposeKey: DisposeKey) -> Disposable? { + private func _removeDisposable(_ disposeKey: DisposeKey) -> Disposable? { _lock.lock(); defer { _lock.unlock() } return _disposables?.removeKey(disposeKey) } @@ -132,4 +132,4 @@ public class CompositeDisposable : DisposeBase, Disposable, Cancelable { return disposeBag } -} \ No newline at end of file +} diff --git a/RxSwift/Disposables/DisposeBag.swift b/RxSwift/Disposables/DisposeBag.swift index 23ca61ab..3d9ed244 100644 --- a/RxSwift/Disposables/DisposeBag.swift +++ b/RxSwift/Disposables/DisposeBag.swift @@ -14,8 +14,8 @@ extension Disposable { - parameter bag: `DisposeBag` to add `self` to. */ - public func addDisposableTo(bag: DisposeBag) { - bag.addDisposable(disposable: self) + public func addDisposableTo(_ bag: DisposeBag) { + bag.addDisposable(self) } } @@ -51,11 +51,11 @@ public class DisposeBag: DisposeBase { - parameter disposable: Disposable to add. */ - public func addDisposable(disposable: Disposable) { - _addDisposable(disposable: disposable)?.dispose() + public func addDisposable(_ disposable: Disposable) { + _addDisposable(disposable)?.dispose() } - private func _addDisposable(disposable: Disposable) -> Disposable? { + private func _addDisposable(_ disposable: Disposable) -> Disposable? { _lock.lock(); defer { _lock.unlock() } if _disposed { return disposable @@ -91,4 +91,4 @@ public class DisposeBag: DisposeBase { deinit { dispose() } -} \ No newline at end of file +} diff --git a/RxSwift/Disposables/DisposeBase.swift b/RxSwift/Disposables/DisposeBase.swift index 53c43282..16da27ce 100644 --- a/RxSwift/Disposables/DisposeBase.swift +++ b/RxSwift/Disposables/DisposeBase.swift @@ -14,13 +14,13 @@ Base class for all disposables. public class DisposeBase { init() { #if TRACE_RESOURCES - AtomicIncrement(&resourceCount) + let _ = AtomicIncrement(&resourceCount) #endif } deinit { #if TRACE_RESOURCES - AtomicDecrement(&resourceCount) + let _ = AtomicDecrement(&resourceCount) #endif } -} \ No newline at end of file +} diff --git a/RxSwift/Disposables/RefCountDisposable.swift b/RxSwift/Disposables/RefCountDisposable.swift index 044f1a70..0c1ef133 100644 --- a/RxSwift/Disposables/RefCountDisposable.swift +++ b/RxSwift/Disposables/RefCountDisposable.swift @@ -43,7 +43,7 @@ public class RefCountDisposable : DisposeBase, Cancelable { if let _ = _disposable { do { - try incrementChecked(i: &_count) + let _ = try incrementChecked(&_count) } catch (_) { rxFatalError("RefCountDisposable increment failed") } @@ -83,7 +83,7 @@ public class RefCountDisposable : DisposeBase, Cancelable { let oldDisposable: Disposable? = _lock.calculateLocked { if let oldDisposable = _disposable { do { - try decrementChecked(i: &_count) + let _ = try decrementChecked(&_count) } catch (_) { rxFatalError("RefCountDisposable decrement on release failed") } diff --git a/RxSwift/Disposables/ScheduledDisposable.swift b/RxSwift/Disposables/ScheduledDisposable.swift index 277f3989..7e13f18f 100644 --- a/RxSwift/Disposables/ScheduledDisposable.swift +++ b/RxSwift/Disposables/ScheduledDisposable.swift @@ -46,7 +46,7 @@ public class ScheduledDisposable : Cancelable { Disposes the wrapped disposable on the provided scheduler. */ public func dispose() { - scheduler.schedule(state: self, action: disposeScheduledDisposable) + let _ = scheduler.schedule(self, action: disposeScheduledDisposable) } func disposeInner() { diff --git a/RxSwift/Disposables/SingleAssignmentDisposable.swift b/RxSwift/Disposables/SingleAssignmentDisposable.swift index eecceba8..a18ad82b 100644 --- a/RxSwift/Disposables/SingleAssignmentDisposable.swift +++ b/RxSwift/Disposables/SingleAssignmentDisposable.swift @@ -46,11 +46,11 @@ public class SingleAssignmentDisposable : DisposeBase, Disposable, Cancelable { return _disposable ?? NopDisposable.instance } set { - _setDisposable(newValue: newValue)?.dispose() + _setDisposable(newValue)?.dispose() } } - private func _setDisposable(newValue: Disposable) -> Disposable? { + private func _setDisposable(_ newValue: Disposable) -> Disposable? { _lock.lock(); defer { _lock.unlock() } if _disposableSet { rxFatalError("oldState.disposable != nil") diff --git a/RxSwift/Disposables/SubscriptionDisposable.swift b/RxSwift/Disposables/SubscriptionDisposable.swift index 565613a8..64610d25 100644 --- a/RxSwift/Disposables/SubscriptionDisposable.swift +++ b/RxSwift/Disposables/SubscriptionDisposable.swift @@ -18,6 +18,6 @@ struct SubscriptionDisposable : Disposable { } func dispose() { - _owner?.synchronizedUnsubscribe(disposeKey: _key) + _owner?.synchronizedUnsubscribe(_key) } -} \ No newline at end of file +} diff --git a/RxSwift/Errors.swift b/RxSwift/Errors.swift index 57ea7c33..237d6a5a 100644 --- a/RxSwift/Errors.swift +++ b/RxSwift/Errors.swift @@ -20,31 +20,31 @@ public enum RxError /** Unknown error occured. */ - case Unknown + case unknown /** Performing an action on disposed object. */ - case Disposed(object: AnyObject) + case disposed(object: AnyObject) /** Aritmetic overflow error. */ - case Overflow + case overflow /** Argument out of range error. */ - case ArgumentOutOfRange + case argumentOutOfRange /** Sequence doesn't contain any elements. */ - case NoElements + case noElements /** Sequence contains more than one element. */ - case MoreThanOneElement + case moreThanOneElement /** Timeout error. */ - case Timeout + case timeout } public extension RxError { @@ -53,20 +53,20 @@ public extension RxError { */ public var debugDescription: String { switch self { - case .Unknown: + case .unknown: return "Unknown error occured." - case .Disposed(let object): + case .disposed(let object): return "Object `\(object)` was already disposed." - case .Overflow: + case .overflow: return "Arithmetic overflow occured." - case .ArgumentOutOfRange: + case .argumentOutOfRange: return "Argument out of range." - case .NoElements: + case .noElements: return "Sequence doesn't contain any elements." - case .MoreThanOneElement: + case .moreThanOneElement: return "Sequence contains more than one element." - case .Timeout: + case .timeout: return "Sequence timeout." } } -} \ No newline at end of file +} diff --git a/RxSwift/Event.swift b/RxSwift/Event.swift index 46e5f1b1..1c8c6d0d 100644 --- a/RxSwift/Event.swift +++ b/RxSwift/Event.swift @@ -16,24 +16,24 @@ Next\* (Error | Completed) */ public enum Event { /// Next element is produced. - case Next(Element) + case next(Element) /// Sequence terminated with an error. - case Error(ErrorType) + case error(ErrorProtocol) /// Sequence completed successfully. - case Completed + case completed } extension Event : CustomDebugStringConvertible { /// - returns: Description of event. public var debugDescription: String { switch self { - case .Next(let value): + case .next(let value): return "Next(\(value))" - case .Error(let error): + case .error(let error): return "Error(\(error))" - case .Completed: + case .completed: return "Completed" } } @@ -43,22 +43,22 @@ extension Event { /// - returns: Is `Completed` or `Error` event. public var isStopEvent: Bool { switch self { - case .Next: return false - case .Error, .Completed: return true + case .next: return false + case .error, .completed: return true } } /// - returns: If `Next` event, returns element value. public var element: Element? { - if case .Next(let value) = self { + if case .next(let value) = self { return value } return nil } /// - returns: If `Error` event, returns error. - public var error: ErrorType? { - if case .Error(let error) = self { + public var error: ErrorProtocol? { + if case .error(let error) = self { return error } return nil diff --git a/RxSwift/Extensions/String+Rx.swift b/RxSwift/Extensions/String+Rx.swift index 430fc3a3..b794766e 100644 --- a/RxSwift/Extensions/String+Rx.swift +++ b/RxSwift/Extensions/String+Rx.swift @@ -12,10 +12,10 @@ extension String { /** This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)` */ - func lastIndexOf(character: Character) -> Index? { + func lastIndexOf(_ character: Character) -> Index? { var index = endIndex while index > startIndex { - index = index.predecessor() + index = self.index(before: index) if self[index] == character { return index } @@ -23,4 +23,4 @@ extension String { return nil } -} \ No newline at end of file +} diff --git a/RxSwift/ImmediateSchedulerType.swift b/RxSwift/ImmediateSchedulerType.swift index 29633d1c..536c6d45 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: (StateType) -> Disposable) -> Disposable } extension ImmediateSchedulerType { @@ -30,10 +30,10 @@ 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: (state: State, recurse: (State) -> ()) -> ()) -> Disposable { let recursiveScheduler = RecursiveImmediateScheduler(action: action, scheduler: self) - recursiveScheduler.schedule(state: state) + recursiveScheduler.schedule(state) return AnonymousDisposable(recursiveScheduler.dispose) } diff --git a/RxSwift/Observable+Extensions.swift b/RxSwift/Observable+Extensions.swift index 54e3f191..0ab1e39a 100644 --- a/RxSwift/Observable+Extensions.swift +++ b/RxSwift/Observable+Extensions.swift @@ -16,12 +16,12 @@ extension ObservableType { - returns: Subscription object used to unsubscribe from the observable sequence. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func subscribe(on: (event: Event) -> Void) + public func subscribe(_ on: (event: Event) -> Void) -> Disposable { let observer = AnonymousObserver { e in on(event: e) } - return self.subscribeSafe(observer: observer) + return self.subscribeSafe(observer) } /** @@ -35,7 +35,7 @@ extension ObservableType { - returns: Subscription object used to unsubscribe from the observable sequence. */ @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: ((ErrorProtocol) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil) -> Disposable { let disposable: Disposable @@ -49,18 +49,18 @@ extension ObservableType { let observer = AnonymousObserver { e in switch e { - case .Next(let value): + case .next(let value): onNext?(value) - case .Error(let e): + case .error(let e): onError?(e) disposable.dispose() - case .Completed: + case .completed: onCompleted?() disposable.dispose() } } return BinaryDisposable( - self.subscribeSafe(observer: observer), + self.subscribeSafe(observer), disposable ) } @@ -72,14 +72,14 @@ extension ObservableType { - returns: Subscription object used to unsubscribe from the observable sequence. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func subscribeNext(onNext: (E) -> Void) + public func subscribeNext(_ onNext: (E) -> Void) -> Disposable { let observer = AnonymousObserver { e in - if case .Next(let value) = e { + if case .next(let value) = e { onNext(value) } } - return self.subscribeSafe(observer: observer) + return self.subscribeSafe(observer) } /** @@ -89,14 +89,14 @@ extension ObservableType { - returns: Subscription object used to unsubscribe from the observable sequence. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func subscribeError(onError: (ErrorProtocol) -> Void) + public func subscribeError(_ onError: (ErrorProtocol) -> Void) -> Disposable { let observer = AnonymousObserver { e in - if case .Error(let error) = e { + if case .error(let error) = e { onError(error) } } - return self.subscribeSafe(observer: observer) + return self.subscribeSafe(observer) } /** @@ -106,14 +106,14 @@ extension ObservableType { - returns: Subscription object used to unsubscribe from the observable sequence. */ @warn_unused_result(message: "http://git.io/rxs.ud") - public func subscribeCompleted(onCompleted: () -> Void) + public func subscribeCompleted(_ onCompleted: () -> Void) -> Disposable { let observer = AnonymousObserver { e in - if case .Completed = e { + if case .completed = e { onCompleted() } } - return self.subscribeSafe(observer: observer) + return self.subscribeSafe(observer) } } @@ -122,7 +122,7 @@ public extension ObservableType { All internal subscribe calls go through this method. */ @warn_unused_result(message: "http://git.io/rxs.ud") - func subscribeSafe(observer: O) -> Disposable { - return self.asObservable().subscribe(observer: observer) + func subscribeSafe(_ observer: O) -> Disposable { + return self.asObservable().subscribe(observer) } } diff --git a/RxSwift/Observable.swift b/RxSwift/Observable.swift index 9cc9da65..233623eb 100644 --- a/RxSwift/Observable.swift +++ b/RxSwift/Observable.swift @@ -25,7 +25,7 @@ public class Observable : ObservableType { #endif } - public func subscribe(observer: O) -> Disposable { + public func subscribe(_ observer: O) -> Disposable { abstractMethod() } @@ -35,7 +35,7 @@ public class Observable : ObservableType { deinit { #if TRACE_RESOURCES - AtomicDecrement(&resourceCount) + let _ = AtomicDecrement(&resourceCount) #endif } @@ -45,7 +45,7 @@ public class Observable : ObservableType { /** Optimizations for map operator */ - internal func composeMap(selector: (Element) throws -> R) -> Observable { + internal func composeMap(_ selector: (Element) throws -> R) -> Observable { return Map(source: self, selector: selector) } } diff --git a/RxSwift/ObservableType.swift b/RxSwift/ObservableType.swift index a3918b89..ae097ef6 100644 --- a/RxSwift/ObservableType.swift +++ b/RxSwift/ObservableType.swift @@ -41,7 +41,7 @@ public protocol ObservableType : ObservableConvertibleType { - returns: Subscription for `observer` that can be used to cancel production of sequence elements and free resources. */ @warn_unused_result(message: "http://git.io/rxs.ud") - func subscribe(observer: O) -> Disposable + func subscribe(_ observer: O) -> Disposable } @@ -50,12 +50,12 @@ extension ObservableType { /** Default implementation of converting `ObservableType` to `Observable`. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func asObservable() -> Observable { // temporary workaround //return Observable.create(subscribe: self.subscribe) return Observable.create { o in - return self.subscribe(observer: o) + return self.subscribe(o) } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/AddRef.swift b/RxSwift/Observables/Implementations/AddRef.swift index 7750a117..25671285 100644 --- a/RxSwift/Observables/Implementations/AddRef.swift +++ b/RxSwift/Observables/Implementations/AddRef.swift @@ -15,12 +15,12 @@ class AddRefSink : Sink, ObserverType { super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(_): - forwardOn(event: event) - case .Completed, .Error(_): - forwardOn(event: event) + case .next(_): + forwardOn(event) + case .completed, .error(_): + forwardOn(event) dispose() } } @@ -37,11 +37,11 @@ class AddRef : Producer { _refCount = refCount } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let releaseDisposable = _refCount.retain() let sink = AddRefSink(observer: observer) - sink.disposable = StableCompositeDisposable.create(releaseDisposable, _source.subscribeSafe(observer: sink)) + sink.disposable = StableCompositeDisposable.create(releaseDisposable, _source.subscribeSafe(sink)) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Amb.swift b/RxSwift/Observables/Implementations/Amb.swift index bc8918c7..bd536b3a 100644 --- a/RxSwift/Observables/Implementations/Amb.swift +++ b/RxSwift/Observables/Implementations/Amb.swift @@ -9,9 +9,9 @@ import Foundation enum AmbState { - case Neither - case Left - case Right + case neither + case left + case right } class AmbObserver : ObserverType { @@ -26,7 +26,7 @@ class AmbObserver : Obser init(parent: Parent, cancel: Disposable, sink: Sink) { #if TRACE_RESOURCES - AtomicIncrement(&resourceCount) + let _ = AtomicIncrement(&resourceCount) #endif _parent = parent @@ -34,7 +34,7 @@ class AmbObserver : Obser _cancel = cancel } - func on(event: Event) { + func on(_ event: Event) { _sink(self, event) if event.isStopEvent { _cancel.dispose() @@ -43,7 +43,7 @@ class AmbObserver : Obser deinit { #if TRACE_RESOURCES - AtomicDecrement(&resourceCount) + let _ = AtomicDecrement(&resourceCount) #endif } } @@ -54,9 +54,9 @@ class AmbSink : Sink { private let _parent: Parent - private let _lock = NSRecursiveLock() + private let _lock = RecursiveLock() // state - private var _choice = AmbState.Neither + private var _choice = AmbState.neither init(parent: Parent, observer: O) { _parent = parent @@ -69,12 +69,12 @@ class AmbSink : Sink { let disposeAll = StableCompositeDisposable.create(subscription1, subscription2) let forwardEvent = { (o: AmbObserverType, event: Event) -> Void in - self.forwardOn(event: event) + self.forwardOn(event) } let decide = { (o: AmbObserverType, event: Event, me: AmbState, otherSubscription: Disposable) in self._lock.performLocked { - if self._choice == .Neither { + if self._choice == .neither { self._choice = me o._sink = forwardEvent o._cancel = disposeAll @@ -82,7 +82,7 @@ class AmbSink : Sink { } if self._choice == me { - self.forwardOn(event: event) + self.forwardOn(event) if event.isStopEvent { self.dispose() } @@ -91,15 +91,15 @@ class AmbSink : Sink { } let sink1 = AmbObserver(parent: self, cancel: subscription1) { o, e in - decide(o, e, .Left, subscription2) + decide(o, e, .left, subscription2) } let sink2 = AmbObserver(parent: self, cancel: subscription1) { o, e in - decide(o, e, .Right, subscription1) + decide(o, e, .right, subscription1) } - subscription1.disposable = _parent._left.subscribe(observer: sink1) - subscription2.disposable = _parent._right.subscribe(observer: sink2) + subscription1.disposable = _parent._left.subscribe(sink1) + subscription2.disposable = _parent._right.subscribe(sink2) return disposeAll } @@ -114,9 +114,9 @@ class Amb: Producer { _right = right } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = AmbSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/AnonymousObservable.swift b/RxSwift/Observables/Implementations/AnonymousObservable.swift index 4cdc68e7..c899f3f6 100644 --- a/RxSwift/Observables/Implementations/AnonymousObservable.swift +++ b/RxSwift/Observables/Implementations/AnonymousObservable.swift @@ -19,22 +19,22 @@ class AnonymousObservableSink : Sink, ObserverType { super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next: + case .next: if _isStopped == 1 { return } - forwardOn(event: event) - case .Error, .Completed: + forwardOn(event) + case .error, .completed: if AtomicCompareAndSwap(0, 1, &_isStopped) { - forwardOn(event: event) + forwardOn(event) dispose() } } } - func run(parent: Parent) -> Disposable { + func run(_ parent: Parent) -> Disposable { return parent._subscribeHandler(AnyObserver(self)) } } @@ -48,9 +48,9 @@ class AnonymousObservable : Producer { _subscribeHandler = subscribeHandler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = AnonymousObservableSink(observer: observer) - sink.disposable = sink.run(parent: self) + sink.disposable = sink.run(self) return sink } } diff --git a/RxSwift/Observables/Implementations/Buffer.swift b/RxSwift/Observables/Implementations/Buffer.swift index ac712afb..c858ede1 100644 --- a/RxSwift/Observables/Implementations/Buffer.swift +++ b/RxSwift/Observables/Implementations/Buffer.swift @@ -22,7 +22,7 @@ class BufferTimeCount : Producer<[Element]> { _scheduler = scheduler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = BufferTimeCountSink(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -39,7 +39,7 @@ class BufferTimeCountSink private let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private let _timerD = SerialDisposable() @@ -52,8 +52,8 @@ class BufferTimeCountSink } func run() -> Disposable { - createTimer(windowID: _windowID) - return StableCompositeDisposable.create(_timerD, _parent._source.subscribe(observer: self)) + createTimer(_windowID) + return StableCompositeDisposable.create(_timerD, _parent._source.subscribe(self)) } func startNewWindowAndSendCurrentOne() { @@ -62,36 +62,36 @@ class BufferTimeCountSink let buffer = _buffer _buffer = [] - forwardOn(event: .Next(buffer)) + forwardOn(.next(buffer)) - createTimer(windowID: windowID) + createTimer(windowID) } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): _buffer.append(element) if _buffer.count == _parent._count { startNewWindowAndSendCurrentOne() } - case .Error(let error): + case .error(let error): _buffer = [] - forwardOn(event: .Error(error)) + forwardOn(.error(error)) dispose() - case .Completed: - forwardOn(event: .Next(_buffer)) - forwardOn(event: .Completed) + case .completed: + forwardOn(.next(_buffer)) + forwardOn(.completed) dispose() } } - func createTimer(windowID: Int) { + func createTimer(_ windowID: Int) { if _timerD.disposed { return } @@ -104,7 +104,7 @@ class BufferTimeCountSink _timerD.disposable = nextTimer - nextTimer.disposable = _parent._scheduler.scheduleRelative(state: windowID, dueTime: _parent._timeSpan) { previousWindowID in + nextTimer.disposable = _parent._scheduler.scheduleRelative(windowID, dueTime: _parent._timeSpan) { previousWindowID in self._lock.performLocked { if previousWindowID != self._windowID { return @@ -116,4 +116,4 @@ class BufferTimeCountSink return NopDisposable.instance } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Catch.swift b/RxSwift/Observables/Implementations/Catch.swift index 6c32be82..02b7d5e7 100644 --- a/RxSwift/Observables/Implementations/Catch.swift +++ b/RxSwift/Observables/Implementations/Catch.swift @@ -20,13 +20,13 @@ class CatchSinkProxy : ObserverType { _parent = parent } - func on(event: Event) { - _parent.forwardOn(event: event) + func on(_ event: Event) { + _parent.forwardOn(event) switch event { - case .Next: + case .next: break - case .Error, .Completed: + case .error, .completed: _parent.dispose() } } @@ -47,28 +47,28 @@ class CatchSink : Sink, ObserverType { func run() -> Disposable { let d1 = SingleAssignmentDisposable() _subscription.disposable = d1 - d1.disposable = _parent._source.subscribe(observer: self) + d1.disposable = _parent._source.subscribe(self) return _subscription } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next: - forwardOn(event: event) - case .Completed: - forwardOn(event: event) + case .next: + forwardOn(event) + case .completed: + forwardOn(event) dispose() - case .Error(let error): + case .error(let error): do { let catchSequence = try _parent._handler(error) let observer = CatchSinkProxy(parent: self) - _subscription.disposable = catchSequence.subscribe(observer: observer) + _subscription.disposable = catchSequence.subscribe(observer) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } } @@ -86,7 +86,7 @@ class Catch : Producer { _handler = handler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CatchSink(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -107,35 +107,35 @@ class CatchSequenceSink) { + func on(_ event: Event) { switch event { - case .Next: - forwardOn(event: event) - case .Error(let error): + case .next: + forwardOn(event) + case .error(let error): _lastError = error - schedule(command: .MoveNext) - case .Completed: - forwardOn(event: event) + schedule(.moveNext) + case .completed: + forwardOn(event) dispose() } } - override func subscribeToNext(source: Observable) -> Disposable { - return source.subscribe(observer: self) + override func subscribeToNext(_ source: Observable) -> Disposable { + return source.subscribe(self) } override func done() { if let lastError = _lastError { - forwardOn(event: .Error(lastError)) + forwardOn(.error(lastError)) } else { - forwardOn(event: .Completed) + forwardOn(.completed) } self.dispose() } - override func extract(observable: Observable) -> SequenceGenerator? { + override func extract(_ observable: Observable) -> SequenceGenerator? { if let onError = observable as? CatchSequence { return (onError.sources.makeIterator(), nil) } @@ -154,9 +154,9 @@ class CatchSequence(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CatchSequenceSink(observer: observer) - sink.disposable = sink.run(sources: (self.sources.makeIterator(), nil)) + sink.disposable = sink.run((self.sources.makeIterator(), nil)) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/CombineLatest+CollectionType.swift b/RxSwift/Observables/Implementations/CombineLatest+CollectionType.swift index e3998a30..754c52c0 100644 --- a/RxSwift/Observables/Implementations/CombineLatest+CollectionType.swift +++ b/RxSwift/Observables/Implementations/CombineLatest+CollectionType.swift @@ -15,7 +15,7 @@ class CombineLatestCollectionTypeSink, atIndex: Int) { + func on(_ event: Event, atIndex: Int) { _lock.lock(); defer { _lock.unlock() } // { switch event { - case .Next(let element): + case .next(let element): if _values[atIndex] == nil { _numberOfValues += 1 } @@ -51,7 +51,7 @@ class CombineLatestCollectionTypeSink(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CombineLatestCollectionTypeSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/CombineLatest+arity.swift b/RxSwift/Observables/Implementations/CombineLatest+arity.swift index a5ad8b87..e90d96c1 100644 --- a/RxSwift/Observables/Implementations/CombineLatest+arity.swift +++ b/RxSwift/Observables/Implementations/CombineLatest+arity.swift @@ -22,7 +22,7 @@ extension Observable { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest (_ source1: O1, _ source2: O2, resultSelector: (O1.E, O2.E) throws -> E) -> Observable { @@ -54,8 +54,8 @@ class CombineLatestSink2_ : CombineLatestSink { let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1) let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) - subscription1.disposable = _parent._source1.subscribe(observer: observer1) - subscription2.disposable = _parent._source2.subscribe(observer: observer2) + subscription1.disposable = _parent._source1.subscribe(observer1) + subscription2.disposable = _parent._source2.subscribe(observer2) return CompositeDisposable(disposables: [ subscription1, @@ -83,7 +83,7 @@ class CombineLatest2 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CombineLatestSink2_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -103,7 +103,7 @@ extension Observable { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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) -> Observable { @@ -138,9 +138,9 @@ class CombineLatestSink3_ : CombineLatestSink { let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2) let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3) - subscription1.disposable = _parent._source1.subscribe(observer: observer1) - subscription2.disposable = _parent._source2.subscribe(observer: observer2) - subscription3.disposable = _parent._source3.subscribe(observer: observer3) + subscription1.disposable = _parent._source1.subscribe(observer1) + subscription2.disposable = _parent._source2.subscribe(observer2) + subscription3.disposable = _parent._source3.subscribe(observer3) return CompositeDisposable(disposables: [ subscription1, @@ -171,7 +171,7 @@ class CombineLatest3 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CombineLatestSink3_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -191,7 +191,7 @@ extension Observable { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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) -> Observable { @@ -229,10 +229,10 @@ class CombineLatestSink4_ : CombineLatestSink Void in self._latestElement3 = e }, this: subscription3) let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4) - subscription1.disposable = _parent._source1.subscribe(observer: observer1) - subscription2.disposable = _parent._source2.subscribe(observer: observer2) - subscription3.disposable = _parent._source3.subscribe(observer: observer3) - subscription4.disposable = _parent._source4.subscribe(observer: observer4) + subscription1.disposable = _parent._source1.subscribe(observer1) + subscription2.disposable = _parent._source2.subscribe(observer2) + subscription3.disposable = _parent._source3.subscribe(observer3) + subscription4.disposable = _parent._source4.subscribe(observer4) return CompositeDisposable(disposables: [ subscription1, @@ -266,7 +266,7 @@ class CombineLatest4 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CombineLatestSink4_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -286,7 +286,7 @@ extension Observable { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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) -> Observable { @@ -327,11 +327,11 @@ class CombineLatestSink5_ : CombineLatestSi let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4) let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5) - subscription1.disposable = _parent._source1.subscribe(observer: observer1) - subscription2.disposable = _parent._source2.subscribe(observer: observer2) - subscription3.disposable = _parent._source3.subscribe(observer: observer3) - subscription4.disposable = _parent._source4.subscribe(observer: observer4) - subscription5.disposable = _parent._source5.subscribe(observer: observer5) + subscription1.disposable = _parent._source1.subscribe(observer1) + subscription2.disposable = _parent._source2.subscribe(observer2) + subscription3.disposable = _parent._source3.subscribe(observer3) + subscription4.disposable = _parent._source4.subscribe(observer4) + subscription5.disposable = _parent._source5.subscribe(observer5) return CompositeDisposable(disposables: [ subscription1, @@ -368,7 +368,7 @@ class CombineLatest5 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CombineLatestSink5_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -388,7 +388,7 @@ extension Observable { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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) -> Observable { @@ -432,12 +432,12 @@ class CombineLatestSink6_ : CombineLate let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5) let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6) - subscription1.disposable = _parent._source1.subscribe(observer: observer1) - subscription2.disposable = _parent._source2.subscribe(observer: observer2) - subscription3.disposable = _parent._source3.subscribe(observer: observer3) - subscription4.disposable = _parent._source4.subscribe(observer: observer4) - subscription5.disposable = _parent._source5.subscribe(observer: observer5) - subscription6.disposable = _parent._source6.subscribe(observer: observer6) + subscription1.disposable = _parent._source1.subscribe(observer1) + subscription2.disposable = _parent._source2.subscribe(observer2) + subscription3.disposable = _parent._source3.subscribe(observer3) + subscription4.disposable = _parent._source4.subscribe(observer4) + subscription5.disposable = _parent._source5.subscribe(observer5) + subscription6.disposable = _parent._source6.subscribe(observer6) return CompositeDisposable(disposables: [ subscription1, @@ -477,7 +477,7 @@ class CombineLatest6 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CombineLatestSink6_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -497,7 +497,7 @@ extension Observable { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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) -> Observable { @@ -544,13 +544,13 @@ class CombineLatestSink7_ : Combine let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6) let observer7 = CombineLatestObserver(lock: _lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7) - subscription1.disposable = _parent._source1.subscribe(observer: observer1) - subscription2.disposable = _parent._source2.subscribe(observer: observer2) - subscription3.disposable = _parent._source3.subscribe(observer: observer3) - subscription4.disposable = _parent._source4.subscribe(observer: observer4) - subscription5.disposable = _parent._source5.subscribe(observer: observer5) - subscription6.disposable = _parent._source6.subscribe(observer: observer6) - subscription7.disposable = _parent._source7.subscribe(observer: observer7) + subscription1.disposable = _parent._source1.subscribe(observer1) + subscription2.disposable = _parent._source2.subscribe(observer2) + subscription3.disposable = _parent._source3.subscribe(observer3) + subscription4.disposable = _parent._source4.subscribe(observer4) + subscription5.disposable = _parent._source5.subscribe(observer5) + subscription6.disposable = _parent._source6.subscribe(observer6) + subscription7.disposable = _parent._source7.subscribe(observer7) return CompositeDisposable(disposables: [ subscription1, @@ -593,7 +593,7 @@ class CombineLatest7 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CombineLatestSink7_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -613,7 +613,7 @@ extension Observable { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @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) -> Observable { @@ -663,14 +663,14 @@ class CombineLatestSink8_ : Com let observer7 = CombineLatestObserver(lock: _lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7) let observer8 = CombineLatestObserver(lock: _lock, parent: self, index: 7, setLatestValue: { (e: E8) -> Void in self._latestElement8 = e }, this: subscription8) - subscription1.disposable = _parent._source1.subscribe(observer: observer1) - subscription2.disposable = _parent._source2.subscribe(observer: observer2) - subscription3.disposable = _parent._source3.subscribe(observer: observer3) - subscription4.disposable = _parent._source4.subscribe(observer: observer4) - subscription5.disposable = _parent._source5.subscribe(observer: observer5) - subscription6.disposable = _parent._source6.subscribe(observer: observer6) - subscription7.disposable = _parent._source7.subscribe(observer: observer7) - subscription8.disposable = _parent._source8.subscribe(observer: observer8) + subscription1.disposable = _parent._source1.subscribe(observer1) + subscription2.disposable = _parent._source2.subscribe(observer2) + subscription3.disposable = _parent._source3.subscribe(observer3) + subscription4.disposable = _parent._source4.subscribe(observer4) + subscription5.disposable = _parent._source5.subscribe(observer5) + subscription6.disposable = _parent._source6.subscribe(observer6) + subscription7.disposable = _parent._source7.subscribe(observer7) + subscription8.disposable = _parent._source8.subscribe(observer8) return CompositeDisposable(disposables: [ subscription1, @@ -716,7 +716,7 @@ class CombineLatest8 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = CombineLatestSink8_(parent: self, observer: observer) sink.disposable = sink.run() return sink diff --git a/RxSwift/Observables/Implementations/CombineLatest+arity.tt b/RxSwift/Observables/Implementations/CombineLatest+arity.tt index ef5baac1..8f0e88d8 100644 --- a/RxSwift/Observables/Implementations/CombineLatest+arity.tt +++ b/RxSwift/Observables/Implementations/CombineLatest+arity.tt @@ -21,7 +21,7 @@ extension Observable { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func combineLatest<<%= (Array(1...i).map { "O\($0): ObservableType" }).joinWithSeparator(", ") %>> (<%= (Array(1...i).map { "_ source\($0): O\($0)" }).joinWithSeparator(", ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joinWithSeparator(", ") %>) throws -> E) -> Observable { @@ -57,7 +57,7 @@ class CombineLatestSink<%= i %>_<<%= (Array(1...i).map { "E\($0)" }).joinWithSep }).joinWithSeparator("\n") %> <%= (Array(1...i).map { -" subscription\($0).disposable = _parent._source\($0).subscribe(observer: observer\($0))" +" subscription\($0).disposable = _parent._source\($0).subscribe(observer\($0))" }).joinWithSeparator("\n") %> return CompositeDisposable(disposables: [ diff --git a/RxSwift/Observables/Implementations/CombineLatest.swift b/RxSwift/Observables/Implementations/CombineLatest.swift index fe76d7eb..d6d23d36 100644 --- a/RxSwift/Observables/Implementations/CombineLatest.swift +++ b/RxSwift/Observables/Implementations/CombineLatest.swift @@ -9,9 +9,9 @@ import Foundation protocol CombineLatestProtocol : class { - func next(index: Int) - func fail(error: ErrorProtocol) - func done(index: Int) + func next(_ index: Int) + func fail(_ error: ErrorProtocol) + func done(_ index: Int) } class CombineLatestSink @@ -19,7 +19,7 @@ class CombineLatestSink , CombineLatestProtocol { typealias Element = O.E - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() private let _arity: Int private var _numberOfValues = 0 @@ -39,7 +39,7 @@ class CombineLatestSink abstractMethod() } - func next(index: Int) { + func next(_ index: Int) { if !_hasValue[index] { _hasValue[index] = true _numberOfValues += 1 @@ -48,10 +48,10 @@ class CombineLatestSink if _numberOfValues == _arity { do { let result = try getResult() - forwardOn(event: .Next(result)) + forwardOn(.next(result)) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } } @@ -66,18 +66,18 @@ class CombineLatestSink } if allOthersDone { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } } } - func fail(error: ErrorProtocol) { - forwardOn(event: .Error(error)) + func fail(_ error: ErrorProtocol) { + forwardOn(.error(error)) dispose() } - func done(index: Int) { + func done(_ index: Int) { if _isDone[index] { return } @@ -86,7 +86,7 @@ class CombineLatestSink _numberOfDone += 1 if _numberOfDone == _arity { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } } @@ -101,12 +101,12 @@ class CombineLatestObserver private let _parent: CombineLatestProtocol - let _lock: NSRecursiveLock + let _lock: RecursiveLock private let _index: Int private let _this: Disposable private let _setLatestValue: ValueSetter - init(lock: NSRecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: ValueSetter, this: Disposable) { + init(lock: RecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: ValueSetter, this: Disposable) { _lock = lock _parent = parent _index = index @@ -114,21 +114,21 @@ class CombineLatestObserver _setLatestValue = setLatestValue } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): _setLatestValue(value) - _parent.next(index: _index) - case .Error(let error): + _parent.next(_index) + case .error(let error): _this.dispose() - _parent.fail(error: error) - case .Completed: + _parent.fail(error) + case .completed: _this.dispose() - _parent.done(index: _index) + _parent.done(_index) } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Concat.swift b/RxSwift/Observables/Implementations/Concat.swift index 39d995f0..b321a33e 100644 --- a/RxSwift/Observables/Implementations/Concat.swift +++ b/RxSwift/Observables/Implementations/Concat.swift @@ -18,23 +18,23 @@ class ConcatSink){ + func on(_ event: Event){ switch event { - case .Next: - forwardOn(event: event) - case .Error: - forwardOn(event: event) + case .next: + forwardOn(event) + case .error: + forwardOn(event) dispose() - case .Completed: - schedule(command: .MoveNext) + case .completed: + schedule(.moveNext) } } - override func subscribeToNext(source: Observable) -> Disposable { - return source.subscribe(observer: self) + override func subscribeToNext(_ source: Observable) -> Disposable { + return source.subscribe(self) } - override func extract(observable: Observable) -> SequenceGenerator? { + override func extract(_ observable: Observable) -> SequenceGenerator? { if let source = observable as? Concat { return (source._sources.makeIterator(), source._count) } @@ -55,9 +55,9 @@ class Concat : _count = count } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ConcatSink(observer: observer) - sink.disposable = sink.run(sources: (_sources.makeIterator(), _count)) + sink.disposable = sink.run((_sources.makeIterator(), _count)) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/ConnectableObservable.swift b/RxSwift/Observables/Implementations/ConnectableObservable.swift index a08ce28d..e02b0fcb 100644 --- a/RxSwift/Observables/Implementations/ConnectableObservable.swift +++ b/RxSwift/Observables/Implementations/ConnectableObservable.swift @@ -27,12 +27,12 @@ public class ConnectableObservable class Connection : Disposable { - private var _lock: NSRecursiveLock + private var _lock: RecursiveLock // state private var _parent: ConnectableObservableAdapter? private var _subscription : Disposable? - init(parent: ConnectableObservableAdapter, lock: NSRecursiveLock, subscription: Disposable) { + init(parent: ConnectableObservableAdapter, lock: RecursiveLock, subscription: Disposable) { _parent = parent _subscription = subscription _lock = lock @@ -66,7 +66,7 @@ class ConnectableObservableAdapter private let _subject: S private let _source: Observable - private let _lock = NSRecursiveLock() + private let _lock = RecursiveLock() // state private var _connection: ConnectionType? @@ -83,14 +83,14 @@ class ConnectableObservableAdapter return connection } - let disposable = _source.subscribe(observer: _subject.asObserver()) + let disposable = _source.subscribe(_subject.asObserver()) let connection = Connection(parent: self, lock: _lock, subscription: disposable) _connection = connection return connection } } - override func subscribe(observer: O) -> Disposable { - return _subject.subscribe(observer: observer) + override func subscribe(_ observer: O) -> Disposable { + return _subject.subscribe(observer) } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Debug.swift b/RxSwift/Observables/Implementations/Debug.swift index 0cf81bb7..e0382923 100644 --- a/RxSwift/Observables/Implementations/Debug.swift +++ b/RxSwift/Observables/Implementations/Debug.swift @@ -10,8 +10,8 @@ import Foundation let dateFormat = "yyyy-MM-dd HH:mm:ss.SSS" -func logEvent(identifier: String, dateFormat: NSDateFormatter, content: String) { - print("\(dateFormat.string(from: NSDate())): \(identifier) -> \(content)") +func logEvent(_ identifier: String, dateFormat: DateFormatter, content: String) { + print("\(dateFormat.string(from: Date())): \(identifier) -> \(content)") } class Debug_ : Sink, ObserverType { @@ -19,30 +19,30 @@ class Debug_ : Sink, ObserverType { typealias Parent = Debug private let _parent: Parent - private let _timestampFormatter = NSDateFormatter() + private let _timestampFormatter = DateFormatter() init(parent: Parent, observer: O) { _parent = parent _timestampFormatter.dateFormat = dateFormat - logEvent(identifier: _parent._identifier, dateFormat: _timestampFormatter, content: "subscribed") + logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "subscribed") super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { let maxEventTextLength = 40 let eventText = "\(event)" let eventNormalized = eventText.characters.count > maxEventTextLength ? String(eventText.characters.prefix(maxEventTextLength / 2)) + "..." + String(eventText.characters.suffix(maxEventTextLength / 2)) : eventText - logEvent(identifier: _parent._identifier, dateFormat: _timestampFormatter, content: "Event \(eventNormalized)") - forwardOn(event: event) + logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "Event \(eventNormalized)") + forwardOn(event) } override func dispose() { - logEvent(identifier: _parent._identifier, dateFormat: _timestampFormatter, content: "disposed") + logEvent(_parent._identifier, dateFormat: _timestampFormatter, content: "disposed") super.dispose() } } @@ -58,7 +58,7 @@ class Debug : Producer { } else { let trimmedFile: String - if let lastIndex = file.lastIndexOf(character: "/") { + if let lastIndex = file.lastIndexOf("/") { trimmedFile = file[file.index(after: lastIndex) ..< file.endIndex] } else { @@ -69,9 +69,9 @@ class Debug : Producer { _source = source } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = Debug_(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Deferred.swift b/RxSwift/Observables/Implementations/Deferred.swift index 7122b0a7..bbcf8cda 100644 --- a/RxSwift/Observables/Implementations/Deferred.swift +++ b/RxSwift/Observables/Implementations/Deferred.swift @@ -21,24 +21,24 @@ class DeferredSink : Sink Disposable { do { let result = try _observableFactory() - return result.subscribe(observer: self) + return result.subscribe(self) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() return NopDisposable.instance } } - func on(event: Event) { - forwardOn(event: event) + func on(_ event: Event) { + forwardOn(event) switch event { - case .Next: + case .next: break - case .Error: + case .error: dispose() - case .Completed: + case .completed: dispose() } } @@ -53,9 +53,9 @@ class Deferred : Producer { _observableFactory = observableFactory } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = DeferredSink(observableFactory: _observableFactory, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/DelaySubscription.swift b/RxSwift/Observables/Implementations/DelaySubscription.swift index ef6f131e..031293f6 100644 --- a/RxSwift/Observables/Implementations/DelaySubscription.swift +++ b/RxSwift/Observables/Implementations/DelaySubscription.swift @@ -21,8 +21,8 @@ class DelaySubscriptionSink) { - forwardOn(event: event) + func on(_ event: Event) { + forwardOn(event) if event.isStopEvent { dispose() } @@ -41,12 +41,12 @@ class DelaySubscription: Producer { _scheduler = scheduler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = DelaySubscriptionSink(parent: self, observer: observer) - sink.disposable = _scheduler.scheduleRelative(state: (), dueTime: _dueTime) { _ in - return self._source.subscribe(observer: sink) + sink.disposable = _scheduler.scheduleRelative((), dueTime: _dueTime) { _ in + return self._source.subscribe(sink) } return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/DistinctUntilChanged.swift b/RxSwift/Observables/Implementations/DistinctUntilChanged.swift index b943cd13..60080894 100644 --- a/RxSwift/Observables/Implementations/DistinctUntilChanged.swift +++ b/RxSwift/Observables/Implementations/DistinctUntilChanged.swift @@ -19,9 +19,9 @@ class DistinctUntilChangedSink: Sink, ObserverType { super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): do { let key = try _parent._selector(value) var areEqual = false @@ -35,14 +35,14 @@ class DistinctUntilChangedSink: Sink, ObserverType { _currentKey = key - forwardOn(event: event) + forwardOn(event) } catch let error { - forwardOn(event: .Error(error)) + forwardOn(.error(error)) dispose() } - case .Error, .Completed: - forwardOn(event: event) + case .error, .completed: + forwardOn(event) dispose() } } @@ -62,9 +62,9 @@ class DistinctUntilChanged: Producer { _comparer = comparer } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = DistinctUntilChangedSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Do.swift b/RxSwift/Observables/Implementations/Do.swift index 040b8202..cece0f0f 100644 --- a/RxSwift/Observables/Implementations/Do.swift +++ b/RxSwift/Observables/Implementations/Do.swift @@ -19,16 +19,16 @@ class DoSink : Sink, ObserverType { super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { do { try _parent._eventHandler(event) - forwardOn(event: event) + forwardOn(event) if event.isStopEvent { dispose() } } catch let error { - forwardOn(event: .Error(error)) + forwardOn(.error(error)) dispose() } } @@ -45,9 +45,9 @@ class Do : Producer { _eventHandler = eventHandler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = DoSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/ElementAt.swift b/RxSwift/Observables/Implementations/ElementAt.swift index 1c137137..1ceb14f9 100644 --- a/RxSwift/Observables/Implementations/ElementAt.swift +++ b/RxSwift/Observables/Implementations/ElementAt.swift @@ -22,32 +22,32 @@ class ElementAtSink : Sink< super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(_): + case .next(_): if (_i == 0) { - forwardOn(event: event) - forwardOn(event: .Completed) + forwardOn(event) + forwardOn(.completed) self.dispose() } do { - try decrementChecked(i: &_i) + let _ = try decrementChecked(&_i) } catch(let e) { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() return } - case .Error(let e): - forwardOn(event: .Error(e)) + case .error(let e): + forwardOn(.error(e)) self.dispose() - case .Completed: + case .completed: if (_parent._throwOnEmpty) { - forwardOn(event: .Error(RxError.ArgumentOutOfRange)) + forwardOn(.error(RxError.argumentOutOfRange)) } else { - forwardOn(event: .Completed) + forwardOn(.completed) } self.dispose() @@ -71,9 +71,9 @@ class ElementAt : Producer { self._throwOnEmpty = throwOnEmpty } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ElementAtSink(parent: self, observer: observer) - sink.disposable = _source.subscribeSafe(observer: sink) + sink.disposable = _source.subscribeSafe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Empty.swift b/RxSwift/Observables/Implementations/Empty.swift index 15a6b826..4cf383f3 100644 --- a/RxSwift/Observables/Implementations/Empty.swift +++ b/RxSwift/Observables/Implementations/Empty.swift @@ -9,8 +9,8 @@ import Foundation class Empty : Producer { - override func subscribe(observer: O) -> Disposable { - observer.on(event: .Completed) + override func subscribe(_ observer: O) -> Disposable { + observer.on(.completed) return NopDisposable.instance } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Error.swift b/RxSwift/Observables/Implementations/Error.swift index 0f84d4e7..aa763838 100644 --- a/RxSwift/Observables/Implementations/Error.swift +++ b/RxSwift/Observables/Implementations/Error.swift @@ -15,8 +15,8 @@ class Error : Producer { _error = error } - override func subscribe(observer: O) -> Disposable { - observer.on(event: .Error(_error)) + override func subscribe(_ observer: O) -> Disposable { + observer.on(.error(_error)) return NopDisposable.instance } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Filter.swift b/RxSwift/Observables/Implementations/Filter.swift index b5ccdaf3..e84d952a 100644 --- a/RxSwift/Observables/Implementations/Filter.swift +++ b/RxSwift/Observables/Implementations/Filter.swift @@ -21,21 +21,21 @@ class FilterSink: Sink, ObserverType { super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): do { let satisfies = try _predicate(value) if satisfies { - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } - case .Completed, .Error: - forwardOn(event: event) + case .completed, .error: + forwardOn(event) dispose() } } @@ -52,9 +52,9 @@ class Filter : Producer { _predicate = predicate } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = FilterSink(predicate: _predicate, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Generate.swift b/RxSwift/Observables/Implementations/Generate.swift index 231f9f7a..87d28379 100644 --- a/RxSwift/Observables/Implementations/Generate.swift +++ b/RxSwift/Observables/Implementations/Generate.swift @@ -22,7 +22,7 @@ class GenerateSink : Sink { } func run() -> Disposable { - return _parent._scheduler.scheduleRecursive(state: true) { (isFirst, recurse) -> Void in + return _parent._scheduler.scheduleRecursive(true) { (isFirst, recurse) -> Void in do { if !isFirst { self._state = try self._parent._iterate(self._state) @@ -30,17 +30,17 @@ class GenerateSink : Sink { if try self._parent._condition(self._state) { let result = try self._parent._resultSelector(self._state) - self.forwardOn(event: .Next(result)) + self.forwardOn(.next(result)) recurse(false) } else { - self.forwardOn(event: .Completed) + self.forwardOn(.completed) self.dispose() } } catch let error { - self.forwardOn(event: .Error(error)) + self.forwardOn(.error(error)) self.dispose() } } @@ -63,9 +63,9 @@ class Generate : Producer { super.init() } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = GenerateSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Just.swift b/RxSwift/Observables/Implementations/Just.swift index 76e8ee44..256446ae 100644 --- a/RxSwift/Observables/Implementations/Just.swift +++ b/RxSwift/Observables/Implementations/Just.swift @@ -20,10 +20,10 @@ class JustScheduledSink : Sink { func run() -> Disposable { let scheduler = _parent._scheduler - return scheduler.schedule(state: _parent._element) { element in - self.forwardOn(event: .Next(element)) - return scheduler.schedule(state: ()) { _ in - self.forwardOn(event: .Completed) + return scheduler.schedule(_parent._element) { element in + self.forwardOn(.next(element)) + return scheduler.schedule(()) { _ in + self.forwardOn(.completed) return NopDisposable.instance } } @@ -39,7 +39,7 @@ class JustScheduled : Producer { _element = element } - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { let sink = JustScheduledSink(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -53,9 +53,9 @@ class Just : Producer { _element = element } - override func subscribe(observer: O) -> Disposable { - observer.on(event: .Next(_element)) - observer.on(event: .Completed) + override func subscribe(_ observer: O) -> Disposable { + observer.on(.next(_element)) + observer.on(.completed) return NopDisposable.instance } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Map.swift b/RxSwift/Observables/Implementations/Map.swift index 34808535..370fe1e6 100644 --- a/RxSwift/Observables/Implementations/Map.swift +++ b/RxSwift/Observables/Implementations/Map.swift @@ -21,22 +21,22 @@ class MapSink : Sink, ObserverType { super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): do { let mappedElement = try _selector(element) - forwardOn(event: .Next(mappedElement)) + forwardOn(.next(mappedElement)) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } - case .Error(let error): - forwardOn(event: .Error(error)) + case .error(let error): + forwardOn(.error(error)) dispose() - case .Completed: - forwardOn(event: .Completed) + case .completed: + forwardOn(.completed) dispose() } } @@ -58,22 +58,22 @@ class MapWithIndexSink : Sink, ObserverType { super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): do { - let mappedElement = try _selector(element, try incrementChecked(i: &_index)) - forwardOn(event: .Next(mappedElement)) + let mappedElement = try _selector(element, try incrementChecked(&_index)) + forwardOn(.next(mappedElement)) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } - case .Error(let error): - forwardOn(event: .Error(error)) + case .error(let error): + forwardOn(.error(error)) dispose() - case .Completed: - forwardOn(event: .Completed) + case .completed: + forwardOn(.completed) dispose() } } @@ -91,9 +91,9 @@ class MapWithIndex : Producer { _selector = selector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = MapWithIndexSink(selector: _selector, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } } @@ -114,11 +114,11 @@ class Map: Producer { _selector = selector #if TRACE_RESOURCES - AtomicIncrement(&numberOfMapOperators) + let _ = AtomicIncrement(&numberOfMapOperators) #endif } - override func composeMap(selector: (ResultType) throws -> R) -> Observable { + override func composeMap(_ selector: (ResultType) throws -> R) -> Observable { let originalSelector = _selector return Map(source: _source, selector: { (s: SourceType) throws -> R in let r: ResultType = try originalSelector(s) @@ -126,15 +126,15 @@ class Map: Producer { }) } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = MapSink(selector: _selector, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } #if TRACE_RESOURCES deinit { - AtomicDecrement(&numberOfMapOperators) + let _ = AtomicDecrement(&numberOfMapOperators) } #endif -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Merge.swift b/RxSwift/Observables/Implementations/Merge.swift index a07c52ac..7647087a 100644 --- a/RxSwift/Observables/Implementations/Merge.swift +++ b/RxSwift/Observables/Implementations/Merge.swift @@ -21,7 +21,7 @@ class MergeLimitedSinkIter) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next: - _parent.forwardOn(event: event) - case .Error: - _parent.forwardOn(event: event) + case .next: + _parent.forwardOn(event) + case .error: + _parent.forwardOn(event) _parent.dispose() - case .Completed: - _parent._group.removeDisposable(disposeKey: _disposeKey) + case .completed: + _parent._group.removeDisposable(_disposeKey) if let next = _parent._queue.dequeue() { - _parent.subscribe(innerSource: next, group: _parent._group) + _parent.subscribe(next, group: _parent._group) } else { _parent._activeCount = _parent._activeCount - 1 if _parent._stopped && _parent._activeCount == 0 { - _parent.forwardOn(event: .Completed) + _parent.forwardOn(.completed) _parent.dispose() } } @@ -68,7 +68,7 @@ class MergeLimitedSink) -> Disposable { - _group.addDisposable(disposable: _sourceSubscription) + func run(_ source: Observable) -> Disposable { + let _ = _group.addDisposable(_sourceSubscription) - let disposable = source.subscribe(observer: self) + let disposable = source.subscribe(self) _sourceSubscription.disposable = disposable return _group } - func subscribe(innerSource: E, group: CompositeDisposable) { + func subscribe(_ innerSource: E, group: CompositeDisposable) { let subscription = SingleAssignmentDisposable() - let key = group.addDisposable(disposable: subscription) + let key = group.addDisposable(subscription) if let key = key { let observer = MergeLimitedSinkIter(parent: self, disposeKey: key) - let disposable = innerSource.asObservable().subscribe(observer: observer) + let disposable = innerSource.asObservable().subscribe(observer) subscription.disposable = disposable } } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): let subscribe: Bool if _activeCount < _maxConcurrent { _activeCount += 1 subscribe = true } else { - _queue.enqueue(element: value) + _queue.enqueue(value) subscribe = false } if subscribe { - self.subscribe(innerSource: value, group: _group) + self.subscribe(value, group: _group) } - case .Error(let error): - forwardOn(event: .Error(error)) + case .error(let error): + forwardOn(.error(error)) dispose() - case .Completed: + case .completed: if _activeCount == 0 { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } else { @@ -152,9 +152,9 @@ class MergeLimited : Producer { _maxConcurrent = maxConcurrent } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = MergeLimitedSink(maxConcurrent: _maxConcurrent, observer: observer) - sink.disposable = sink.run(source: _source) + sink.disposable = sink.run(_source) return sink } } @@ -166,7 +166,7 @@ final class MergeBasicSink S { + override func performMap(_ element: S) throws -> S { return element } } @@ -183,7 +183,7 @@ final class FlatMapSink S { + override func performMap(_ element: SourceType) throws -> S { return try _selector(element) } } @@ -199,8 +199,8 @@ final class FlatMapWithIndexSink S { - return try _selector(element, try incrementChecked(i: &_index)) + override func performMap(_ element: SourceType) throws -> S { + return try _selector(element, try incrementChecked(&_index)) } } @@ -220,7 +220,7 @@ final class FlatMapFirstSink S { + override func performMap(_ element: SourceType) throws -> S { return try _selector(element) } } @@ -241,19 +241,19 @@ class MergeSinkIter) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): _parent._lock.lock(); defer { _parent._lock.unlock() } // lock { - _parent.forwardOn(event: .Next(value)) + _parent.forwardOn(.next(value)) // } - case .Error(let error): + case .error(let error): _parent._lock.lock(); defer { _parent._lock.unlock() } // lock { - _parent.forwardOn(event: .Error(error)) + _parent.forwardOn(.error(error)) _parent.dispose() // } - case .Completed: - _parent._group.removeDisposable(disposeKey: _disposeKey) + case .completed: + _parent._group.removeDisposable(_disposeKey) // If this has returned true that means that `Completed` should be sent. // In case there is a race who will sent first completed, // lock will sort it out. When first Completed message is sent @@ -261,7 +261,7 @@ class MergeSinkIter S { + func performMap(_ element: SourceType) throws -> S { abstractMethod() } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): if !subscribeNext { return } do { - let value = try performMap(element: element) - subscribeInner(source: value.asObservable()) + let value = try performMap(element) + subscribeInner(value.asObservable()) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } - case .Error(let error): + case .error(let error): _lock.lock(); defer { _lock.unlock() } // lock { - forwardOn(event: .Error(error)) + forwardOn(.error(error)) dispose() // } - case .Completed: + case .completed: _lock.lock(); defer { _lock.unlock() } // lock { _stopped = true if _group.count == MergeNoIterators { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } else { @@ -329,19 +329,19 @@ class MergeSink) { + func subscribeInner(_ source: Observable) { let iterDisposable = SingleAssignmentDisposable() - if let disposeKey = _group.addDisposable(disposable: iterDisposable) { + if let disposeKey = _group.addDisposable(iterDisposable) { let iter = MergeSinkIter(parent: self, disposeKey: disposeKey) - let subscription = source.subscribe(observer: iter) + let subscription = source.subscribe(iter) iterDisposable.disposable = subscription } } - func run(source: Observable) -> Disposable { - _group.addDisposable(disposable: _sourceSubscription) + func run(_ source: Observable) -> Disposable { + let _ = _group.addDisposable(_sourceSubscription) - let subscription = source.subscribe(observer: self) + let subscription = source.subscribe(self) _sourceSubscription.disposable = subscription return _group @@ -362,9 +362,9 @@ final class FlatMap: Producer { _selector = selector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = FlatMapSink(selector: _selector, observer: observer) - sink.disposable = sink.run(source: _source) + sink.disposable = sink.run(_source) return sink } } @@ -381,9 +381,9 @@ final class FlatMapWithIndex: Producer _selector = selector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = FlatMapWithIndexSink(selector: _selector, observer: observer) - sink.disposable = sink.run(source: _source) + sink.disposable = sink.run(_source) return sink } @@ -401,9 +401,9 @@ final class FlatMapFirst: Producer(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = FlatMapFirstSink(selector: _selector, observer: observer) - sink.disposable = sink.run(source: _source) + sink.disposable = sink.run(_source) return sink } } @@ -415,9 +415,9 @@ final class Merge : Producer { _source = source } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = MergeBasicSink(observer: observer) - sink.disposable = sink.run(source: _source) + sink.disposable = sink.run(_source) return sink } } diff --git a/RxSwift/Observables/Implementations/Multicast.swift b/RxSwift/Observables/Implementations/Multicast.swift index 673e7676..2ce88e09 100644 --- a/RxSwift/Observables/Implementations/Multicast.swift +++ b/RxSwift/Observables/Implementations/Multicast.swift @@ -27,23 +27,23 @@ class MulticastSink: Sink, ObserverType { let observable = try _parent._selector(connectable) - let subscription = observable.subscribe(observer: self) + let subscription = observable.subscribe(self) let connection = connectable.connect() return BinaryDisposable(subscription, connection) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() return NopDisposable.instance } } - func on(event: Event) { - forwardOn(event: event) + func on(_ event: Event) { + forwardOn(event) switch event { - case .Next: break - case .Error, .Completed: + case .next: break + case .error, .completed: dispose() } } @@ -63,9 +63,9 @@ class Multicast: Producer { _selector = selector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = MulticastSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Never.swift b/RxSwift/Observables/Implementations/Never.swift index 1b20b277..60ed522a 100644 --- a/RxSwift/Observables/Implementations/Never.swift +++ b/RxSwift/Observables/Implementations/Never.swift @@ -9,7 +9,7 @@ import Foundation class Never : Producer { - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { return NopDisposable.instance } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/ObserveOn.swift b/RxSwift/Observables/Implementations/ObserveOn.swift index 27ca3c45..4aaa0d4c 100644 --- a/RxSwift/Observables/Implementations/ObserveOn.swift +++ b/RxSwift/Observables/Implementations/ObserveOn.swift @@ -17,28 +17,28 @@ class ObserveOn : Producer { self.source = source #if TRACE_RESOURCES - AtomicIncrement(&resourceCount) + let _ = AtomicIncrement(&resourceCount) #endif } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ObserveOnSink(scheduler: scheduler, observer: observer) - sink._subscription.disposable = source.subscribe(observer: sink) + sink._subscription.disposable = source.subscribe(sink) return sink } #if TRACE_RESOURCES deinit { - AtomicDecrement(&resourceCount) + let _ = AtomicDecrement(&resourceCount) } #endif } enum ObserveOnState : Int32 { // pump is not running - case Stopped = 0 + case stopped = 0 // pump is running - case Running = 1 + case running = 1 } class ObserveOnSink : ObserverBase { @@ -49,7 +49,7 @@ class ObserveOnSink : ObserverBase { var _lock = SpinLock() // state - var _state = ObserveOnState.Stopped + var _state = ObserveOnState.stopped var _observer: O? var _queue = Queue>(capacity: 10) @@ -61,37 +61,37 @@ class ObserveOnSink : ObserverBase { _observer = observer } - override func onCore(event: Event) { + override func onCore(_ event: Event) { let shouldStart = _lock.calculateLocked { () -> Bool in - self._queue.enqueue(element: event) + self._queue.enqueue(event) switch self._state { - case .Stopped: - self._state = .Running + case .stopped: + self._state = .running return true - case .Running: + case .running: return false } } if shouldStart { - _scheduleDisposable.disposable = self._scheduler.scheduleRecursive(state: (), action: self.run) + _scheduleDisposable.disposable = self._scheduler.scheduleRecursive((), action: self.run) } } - func run(state: Void, recurse: (Void) -> Void) { + func run(_ state: Void, recurse: (Void) -> Void) { let (nextEvent, observer) = self._lock.calculateLocked { () -> (Event?, O?) in if self._queue.count > 0 { return (self._queue.dequeue(), self._observer) } else { - self._state = .Stopped + self._state = .stopped return (nil, self._observer) } } if let nextEvent = nextEvent { - observer?.on(event: nextEvent) + observer?.on(nextEvent) if nextEvent.isStopEvent { dispose() } @@ -113,7 +113,7 @@ class ObserveOnSink : ObserverBase { return true } else { - self._state = .Stopped + self._state = .stopped return false } // } @@ -130,4 +130,4 @@ class ObserveOnSink : ObserverBase { // } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift b/RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift index 70ab3d2e..fa6a89a0 100644 --- a/RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift +++ b/RxSwift/Observables/Implementations/ObserveOnSerialDispatchQueue.swift @@ -31,7 +31,7 @@ class ObserveOnSerialDispatchQueueSink : ObserverBase { super.init() cachedScheduleLambda = { sink, event in - sink.observer.on(event: event) + sink.observer.on(event) if event.isStopEvent { sink.dispose() @@ -41,8 +41,8 @@ class ObserveOnSerialDispatchQueueSink : ObserverBase { } } - override func onCore(event: Event) { - self.scheduler.schedule(state: (self, event), action: cachedScheduleLambda) + override func onCore(_ event: Event) { + let _ = self.scheduler.schedule((self, event), action: cachedScheduleLambda) } override func dispose() { @@ -61,21 +61,21 @@ class ObserveOnSerialDispatchQueue : Producer { self.source = source #if TRACE_RESOURCES - AtomicIncrement(&resourceCount) - AtomicIncrement(&numberOfSerialDispatchQueueObservables) + let _ = AtomicIncrement(&resourceCount) + let _ = AtomicIncrement(&numberOfSerialDispatchQueueObservables) #endif } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ObserveOnSerialDispatchQueueSink(scheduler: scheduler, observer: observer) - sink.subscription.disposable = source.subscribe(observer: sink) + sink.subscription.disposable = source.subscribe(sink) return sink } #if TRACE_RESOURCES deinit { - AtomicDecrement(&resourceCount) - AtomicDecrement(&numberOfSerialDispatchQueueObservables) + let _ = AtomicDecrement(&resourceCount) + let _ = AtomicDecrement(&numberOfSerialDispatchQueueObservables) } #endif -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Producer.swift b/RxSwift/Observables/Implementations/Producer.swift index 18bbe23e..64e215ec 100644 --- a/RxSwift/Observables/Implementations/Producer.swift +++ b/RxSwift/Observables/Implementations/Producer.swift @@ -13,18 +13,18 @@ class Producer : Observable { super.init() } - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { if !CurrentThreadScheduler.isScheduleRequired { - return run(observer: observer) + return run(observer) } else { - return CurrentThreadScheduler.instance.schedule(state: ()) { _ in - return self.run(observer: observer) + return CurrentThreadScheduler.instance.schedule(()) { _ in + return self.run(observer) } } } - func run(observer: O) -> Disposable { + func run(_ observer: O) -> Disposable { abstractMethod() } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Range.swift b/RxSwift/Observables/Implementations/Range.swift index ef38b91b..1bd0e8b8 100644 --- a/RxSwift/Observables/Implementations/Range.swift +++ b/RxSwift/Observables/Implementations/Range.swift @@ -27,7 +27,7 @@ class RangeProducer : Producer { _scheduler = scheduler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = RangeSink(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -45,15 +45,15 @@ class RangeSink : Sink { } func run() -> Disposable { - return _parent._scheduler.scheduleRecursive(state: 0 as O.E) { i, recurse in + return _parent._scheduler.scheduleRecursive(0 as O.E) { i, recurse in if i < self._parent._count { - self.forwardOn(event: .Next(self._parent._start + i)) + self.forwardOn(.next(self._parent._start + i)) recurse(i + 1) } else { - self.forwardOn(event: .Completed) + self.forwardOn(.completed) self.dispose() } } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Reduce.swift b/RxSwift/Observables/Implementations/Reduce.swift index 41ee837a..6173d1b5 100644 --- a/RxSwift/Observables/Implementations/Reduce.swift +++ b/RxSwift/Observables/Implementations/Reduce.swift @@ -22,28 +22,28 @@ class ReduceSink : Sink, Observe super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): do { _accumulation = try _parent._accumulator(_accumulation, value) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } - case .Error(let e): - forwardOn(event: .Error(e)) + case .error(let e): + forwardOn(.error(e)) dispose() - case .Completed: + case .completed: do { let result = try _parent._mapResult(_accumulation) - forwardOn(event: .Next(result)) - forwardOn(event: .Completed) + forwardOn(.next(result)) + forwardOn(.completed) dispose() } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } } @@ -66,9 +66,9 @@ class Reduce : Producer { _mapResult = mapResult } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ReduceSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/RefCount.swift b/RxSwift/Observables/Implementations/RefCount.swift index ec6b6ec1..77c33cea 100644 --- a/RxSwift/Observables/Implementations/RefCount.swift +++ b/RxSwift/Observables/Implementations/RefCount.swift @@ -22,7 +22,7 @@ class RefCountSink Disposable { - let subscription = _parent._source.subscribeSafe(observer: self) + let subscription = _parent._source.subscribeSafe(self) _parent._lock.lock(); defer { _parent._lock.unlock() } // { if _parent._count == 0 { @@ -52,19 +52,19 @@ class RefCountSink) { + func on(_ event: Event) { switch event { - case .Next: - forwardOn(event: event) - case .Error, .Completed: - forwardOn(event: event) + case .next: + forwardOn(event) + case .error, .completed: + forwardOn(event) dispose() } } } class RefCount: Producer { - private let _lock = NSRecursiveLock() + private let _lock = RecursiveLock() // state private var _count = 0 @@ -76,9 +76,9 @@ class RefCount: Producer { _source = source } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = RefCountSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Repeat.swift b/RxSwift/Observables/Implementations/Repeat.swift index b928eee3..4223fe8e 100644 --- a/RxSwift/Observables/Implementations/Repeat.swift +++ b/RxSwift/Observables/Implementations/Repeat.swift @@ -17,7 +17,7 @@ class RepeatElement : Producer { _scheduler = scheduler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = RepeatElementSink(parent: self, observer: observer) sink.disposable = sink.run() @@ -36,9 +36,9 @@ class RepeatElementSink : Sink { } func run() -> Disposable { - return _parent._scheduler.scheduleRecursive(state: _parent._element) { e, recurse in - self.forwardOn(event: .Next(e)) + return _parent._scheduler.scheduleRecursive(_parent._element) { e, recurse in + self.forwardOn(.next(e)) recurse(e) } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/RetryWhen.swift b/RxSwift/Observables/Implementations/RetryWhen.swift index ccefebb2..01a49c44 100644 --- a/RxSwift/Observables/Implementations/RetryWhen.swift +++ b/RxSwift/Observables/Implementations/RetryWhen.swift @@ -20,16 +20,16 @@ class RetryTriggerSink) { + func on(_ event: Event) { switch event { - case .Next: + case .next: _parent._parent._lastError = nil - _parent._parent.schedule(command: .MoveNext) - case .Error(let e): - _parent._parent.forwardOn(event: .Error(e)) + _parent._parent.schedule(.moveNext) + case .error(let e): + _parent._parent.forwardOn(.error(e)) _parent._parent.dispose() - case .Completed: - _parent._parent.forwardOn(event: .Completed) + case .completed: + _parent._parent.forwardOn(.completed) _parent._parent.dispose() } } @@ -48,27 +48,27 @@ class RetryWhenSequenceSinkIter) { + func on(_ event: Event) { switch event { - case .Next: - _parent.forwardOn(event: event) - case .Error(let error): + case .next: + _parent.forwardOn(event) + case .error(let error): _parent._lastError = error if let failedWith = error as? Error { // dispose current subscription super.dispose() - let errorHandlerSubscription = _parent._notifier.subscribe(observer: RetryTriggerSink(parent: self)) + let errorHandlerSubscription = _parent._notifier.subscribe(RetryTriggerSink(parent: self)) _errorHandlerSubscription.disposable = errorHandlerSubscription - _parent._errorSubject.on(event: .Next(failedWith)) + _parent._errorSubject.on(.next(failedWith)) } else { - _parent.forwardOn(event: .Error(error)) + _parent.forwardOn(.error(error)) _parent.dispose() } - case .Completed: - _parent.forwardOn(event: event) + case .completed: + _parent.forwardOn(event) _parent.dispose() } } @@ -84,7 +84,7 @@ class RetryWhenSequenceSink - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() private let _parent: Parent @@ -101,32 +101,32 @@ class RetryWhenSequenceSink) -> SequenceGenerator? { + override func extract(_ observable: Observable) -> SequenceGenerator? { // It is important to always return `nil` here because there are sideffects in the `run` method // that are dependant on particular `retryWhen` operator so single operator stack can't be reused in this // case. return nil } - override func subscribeToNext(source: Observable) -> Disposable { + override func subscribeToNext(_ source: Observable) -> Disposable { let iter = RetryWhenSequenceSinkIter(parent: self) - iter.disposable = source.subscribe(observer: iter) + iter.disposable = source.subscribe(iter) return iter } - override func run(sources: SequenceGenerator) -> Disposable { - let triggerSubscription = _handler.subscribe(observer: _notifier.asObserver()) - let superSubscription = super.run(sources: sources) + override func run(_ sources: SequenceGenerator) -> Disposable { + let triggerSubscription = _handler.subscribe(_notifier.asObserver()) + let superSubscription = super.run(sources) return StableCompositeDisposable.create(superSubscription, triggerSubscription) } } @@ -142,9 +142,9 @@ class RetryWhenSequence(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = RetryWhenSequenceSink(parent: self, observer: observer) - sink.disposable = sink.run(sources: (self._sources.makeIterator(), nil)) + sink.disposable = sink.run((self._sources.makeIterator(), nil)) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Sample.swift b/RxSwift/Observables/Implementations/Sample.swift index 068c8e05..169fa38f 100644 --- a/RxSwift/Observables/Implementations/Sample.swift +++ b/RxSwift/Observables/Implementations/Sample.swift @@ -18,7 +18,7 @@ class SamplerSink) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next: + case .next: if let element = _parent._element { if _parent._parent._onlyNew { _parent._element = nil } - _parent.forwardOn(event: .Next(element)) + _parent.forwardOn(.next(element)) } if _parent._atEnd { - _parent.forwardOn(event: .Completed) + _parent.forwardOn(.completed) _parent.dispose() } - case .Error(let e): - _parent.forwardOn(event: .Error(e)) + case .error(let e): + _parent.forwardOn(.error(e)) _parent.dispose() - case .Completed: + case .completed: if let element = _parent._element { _parent._element = nil - _parent.forwardOn(event: .Next(element)) + _parent.forwardOn(.next(element)) } if _parent._atEnd { - _parent.forwardOn(event: .Completed) + _parent.forwardOn(.completed) _parent.dispose() } } @@ -71,7 +71,7 @@ class SampleSequenceSink private let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private var _element = nil as Element? @@ -85,24 +85,24 @@ class SampleSequenceSink } func run() -> Disposable { - _sourceSubscription.disposable = _parent._source.subscribe(observer: self) - let samplerSubscription = _parent._sampler.subscribe(observer: SamplerSink(parent: self)) + _sourceSubscription.disposable = _parent._source.subscribe(self) + let samplerSubscription = _parent._sampler.subscribe(SamplerSink(parent: self)) return StableCompositeDisposable.create(_sourceSubscription, samplerSubscription) } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): _element = element - case .Error: - forwardOn(event: event) + case .error: + forwardOn(event) dispose() - case .Completed: + case .completed: _atEnd = true _sourceSubscription.dispose() } @@ -121,9 +121,9 @@ class Sample : Producer { _onlyNew = onlyNew } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = SampleSequenceSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Scan.swift b/RxSwift/Observables/Implementations/Scan.swift index 56c44619..2e641edb 100644 --- a/RxSwift/Observables/Implementations/Scan.swift +++ b/RxSwift/Observables/Implementations/Scan.swift @@ -21,22 +21,22 @@ class ScanSink super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): do { _accumulate = try _parent._accumulator(_accumulate, element) - forwardOn(event: .Next(_accumulate)) + forwardOn(.next(_accumulate)) } catch let error { - forwardOn(event: .Error(error)) + forwardOn(.error(error)) dispose() } - case .Error(let error): - forwardOn(event: .Error(error)) + case .error(let error): + forwardOn(.error(error)) dispose() - case .Completed: - forwardOn(event: .Completed) + case .completed: + forwardOn(.completed) dispose() } } @@ -56,9 +56,9 @@ class Scan: Producer { _accumulator = accumulator } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ScanSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Sequence.swift b/RxSwift/Observables/Implementations/Sequence.swift index a759e5f5..fa8c5d40 100644 --- a/RxSwift/Observables/Implementations/Sequence.swift +++ b/RxSwift/Observables/Implementations/Sequence.swift @@ -19,13 +19,13 @@ class ObservableSequenceSink : Sink { } func run() -> Disposable { - return _parent._scheduler!.scheduleRecursive(state: (0, _parent._elements)) { (state, recurse) in + return _parent._scheduler!.scheduleRecursive((0, _parent._elements)) { (state, recurse) in if state.0 < state.1.count { - self.forwardOn(event: .Next(state.1[state.0])) + self.forwardOn(.next(state.1[state.0])) recurse((state.0 + 1, state.1)) } else { - self.forwardOn(event: .Completed) + self.forwardOn(.completed) } } } @@ -40,14 +40,14 @@ class ObservableSequence : Producer { _scheduler = scheduler } - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { // optimized version without scheduler guard _scheduler != nil else { for element in _elements { - observer.on(event: .Next(element)) + observer.on(.next(element)) } - observer.on(event: .Completed) + observer.on(.completed) return NopDisposable.instance } @@ -55,4 +55,4 @@ class ObservableSequence : Producer { sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/ShareReplay1.swift b/RxSwift/Observables/Implementations/ShareReplay1.swift index 1b7637dd..5bb73a7c 100644 --- a/RxSwift/Observables/Implementations/ShareReplay1.swift +++ b/RxSwift/Observables/Implementations/ShareReplay1.swift @@ -18,7 +18,7 @@ final class ShareReplay1 private let _source: Observable - private var _lock = NSRecursiveLock() + private var _lock = RecursiveLock() private var _connection: SingleAssignmentDisposable? private var _element: Element? @@ -30,43 +30,43 @@ final class ShareReplay1 self._source = source } - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { _lock.lock(); defer { _lock.unlock() } - return _synchronized_subscribe(observer: observer) + return _synchronized_subscribe(observer) } - func _synchronized_subscribe(observer: O) -> Disposable { + func _synchronized_subscribe(_ observer: O) -> Disposable { if let element = self._element { - observer.on(event: .Next(element)) + observer.on(.next(element)) } if let stopEvent = self._stopEvent { - observer.on(event: stopEvent) + observer.on(stopEvent) return NopDisposable.instance } let initialCount = self._observers.count - let disposeKey = self._observers.insert(element: AnyObserver(observer)) + let disposeKey = self._observers.insert(AnyObserver(observer)) if initialCount == 0 { let connection = SingleAssignmentDisposable() _connection = connection - connection.disposable = self._source.subscribe(observer: self) + connection.disposable = self._source.subscribe(self) } return SubscriptionDisposable(owner: self, key: disposeKey) } - func synchronizedUnsubscribe(disposeKey: DisposeKey) { + func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { _lock.lock(); defer { _lock.unlock() } - _synchronized_unsubscribe(disposeKey: disposeKey) + _synchronized_unsubscribe(disposeKey) } - func _synchronized_unsubscribe(disposeKey: DisposeKey) { + func _synchronized_unsubscribe(_ disposeKey: DisposeKey) { // if already unsubscribed, just return - if self._observers.removeKey(key: disposeKey) == nil { + if self._observers.removeKey(disposeKey) == nil { return } @@ -76,26 +76,26 @@ final class ShareReplay1 } } - func on(event: Event) { + func on(_ event: Event) { _lock.lock(); defer { _lock.unlock() } - _synchronized_on(event: event) + _synchronized_on(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { if _stopped { return } switch event { - case .Next(let element): + case .next(let element): _element = element - case .Error, .Completed: + case .error, .completed: _stopEvent = event _stopped = true _connection?.dispose() _connection = nil } - _observers.on(event: event) + _observers.on(event) } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift b/RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift index 46de4b30..c47d0984 100644 --- a/RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift +++ b/RxSwift/Observables/Implementations/ShareReplay1WhileConnected.swift @@ -18,7 +18,7 @@ final class ShareReplay1WhileConnected private let _source: Observable - private var _lock = NSRecursiveLock() + private var _lock = RecursiveLock() private var _connection: SingleAssignmentDisposable? private var _element: Element? @@ -28,38 +28,38 @@ final class ShareReplay1WhileConnected self._source = source } - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { _lock.lock(); defer { _lock.unlock() } - return _synchronized_subscribe(observer: observer) + return _synchronized_subscribe(observer) } - func _synchronized_subscribe(observer: O) -> Disposable { + func _synchronized_subscribe(_ observer: O) -> Disposable { if let element = self._element { - observer.on(event: .Next(element)) + observer.on(.next(element)) } let initialCount = self._observers.count - let disposeKey = self._observers.insert(element: AnyObserver(observer)) + let disposeKey = self._observers.insert(AnyObserver(observer)) if initialCount == 0 { let connection = SingleAssignmentDisposable() _connection = connection - connection.disposable = self._source.subscribe(observer: self) + connection.disposable = self._source.subscribe(self) } return SubscriptionDisposable(owner: self, key: disposeKey) } - func synchronizedUnsubscribe(disposeKey: DisposeKey) { + func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { _lock.lock(); defer { _lock.unlock() } - _synchronized_unsubscribe(disposeKey: disposeKey) + _synchronized_unsubscribe(disposeKey) } - func _synchronized_unsubscribe(disposeKey: DisposeKey) { + func _synchronized_unsubscribe(_ disposeKey: DisposeKey) { // if already unsubscribed, just return - if self._observers.removeKey(key: disposeKey) == nil { + if self._observers.removeKey(disposeKey) == nil { return } @@ -70,23 +70,23 @@ final class ShareReplay1WhileConnected } } - func on(event: Event) { + func on(_ event: Event) { _lock.lock(); defer { _lock.unlock() } - _synchronized_on(event: event) + _synchronized_on(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): _element = element - _observers.on(event: event) - case .Error, .Completed: + _observers.on(event) + case .error, .completed: _element = nil _connection?.dispose() _connection = nil let observers = _observers _observers = Bag() - observers.on(event: event) + observers.on(event) } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/SingleAsync.swift b/RxSwift/Observables/Implementations/SingleAsync.swift index 6f4743db..619c87be 100644 --- a/RxSwift/Observables/Implementations/SingleAsync.swift +++ b/RxSwift/Observables/Implementations/SingleAsync.swift @@ -20,9 +20,9 @@ class SingleAsyncSink : S super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): do { let forward = try _parent._predicate?(value) ?? true if !forward { @@ -30,27 +30,27 @@ class SingleAsyncSink : S } } catch let error { - forwardOn(event: .Error(error as ErrorProtocol)) + forwardOn(.error(error as ErrorProtocol)) dispose() return } if _seenValue == false { _seenValue = true - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } else { - forwardOn(event: .Error(RxError.MoreThanOneElement)) + forwardOn(.error(RxError.moreThanOneElement)) dispose() } - case .Error: - forwardOn(event: event) + case .error: + forwardOn(event) dispose() - case .Completed: + case .completed: if (!_seenValue) { - forwardOn(event: .Error(RxError.NoElements)) + forwardOn(.error(RxError.noElements)) } else { - forwardOn(event: .Completed) + forwardOn(.completed) } dispose() } @@ -68,9 +68,9 @@ class SingleAsync: Producer { _predicate = predicate } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = SingleAsyncSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Sink.swift b/RxSwift/Observables/Implementations/Sink.swift index 1599e670..90fb5d00 100644 --- a/RxSwift/Observables/Implementations/Sink.swift +++ b/RxSwift/Observables/Implementations/Sink.swift @@ -13,16 +13,16 @@ class Sink : SingleAssignmentDisposable { init(observer: O) { #if TRACE_RESOURCES - AtomicIncrement(&resourceCount) + let _ = AtomicIncrement(&resourceCount) #endif _observer = observer } - final func forwardOn(event: Event) { + final func forwardOn(_ event: Event) { if disposed { return } - _observer.on(event: event) + _observer.on(event) } final func forwarder() -> SinkForward { @@ -31,7 +31,7 @@ class Sink : SingleAssignmentDisposable { deinit { #if TRACE_RESOURCES - AtomicDecrement(&resourceCount) + let _ = AtomicDecrement(&resourceCount) #endif } } @@ -45,13 +45,13 @@ class SinkForward: ObserverType { _forward = forward } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next: - _forward._observer.on(event: event) - case .Error, .Completed: - _forward._observer.on(event: event) + case .next: + _forward._observer.on(event) + case .error, .completed: + _forward._observer.on(event) _forward.dispose() } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Skip.swift b/RxSwift/Observables/Implementations/Skip.swift index 7acdc366..232d045a 100644 --- a/RxSwift/Observables/Implementations/Skip.swift +++ b/RxSwift/Observables/Implementations/Skip.swift @@ -24,21 +24,21 @@ class SkipCountSink : Sin super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): if remaining <= 0 { - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } else { remaining -= 1 } - case .Error: - forwardOn(event: event) + case .error: + forwardOn(event) self.dispose() - case .Completed: - forwardOn(event: event) + case .completed: + forwardOn(event) self.dispose() } } @@ -54,9 +54,9 @@ class SkipCount: Producer { self.count = count } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = SkipCountSink(parent: self, observer: observer) - sink.disposable = source.subscribe(observer: sink) + sink.disposable = source.subscribe(sink) return sink } @@ -78,17 +78,17 @@ class SkipTimeSink : Sink super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): if open { - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } - case .Error: - forwardOn(event: event) + case .error: + forwardOn(event) self.dispose() - case .Completed: - forwardOn(event: event) + case .completed: + forwardOn(event) self.dispose() } } @@ -98,12 +98,12 @@ class SkipTimeSink : Sink } func run() -> Disposable { - let disposeTimer = parent.scheduler.scheduleRelative(state: (), dueTime: self.parent.duration) { + let disposeTimer = parent.scheduler.scheduleRelative((), dueTime: self.parent.duration) { self.tick() return NopDisposable.instance } - let disposeSubscription = parent.source.subscribe(observer: self) + let disposeSubscription = parent.source.subscribe(self) return BinaryDisposable(disposeTimer, disposeSubscription) } @@ -120,9 +120,9 @@ class SkipTime: Producer { self.duration = duration } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = SkipTimeSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/SkipUntil.swift b/RxSwift/Observables/Implementations/SkipUntil.swift index b3c79e0d..588a52ce 100644 --- a/RxSwift/Observables/Implementations/SkipUntil.swift +++ b/RxSwift/Observables/Implementations/SkipUntil.swift @@ -17,7 +17,7 @@ class SkipUntilSinkOther) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next: + case .next: _parent._forwardElements = true _subscription.dispose() - case .Error(let e): - _parent.forwardOn(event: .Error(e)) + case .error(let e): + _parent.forwardOn(.error(e)) _parent.dispose() - case .Completed: + case .completed: _subscription.dispose() } } #if TRACE_RESOURCES deinit { - AtomicDecrement(&resourceCount) + let _ = AtomicDecrement(&resourceCount) } #endif @@ -64,7 +64,7 @@ class SkipUntilSink - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() private let _parent: Parent private var _forwardElements = false @@ -75,31 +75,31 @@ class SkipUntilSink) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next: + case .next: if _forwardElements { - forwardOn(event: event) + forwardOn(event) } - case .Error: - forwardOn(event: event) + case .error: + forwardOn(event) dispose() - case .Completed: + case .completed: if _forwardElements { - forwardOn(event: event) + forwardOn(event) } _sourceSubscription.dispose() } } func run() -> Disposable { - let sourceSubscription = _parent._source.subscribe(observer: self) + let sourceSubscription = _parent._source.subscribe(self) let otherObserver = SkipUntilSinkOther(parent: self) - let otherSubscription = _parent._other.subscribe(observer: otherObserver) + let otherSubscription = _parent._other.subscribe(otherObserver) _sourceSubscription.disposable = sourceSubscription otherObserver._subscription.disposable = otherSubscription @@ -117,7 +117,7 @@ class SkipUntil: Producer { _other = other } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = SkipUntilSink(parent: self, observer: observer) sink.disposable = sink.run() return sink diff --git a/RxSwift/Observables/Implementations/SkipWhile.swift b/RxSwift/Observables/Implementations/SkipWhile.swift index 065d6114..2aa84760 100644 --- a/RxSwift/Observables/Implementations/SkipWhile.swift +++ b/RxSwift/Observables/Implementations/SkipWhile.swift @@ -19,24 +19,24 @@ class SkipWhileSink : Sin super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): if !_running { do { _running = try !_parent._predicate(value) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() return } } if _running { - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } - case .Error, .Completed: - forwardOn(event: event) + case .error, .completed: + forwardOn(event) dispose() } } @@ -56,25 +56,25 @@ class SkipWhileSinkWithIndex) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): if !_running { do { _running = try !_parent._predicateWithIndex(value, _index) - try incrementChecked(i: &_index) + let _ = try incrementChecked(&_index) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() return } } if _running { - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } - case .Error, .Completed: - forwardOn(event: event) + case .error, .completed: + forwardOn(event) dispose() } } @@ -100,15 +100,15 @@ class SkipWhile: Producer { _predicateWithIndex = predicate } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { if let _ = _predicate { let sink = SkipWhileSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } else { let sink = SkipWhileSinkWithIndex(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } } diff --git a/RxSwift/Observables/Implementations/StartWith.swift b/RxSwift/Observables/Implementations/StartWith.swift index e00ac2a3..c8ffd975 100644 --- a/RxSwift/Observables/Implementations/StartWith.swift +++ b/RxSwift/Observables/Implementations/StartWith.swift @@ -18,11 +18,11 @@ class StartWith: Producer { super.init() } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { for e in elements { - observer.on(event: .Next(e)) + observer.on(.next(e)) } - return source.subscribe(observer: observer) + return source.subscribe(observer) } } diff --git a/RxSwift/Observables/Implementations/SubscribeOn.swift b/RxSwift/Observables/Implementations/SubscribeOn.swift index 38c66c9f..9ba48f2f 100644 --- a/RxSwift/Observables/Implementations/SubscribeOn.swift +++ b/RxSwift/Observables/Implementations/SubscribeOn.swift @@ -19,8 +19,8 @@ class SubscribeOnSink : S super.init(observer: observer) } - func on(event: Event) { - forwardOn(event: event) + func on(_ event: Event) { + forwardOn(event) if event.isStopEvent { self.dispose() @@ -33,8 +33,8 @@ class SubscribeOnSink : S disposeEverything.disposable = cancelSchedule - cancelSchedule.disposable = parent.scheduler.schedule(state: ()) { (_) -> Disposable in - let subscription = self.parent.source.subscribe(observer: self) + cancelSchedule.disposable = parent.scheduler.schedule(()) { (_) -> Disposable in + let subscription = self.parent.source.subscribe(self) disposeEverything.disposable = ScheduledDisposable(scheduler: self.parent.scheduler, disposable: subscription) return NopDisposable.instance } @@ -52,9 +52,9 @@ class SubscribeOn : Producer { self.scheduler = scheduler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = SubscribeOnSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Switch.swift b/RxSwift/Observables/Implementations/Switch.swift index 2fe1f777..ec19a7f6 100644 --- a/RxSwift/Observables/Implementations/Switch.swift +++ b/RxSwift/Observables/Implementations/Switch.swift @@ -18,7 +18,7 @@ class SwitchSink) -> Disposable { - let subscription = source.subscribe(observer: self) + func run(_ source: Observable) -> Disposable { + let subscription = source.subscribe(self) _subscriptions.disposable = subscription return StableCompositeDisposable.create(_subscriptions, _innerSubscription) } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func performMap(element: SourceType) throws -> S { + func performMap(_ element: SourceType) throws -> S { abstractMethod() } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): do { - let observable = try performMap(element: element).asObservable() + let observable = try performMap(element).asObservable() _hasLatest = true _latest = _latest &+ 1 let latest = _latest @@ -56,23 +56,23 @@ class SwitchSink) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next: break - case .Error, .Completed: + case .next: break + case .error, .completed: _self.dispose() } @@ -116,15 +116,15 @@ class SwitchSinkIter S { + override func performMap(_ element: S) throws -> S { return element } } @@ -153,7 +153,7 @@ final class MapSwitchSink S { + override func performMap(_ element: SourceType) throws -> S { return try _selector(element) } } @@ -167,9 +167,9 @@ final class Switch : Producer { _source = source } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = SwitchIdentitySink(observer: observer) - sink.disposable = sink.run(source: _source) + sink.disposable = sink.run(_source) return sink } } @@ -185,9 +185,9 @@ final class FlatMapLatest : Producer(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = MapSwitchSink(selector: _selector, observer: observer) - sink.disposable = sink.run(source: _source) + sink.disposable = sink.run(_source) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Take.swift b/RxSwift/Observables/Implementations/Take.swift index 4470cd3d..9535dae5 100644 --- a/RxSwift/Observables/Implementations/Take.swift +++ b/RxSwift/Observables/Implementations/Take.swift @@ -24,25 +24,25 @@ class TakeCountSink : Sin super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): if _remaining > 0 { _remaining -= 1 - forwardOn(event: .Next(value)) + forwardOn(.next(value)) if _remaining == 0 { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } } - case .Error: - forwardOn(event: event) + case .error: + forwardOn(event) dispose() - case .Completed: - forwardOn(event: event) + case .completed: + forwardOn(event) dispose() } } @@ -61,9 +61,9 @@ class TakeCount: Producer { _count = count } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = TakeCountSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } } @@ -80,26 +80,26 @@ class TakeTimeSink private let _parent: Parent - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() init(parent: Parent, observer: O) { _parent = parent super.init(observer: observer) } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(let value): - forwardOn(event: .Next(value)) - case .Error: - forwardOn(event: event) + case .next(let value): + forwardOn(.next(value)) + case .error: + forwardOn(event) dispose() - case .Completed: - forwardOn(event: event) + case .completed: + forwardOn(event) dispose() } } @@ -107,17 +107,17 @@ class TakeTimeSink func tick() { _lock.lock(); defer { _lock.unlock() } - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } func run() -> Disposable { - let disposeTimer = _parent._scheduler.scheduleRelative(state: (), dueTime: _parent._duration) { + let disposeTimer = _parent._scheduler.scheduleRelative((), dueTime: _parent._duration) { self.tick() return NopDisposable.instance } - let disposeSubscription = _parent._source.subscribe(observer: self) + let disposeSubscription = _parent._source.subscribe(self) return BinaryDisposable(disposeTimer, disposeSubscription) } @@ -136,9 +136,9 @@ class TakeTime : Producer { _duration = duration } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = TakeTimeSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/TakeLast.swift b/RxSwift/Observables/Implementations/TakeLast.swift index b11eba4b..6ac38f00 100644 --- a/RxSwift/Observables/Implementations/TakeLast.swift +++ b/RxSwift/Observables/Implementations/TakeLast.swift @@ -23,21 +23,21 @@ class TakeLastSink : Sink super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): - _elements.enqueue(element: value) + case .next(let value): + _elements.enqueue(value) if _elements.count > self._parent._count { - _elements.dequeue() + let _ = _elements.dequeue() } - case .Error: - forwardOn(event: event) + case .error: + forwardOn(event) dispose() - case .Completed: + case .completed: for e in _elements { - forwardOn(event: .Next(e)) + forwardOn(.next(e)) } - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } } @@ -55,9 +55,9 @@ class TakeLast: Producer { _count = count } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = TakeLastSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/TakeUntil.swift b/RxSwift/Observables/Implementations/TakeUntil.swift index 53b8b399..5d7cac90 100644 --- a/RxSwift/Observables/Implementations/TakeUntil.swift +++ b/RxSwift/Observables/Implementations/TakeUntil.swift @@ -17,7 +17,7 @@ class TakeUntilSinkOther) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next: - _parent.forwardOn(event: .Completed) + case .next: + _parent.forwardOn(.completed) _parent.dispose() - case .Error(let e): - _parent.forwardOn(event: .Error(e)) + case .error(let e): + _parent.forwardOn(.error(e)) _parent.dispose() - case .Completed: + case .completed: _parent._open = true _subscription.dispose() } @@ -50,7 +50,7 @@ class TakeUntilSinkOther) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next: - forwardOn(event: event) - case .Error: - forwardOn(event: event) + case .next: + forwardOn(event) + case .error: + forwardOn(event) dispose() - case .Completed: - forwardOn(event: event) + case .completed: + forwardOn(event) dispose() } } func run() -> Disposable { let otherObserver = TakeUntilSinkOther(parent: self) - let otherSubscription = _parent._other.subscribe(observer: otherObserver) + let otherSubscription = _parent._other.subscribe(otherObserver) otherObserver._subscription.disposable = otherSubscription - let sourceSubscription = _parent._source.subscribe(observer: self) + let sourceSubscription = _parent._source.subscribe(self) return StableCompositeDisposable.create(sourceSubscription, otherObserver._subscription) } @@ -112,9 +112,9 @@ class TakeUntil: Producer { _other = other } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = TakeUntilSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/TakeWhile.swift b/RxSwift/Observables/Implementations/TakeWhile.swift index 8a55b0fd..b8c603e8 100644 --- a/RxSwift/Observables/Implementations/TakeWhile.swift +++ b/RxSwift/Observables/Implementations/TakeWhile.swift @@ -23,9 +23,9 @@ class TakeWhileSink super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): if !_running { return } @@ -33,19 +33,19 @@ class TakeWhileSink do { _running = try _parent._predicate(value) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() return } if _running { - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } else { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } - case .Error, .Completed: - forwardOn(event: event) + case .error, .completed: + forwardOn(event) dispose() } } @@ -68,30 +68,30 @@ class TakeWhileSinkWithIndex) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): if !_running { return } do { _running = try _parent._predicateWithIndex(value, _index) - try incrementChecked(i: &_index) + let _ = try incrementChecked(&_index) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() return } if _running { - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } else { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } - case .Error, .Completed: - forwardOn(event: event) + case .error, .completed: + forwardOn(event) dispose() } } @@ -118,15 +118,15 @@ class TakeWhile: Producer { _predicateWithIndex = predicate } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { if let _ = _predicate { let sink = TakeWhileSink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } else { let sink = TakeWhileSinkWithIndex(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Throttle.swift b/RxSwift/Observables/Implementations/Throttle.swift index 7cd4d367..5ce1132d 100644 --- a/RxSwift/Observables/Implementations/Throttle.swift +++ b/RxSwift/Observables/Implementations/Throttle.swift @@ -18,7 +18,7 @@ class ThrottleSink private let _parent: ParentType - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private var _id = 0 as UInt64 @@ -33,18 +33,18 @@ class ThrottleSink } func run() -> Disposable { - let subscription = _parent._source.subscribe(observer: self) + let subscription = _parent._source.subscribe(self) return StableCompositeDisposable.create(subscription, cancellable) } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(let element): + case .next(let element): _id = _id &+ 1 let currentId = _id _value = element @@ -55,28 +55,28 @@ class ThrottleSink let d = SingleAssignmentDisposable() self.cancellable.disposable = d - d.disposable = scheduler.scheduleRelative(state: currentId, dueTime: dueTime, action: self.propagate) - case .Error: + d.disposable = scheduler.scheduleRelative(currentId, dueTime: dueTime, action: self.propagate) + case .error: _value = nil - forwardOn(event: event) + forwardOn(event) dispose() - case .Completed: + case .completed: if let value = _value { _value = nil - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } } - func propagate(currentId: UInt64) -> Disposable { + func propagate(_ currentId: UInt64) -> Disposable { _lock.lock(); defer { _lock.unlock() } // { let originalValue = _value if let value = originalValue where _id == currentId { _value = nil - forwardOn(event: .Next(value)) + forwardOn(.next(value)) } // } return NopDisposable.instance @@ -95,10 +95,10 @@ class Throttle : Producer { _scheduler = scheduler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ThrottleSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Timeout.swift b/RxSwift/Observables/Implementations/Timeout.swift index 52aec9d5..f6686563 100644 --- a/RxSwift/Observables/Implementations/Timeout.swift +++ b/RxSwift/Observables/Implementations/Timeout.swift @@ -14,7 +14,7 @@ class TimeoutSink: Sink: Sink) { + func on(_ event: Event) { switch event { - case .Next: + case .next: var onNextWins = false _lock.performLocked() { @@ -51,10 +51,10 @@ class TimeoutSink: Sink: Sink: Sink: Sink : Producer { _scheduler = scheduler } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = TimeoutSink(parent: self, observer: observer) sink.disposable = sink.run() return sink diff --git a/RxSwift/Observables/Implementations/Timer.swift b/RxSwift/Observables/Implementations/Timer.swift index 35d5eec5..02d5f9b5 100644 --- a/RxSwift/Observables/Implementations/Timer.swift +++ b/RxSwift/Observables/Implementations/Timer.swift @@ -19,8 +19,8 @@ class TimerSink : Sink { } func run() -> Disposable { - return _parent._scheduler.schedulePeriodic(state: 0 as O.E, startAfter: _parent._dueTime, period: _parent._period!) { state in - self.forwardOn(event: .Next(state)) + return _parent._scheduler.schedulePeriodic(0 as O.E, startAfter: _parent._dueTime, period: _parent._period!) { state in + self.forwardOn(.next(state)) return state &+ 1 } } @@ -37,9 +37,9 @@ class TimerOneOffSink : Sink { } func run() -> Disposable { - return _parent._scheduler.scheduleRelative(state: (), dueTime: _parent._dueTime) { (_) -> Disposable in - self.forwardOn(event: .Next(0)) - self.forwardOn(event: .Completed) + return _parent._scheduler.scheduleRelative((), dueTime: _parent._dueTime) { (_) -> Disposable in + self.forwardOn(.next(0)) + self.forwardOn(.completed) return NopDisposable.instance } @@ -57,7 +57,7 @@ class Timer: Producer { _period = period } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { if let _ = _period { let sink = TimerSink(parent: self, observer: observer) sink.disposable = sink.run() @@ -69,4 +69,4 @@ class Timer: Producer { return sink } } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/ToArray.swift b/RxSwift/Observables/Implementations/ToArray.swift index c847adf1..46754bcb 100644 --- a/RxSwift/Observables/Implementations/ToArray.swift +++ b/RxSwift/Observables/Implementations/ToArray.swift @@ -20,16 +20,16 @@ class ToArraySink : Sink< super.init(observer: observer) } - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next(let value): + case .next(let value): self._list.append(value) - case .Error(let e): - forwardOn(event: .Error(e)) + case .error(let e): + forwardOn(.error(e)) self.dispose() - case .Completed: - forwardOn(event: .Next(_list)) - forwardOn(event: .Completed) + case .completed: + forwardOn(.next(_list)) + forwardOn(.completed) self.dispose() } } @@ -42,9 +42,9 @@ class ToArray : Producer<[SourceType]> { _source = source } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ToArraySink(parent: self, observer: observer) - sink.disposable = _source.subscribe(observer: sink) + sink.disposable = _source.subscribe(sink) return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Using.swift b/RxSwift/Observables/Implementations/Using.swift index 02d94b47..2252717c 100644 --- a/RxSwift/Observables/Implementations/Using.swift +++ b/RxSwift/Observables/Implementations/Using.swift @@ -29,26 +29,26 @@ class UsingSink) { + func on(_ event: Event) { switch event { - case let .Next(value): - forwardOn(event: .Next(value)) - case let .Error(error): - forwardOn(event: .Error(error)) + case let .next(value): + forwardOn(.next(value)) + case let .error(error): + forwardOn(.error(error)) dispose() - case .Completed: - forwardOn(event: .Completed) + case .completed: + forwardOn(.completed) dispose() } } @@ -70,9 +70,9 @@ class Using: Producer { _observableFactory = observableFactory } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = UsingSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Window.swift b/RxSwift/Observables/Implementations/Window.swift index 7cfa6bec..71489391 100644 --- a/RxSwift/Observables/Implementations/Window.swift +++ b/RxSwift/Observables/Implementations/Window.swift @@ -18,7 +18,7 @@ class WindowTimeCountSink() private var _count = 0 @@ -31,7 +31,7 @@ class WindowTimeCountSink Disposable { - forwardOn(event: .Next(AddRef(source: _subject, refCount: _refCountDisposable).asObservable())) - createTimer(windowId: _windowId) + forwardOn(.next(AddRef(source: _subject, refCount: _refCountDisposable).asObservable())) + createTimer(_windowId) - _groupDisposable.addDisposable(disposable: _parent._source.subscribeSafe(observer: self)) + let _ = _groupDisposable.addDisposable(_parent._source.subscribeSafe(self)) return _refCountDisposable } func startNewWindowAndCompleteCurrentOne() { - _subject.on(event: .Completed) + _subject.on(.completed) _subject = PublishSubject() - forwardOn(event: .Next(AddRef(source: _subject, refCount: _refCountDisposable).asObservable())) + forwardOn(.next(AddRef(source: _subject, refCount: _refCountDisposable).asObservable())) } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { var newWindow = false var newId = 0 switch event { - case .Next(let element): - _subject.on(event: .Next(element)) + case .next(let element): + _subject.on(.next(element)) do { - try incrementChecked(i: &_count) + let _ = try incrementChecked(&_count) } catch (let e) { - _subject.on(event: .Error(e as ErrorProtocol)) + _subject.on(.error(e as ErrorProtocol)) dispose() } @@ -80,22 +80,22 @@ class WindowTimeCountSink : Producer> { _scheduler = scheduler } - override func run>(observer: O) -> Disposable { + override func run>(_ observer: O) -> Disposable { let sink = WindowTimeCountSink(parent: self, observer: observer) sink.disposable = sink.run() return sink diff --git a/RxSwift/Observables/Implementations/WithLatestFrom.swift b/RxSwift/Observables/Implementations/WithLatestFrom.swift index 0a5e77ef..6e2b4391 100644 --- a/RxSwift/Observables/Implementations/WithLatestFrom.swift +++ b/RxSwift/Observables/Implementations/WithLatestFrom.swift @@ -19,7 +19,7 @@ class WithLatestFromSink) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case let .Next(value): + case let .next(value): guard let latest = _latest else { return } do { let res = try _parent._resultSelector(value, latest) - forwardOn(event: .Next(res)) + forwardOn(.next(res)) } catch let e { - forwardOn(event: .Error(e)) + forwardOn(.error(e)) dispose() } - case .Completed: - forwardOn(event: .Completed) + case .completed: + forwardOn(.completed) dispose() - case let .Error(error): - forwardOn(event: .Error(error)) + case let .error(error): + forwardOn(.error(error)) dispose() } } @@ -75,7 +75,7 @@ class WithLatestFromSecond) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case let .Next(value): + case let .next(value): _parent._latest = value - case .Completed: + case .completed: _disposable.dispose() - case let .Error(error): - _parent.forwardOn(event: .Error(error)) + case let .error(error): + _parent.forwardOn(.error(error)) _parent.dispose() } } @@ -114,9 +114,9 @@ class WithLatestFrom: Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = WithLatestFromSink(parent: self, observer: observer) sink.disposable = sink.run() return sink } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Implementations/Zip+CollectionType.swift b/RxSwift/Observables/Implementations/Zip+CollectionType.swift index f2c145ef..2a631b13 100644 --- a/RxSwift/Observables/Implementations/Zip+CollectionType.swift +++ b/RxSwift/Observables/Implementations/Zip+CollectionType.swift @@ -15,7 +15,7 @@ class ZipCollectionTypeSink, atIndex: Int) { + func on(_ event: Event, atIndex: Int) { _lock.lock(); defer { _lock.unlock() } // { switch event { - case .Next(let element): - _values[atIndex].enqueue(element: element) + case .next(let element): + _values[atIndex].enqueue(element) if _values[atIndex].count == 1 { _numberOfValues += 1 @@ -51,7 +51,7 @@ class ZipCollectionTypeSink(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ZipCollectionTypeSink(parent: self, observer: observer) sink.disposable = sink.run() return sink diff --git a/RxSwift/Observables/Implementations/Zip+arity.swift b/RxSwift/Observables/Implementations/Zip+arity.swift index 512a6197..6d7c1e2c 100644 --- a/RxSwift/Observables/Implementations/Zip+arity.swift +++ b/RxSwift/Observables/Implementations/Zip+arity.swift @@ -22,7 +22,7 @@ extension Observable { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip (_ source1: O1, _ source2: O2, resultSelector: (O1.E, O2.E) throws -> E) -> Observable { @@ -47,7 +47,7 @@ class ZipSink2_ : ZipSink { super.init(arity: 2, observer: observer) } - override func hasElements(index: Int) -> Bool { + override func hasElements(_ index: Int) -> Bool { switch (index) { case 0: return _values1.count > 0 case 1: return _values2.count > 0 @@ -63,11 +63,11 @@ class ZipSink2_ : ZipSink { let subscription1 = SingleAssignmentDisposable() let subscription2 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue(element: $0) }, this: subscription1) - let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue(element: $0) }, this: subscription2) + let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) - subscription1.disposable = _parent.source1.subscribe(observer: observer1) - subscription2.disposable = _parent.source2.subscribe(observer: observer2) + subscription1.disposable = _parent.source1.subscribe( observer1) + subscription2.disposable = _parent.source2.subscribe( observer2) return CompositeDisposable(disposables: [ subscription1, @@ -95,7 +95,7 @@ class Zip2 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ZipSink2_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -115,7 +115,7 @@ extension Observable { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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) -> Observable { @@ -141,7 +141,7 @@ class ZipSink3_ : ZipSink { super.init(arity: 3, observer: observer) } - override func hasElements(index: Int) -> Bool { + override func hasElements(_ index: Int) -> Bool { switch (index) { case 0: return _values1.count > 0 case 1: return _values2.count > 0 @@ -159,13 +159,13 @@ class ZipSink3_ : ZipSink { let subscription2 = SingleAssignmentDisposable() let subscription3 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue(element: $0) }, this: subscription1) - let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue(element: $0) }, this: subscription2) - let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue(element: $0) }, this: subscription3) + let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) - subscription1.disposable = _parent.source1.subscribe(observer: observer1) - subscription2.disposable = _parent.source2.subscribe(observer: observer2) - subscription3.disposable = _parent.source3.subscribe(observer: observer3) + subscription1.disposable = _parent.source1.subscribe( observer1) + subscription2.disposable = _parent.source2.subscribe( observer2) + subscription3.disposable = _parent.source3.subscribe( observer3) return CompositeDisposable(disposables: [ subscription1, @@ -196,7 +196,7 @@ class Zip3 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ZipSink3_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -216,7 +216,7 @@ extension Observable { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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) -> Observable { @@ -243,7 +243,7 @@ class ZipSink4_ : ZipSink { super.init(arity: 4, observer: observer) } - override func hasElements(index: Int) -> Bool { + override func hasElements(_ index: Int) -> Bool { switch (index) { case 0: return _values1.count > 0 case 1: return _values2.count > 0 @@ -263,15 +263,15 @@ class ZipSink4_ : ZipSink { let subscription3 = SingleAssignmentDisposable() let subscription4 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue(element: $0) }, this: subscription1) - let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue(element: $0) }, this: subscription2) - let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue(element: $0) }, this: subscription3) - let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue(element: $0) }, this: subscription4) + let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) + let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4) - subscription1.disposable = _parent.source1.subscribe(observer: observer1) - subscription2.disposable = _parent.source2.subscribe(observer: observer2) - subscription3.disposable = _parent.source3.subscribe(observer: observer3) - subscription4.disposable = _parent.source4.subscribe(observer: observer4) + subscription1.disposable = _parent.source1.subscribe( observer1) + subscription2.disposable = _parent.source2.subscribe( observer2) + subscription3.disposable = _parent.source3.subscribe( observer3) + subscription4.disposable = _parent.source4.subscribe( observer4) return CompositeDisposable(disposables: [ subscription1, @@ -305,7 +305,7 @@ class Zip4 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ZipSink4_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -325,7 +325,7 @@ extension Observable { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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) -> Observable { @@ -353,7 +353,7 @@ class ZipSink5_ : ZipSink { super.init(arity: 5, observer: observer) } - override func hasElements(index: Int) -> Bool { + override func hasElements(_ index: Int) -> Bool { switch (index) { case 0: return _values1.count > 0 case 1: return _values2.count > 0 @@ -375,17 +375,17 @@ class ZipSink5_ : ZipSink { let subscription4 = SingleAssignmentDisposable() let subscription5 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue(element: $0) }, this: subscription1) - let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue(element: $0) }, this: subscription2) - let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue(element: $0) }, this: subscription3) - let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue(element: $0) }, this: subscription4) - let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue(element: $0) }, this: subscription5) + let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) + let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4) + let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5) - subscription1.disposable = _parent.source1.subscribe(observer: observer1) - subscription2.disposable = _parent.source2.subscribe(observer: observer2) - subscription3.disposable = _parent.source3.subscribe(observer: observer3) - subscription4.disposable = _parent.source4.subscribe(observer: observer4) - subscription5.disposable = _parent.source5.subscribe(observer: observer5) + subscription1.disposable = _parent.source1.subscribe( observer1) + subscription2.disposable = _parent.source2.subscribe( observer2) + subscription3.disposable = _parent.source3.subscribe( observer3) + subscription4.disposable = _parent.source4.subscribe( observer4) + subscription5.disposable = _parent.source5.subscribe( observer5) return CompositeDisposable(disposables: [ subscription1, @@ -422,7 +422,7 @@ class Zip5 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ZipSink5_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -442,7 +442,7 @@ extension Observable { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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) -> Observable { @@ -471,7 +471,7 @@ class ZipSink6_ : ZipSink { super.init(arity: 6, observer: observer) } - override func hasElements(index: Int) -> Bool { + override func hasElements(_ index: Int) -> Bool { switch (index) { case 0: return _values1.count > 0 case 1: return _values2.count > 0 @@ -495,19 +495,19 @@ class ZipSink6_ : ZipSink { let subscription5 = SingleAssignmentDisposable() let subscription6 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue(element: $0) }, this: subscription1) - let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue(element: $0) }, this: subscription2) - let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue(element: $0) }, this: subscription3) - let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue(element: $0) }, this: subscription4) - let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue(element: $0) }, this: subscription5) - let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue(element: $0) }, this: subscription6) + let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) + let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4) + let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5) + let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6) - subscription1.disposable = _parent.source1.subscribe(observer: observer1) - subscription2.disposable = _parent.source2.subscribe(observer: observer2) - subscription3.disposable = _parent.source3.subscribe(observer: observer3) - subscription4.disposable = _parent.source4.subscribe(observer: observer4) - subscription5.disposable = _parent.source5.subscribe(observer: observer5) - subscription6.disposable = _parent.source6.subscribe(observer: observer6) + subscription1.disposable = _parent.source1.subscribe( observer1) + subscription2.disposable = _parent.source2.subscribe( observer2) + subscription3.disposable = _parent.source3.subscribe( observer3) + subscription4.disposable = _parent.source4.subscribe( observer4) + subscription5.disposable = _parent.source5.subscribe( observer5) + subscription6.disposable = _parent.source6.subscribe( observer6) return CompositeDisposable(disposables: [ subscription1, @@ -547,7 +547,7 @@ class Zip6 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ZipSink6_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -567,7 +567,7 @@ extension Observable { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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) -> Observable { @@ -597,7 +597,7 @@ class ZipSink7_ : ZipSink { super.init(arity: 7, observer: observer) } - override func hasElements(index: Int) -> Bool { + override func hasElements(_ index: Int) -> Bool { switch (index) { case 0: return _values1.count > 0 case 1: return _values2.count > 0 @@ -623,21 +623,21 @@ class ZipSink7_ : ZipSink { let subscription6 = SingleAssignmentDisposable() let subscription7 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue(element: $0) }, this: subscription1) - let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue(element: $0) }, this: subscription2) - let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue(element: $0) }, this: subscription3) - let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue(element: $0) }, this: subscription4) - let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue(element: $0) }, this: subscription5) - let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue(element: $0) }, this: subscription6) - let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue(element: $0) }, this: subscription7) + let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) + let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4) + let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5) + let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6) + let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7) - subscription1.disposable = _parent.source1.subscribe(observer: observer1) - subscription2.disposable = _parent.source2.subscribe(observer: observer2) - subscription3.disposable = _parent.source3.subscribe(observer: observer3) - subscription4.disposable = _parent.source4.subscribe(observer: observer4) - subscription5.disposable = _parent.source5.subscribe(observer: observer5) - subscription6.disposable = _parent.source6.subscribe(observer: observer6) - subscription7.disposable = _parent.source7.subscribe(observer: observer7) + subscription1.disposable = _parent.source1.subscribe( observer1) + subscription2.disposable = _parent.source2.subscribe( observer2) + subscription3.disposable = _parent.source3.subscribe( observer3) + subscription4.disposable = _parent.source4.subscribe( observer4) + subscription5.disposable = _parent.source5.subscribe( observer5) + subscription6.disposable = _parent.source6.subscribe( observer6) + subscription7.disposable = _parent.source7.subscribe( observer7) return CompositeDisposable(disposables: [ subscription1, @@ -680,7 +680,7 @@ class Zip7 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ZipSink7_(parent: self, observer: observer) sink.disposable = sink.run() return sink @@ -700,7 +700,7 @@ extension Observable { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @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) -> Observable { @@ -731,7 +731,7 @@ class ZipSink8_ : ZipSink { super.init(arity: 8, observer: observer) } - override func hasElements(index: Int) -> Bool { + override func hasElements(_ index: Int) -> Bool { switch (index) { case 0: return _values1.count > 0 case 1: return _values2.count > 0 @@ -759,23 +759,23 @@ class ZipSink8_ : ZipSink { let subscription7 = SingleAssignmentDisposable() let subscription8 = SingleAssignmentDisposable() - let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue(element: $0) }, this: subscription1) - let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue(element: $0) }, this: subscription2) - let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue(element: $0) }, this: subscription3) - let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue(element: $0) }, this: subscription4) - let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue(element: $0) }, this: subscription5) - let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue(element: $0) }, this: subscription6) - let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue(element: $0) }, this: subscription7) - let observer8 = ZipObserver(lock: _lock, parent: self, index: 7, setNextValue: { self._values8.enqueue(element: $0) }, this: subscription8) + let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1) + let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2) + let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3) + let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4) + let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5) + let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6) + let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7) + let observer8 = ZipObserver(lock: _lock, parent: self, index: 7, setNextValue: { self._values8.enqueue($0) }, this: subscription8) - subscription1.disposable = _parent.source1.subscribe(observer: observer1) - subscription2.disposable = _parent.source2.subscribe(observer: observer2) - subscription3.disposable = _parent.source3.subscribe(observer: observer3) - subscription4.disposable = _parent.source4.subscribe(observer: observer4) - subscription5.disposable = _parent.source5.subscribe(observer: observer5) - subscription6.disposable = _parent.source6.subscribe(observer: observer6) - subscription7.disposable = _parent.source7.subscribe(observer: observer7) - subscription8.disposable = _parent.source8.subscribe(observer: observer8) + subscription1.disposable = _parent.source1.subscribe( observer1) + subscription2.disposable = _parent.source2.subscribe( observer2) + subscription3.disposable = _parent.source3.subscribe( observer3) + subscription4.disposable = _parent.source4.subscribe( observer4) + subscription5.disposable = _parent.source5.subscribe( observer5) + subscription6.disposable = _parent.source6.subscribe( observer6) + subscription7.disposable = _parent.source7.subscribe( observer7) + subscription8.disposable = _parent.source8.subscribe( observer8) return CompositeDisposable(disposables: [ subscription1, @@ -821,7 +821,7 @@ class Zip8 : Producer { _resultSelector = resultSelector } - override func run(observer: O) -> Disposable { + override func run(_ observer: O) -> Disposable { let sink = ZipSink8_(parent: self, observer: observer) sink.disposable = sink.run() return sink diff --git a/RxSwift/Observables/Implementations/Zip+arity.tt b/RxSwift/Observables/Implementations/Zip+arity.tt index d72f9582..8ea7d4e1 100644 --- a/RxSwift/Observables/Implementations/Zip+arity.tt +++ b/RxSwift/Observables/Implementations/Zip+arity.tt @@ -21,7 +21,7 @@ extension Observable { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func zip<<%= (Array(1...i).map { "O\($0): ObservableType" }).joinWithSeparator(", ") %>> (<%= (Array(1...i).map { "_ source\($0): O\($0)" }).joinWithSeparator(", ") %>, resultSelector: (<%= (Array(1...i).map { "O\($0).E" }).joinWithSeparator(", ") %>) throws -> E) -> Observable { @@ -65,11 +65,11 @@ class ZipSink<%= i %>_<<%= (Array(1...i).map { "E\($0)" }).joinWithSeparator(", }).joinWithSeparator("\n") %> <%= (Array(1...i).map { -" let observer\($0) = ZipObserver(lock: _lock, parent: self, index: \($0 - 1), setNextValue: { self._values\($0).enqueue(element: $0) }, this: subscription\($0))" +" let observer\($0) = ZipObserver(lock: _lock, parent: self, index: \($0 - 1), setNextValue: { self._values\($0).enqueue($0) }, this: subscription\($0))" }).joinWithSeparator("\n") %> <%= (Array(1...i).map { -" subscription\($0).disposable = _parent.source\($0).subscribe(observer: observer\($0))" }).joinWithSeparator("\n") +" subscription\($0).disposable = _parent.source\($0).subscribe(observer\($0))" }).joinWithSeparator("\n") %> return CompositeDisposable(disposables: [ @@ -104,4 +104,4 @@ class Zip<%= i %><<%= (Array(1...i).map { "E\($0)" }).joinWithSeparator(", ") %> } } -<% } %> \ No newline at end of file +<% } %> diff --git a/RxSwift/Observables/Implementations/Zip.swift b/RxSwift/Observables/Implementations/Zip.swift index c37cbab6..9d2e46ad 100644 --- a/RxSwift/Observables/Implementations/Zip.swift +++ b/RxSwift/Observables/Implementations/Zip.swift @@ -10,9 +10,9 @@ import Foundation protocol ZipSinkProtocol : class { - func next(index: Int) - func fail(error: ErrorProtocol) - func done(index: Int) + func next(_ index: Int) + func fail(_ error: ErrorProtocol) + func done(_ index: Int) } class ZipSink : Sink, ZipSinkProtocol { @@ -20,7 +20,7 @@ class ZipSink : Sink, ZipSinkProtocol { let _arity: Int - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private var _isDone: [Bool] @@ -36,15 +36,15 @@ class ZipSink : Sink, ZipSinkProtocol { abstractMethod() } - func hasElements(index: Int) -> Bool { + func hasElements(_ index: Int) -> Bool { abstractMethod() } - func next(index: Int) { + func next(_ index: Int) { var hasValueAll = true for i in 0 ..< _arity { - if !hasElements(index: i) { + if !hasElements(i) { hasValueAll = false break } @@ -53,10 +53,10 @@ class ZipSink : Sink, ZipSinkProtocol { if hasValueAll { do { let result = try getResult() - self.forwardOn(event: .Next(result)) + self.forwardOn(.next(result)) } catch let e { - self.forwardOn(event: .Error(e)) + self.forwardOn(.error(e)) dispose() } } @@ -72,18 +72,18 @@ class ZipSink : Sink, ZipSinkProtocol { } if allOthersDone { - forwardOn(event: .Completed) + forwardOn(.completed) self.dispose() } } } - func fail(error: ErrorProtocol) { - forwardOn(event: .Error(error)) + func fail(_ error: ErrorProtocol) { + forwardOn(.error(error)) dispose() } - func done(index: Int) { + func done(_ index: Int) { _isDone[index] = true var allDone = true @@ -96,7 +96,7 @@ class ZipSink : Sink, ZipSinkProtocol { } if allDone { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } } @@ -111,14 +111,14 @@ class ZipObserver private var _parent: ZipSinkProtocol? - let _lock: NSRecursiveLock + let _lock: RecursiveLock // state private let _index: Int private let _this: Disposable private let _setNextValue: ValueSetter - init(lock: NSRecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: ValueSetter, this: Disposable) { + init(lock: RecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: ValueSetter, this: Disposable) { _lock = lock _parent = parent _index = index @@ -126,31 +126,31 @@ class ZipObserver _setNextValue = setNextValue } - func on(event: Event) { - synchronizedOn(event: event) + func on(_ event: Event) { + synchronizedOn(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { if let _ = _parent { switch event { - case .Next(_): + case .next(_): break - case .Error(_): + case .error(_): _this.dispose() - case .Completed: + case .completed: _this.dispose() } } if let parent = _parent { switch event { - case .Next(let value): + case .next(let value): _setNextValue(value) - parent.next(index: _index) - case .Error(let error): - parent.fail(error: error) - case .Completed: - parent.done(index: _index) + parent.next(_index) + case .error(let error): + parent.fail(error) + case .completed: + parent.done(_index) } } } diff --git a/RxSwift/Observables/Observable+Aggregate.swift b/RxSwift/Observables/Observable+Aggregate.swift index d65cb927..b1babb79 100644 --- a/RxSwift/Observables/Observable+Aggregate.swift +++ b/RxSwift/Observables/Observable+Aggregate.swift @@ -24,8 +24,8 @@ extension ObservableType { - parameter mapResult: A function to transform the final accumulator value into the result value. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func reduce(_ seed: A, accumulator: (A, E) throws -> A, mapResult: (A) throws -> R) -> Observable { return Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: mapResult) } @@ -41,8 +41,8 @@ extension ObservableType { - parameter accumulator: A accumulator function to be invoked on each element. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func reduce(_ seed: A, accumulator: (A, E) throws -> A) -> Observable { return Reduce(source: self.asObservable(), seed: seed, accumulator: accumulator, mapResult: { $0 }) } @@ -56,7 +56,7 @@ extension ObservableType { - returns: An observable sequence containing all the emitted elements as array. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func toArray() -> Observable<[E]> { return ToArray(source: self.asObservable()) diff --git a/RxSwift/Observables/Observable+Binding.swift b/RxSwift/Observables/Observable+Binding.swift index e036b74d..e2de64f1 100644 --- a/RxSwift/Observables/Observable+Binding.swift +++ b/RxSwift/Observables/Observable+Binding.swift @@ -24,8 +24,8 @@ extension ObservableType { - parameter subject: Subject to push source elements into. - returns: A connectable observable sequence that upon connection causes the source sequence to push results into the specified subject. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func multicast(subject: S) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func multicast(_ subject: S) -> ConnectableObservable { return ConnectableObservableAdapter(source: self.asObservable(), subject: subject) } @@ -43,8 +43,8 @@ extension ObservableType { - parameter selector: Selector function which can use the multicasted source sequence subject to the policies enforced by the created subject. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func multicast(_ subjectSelector: () throws -> S, selector: (Observable) throws -> Observable) -> Observable { return Multicast( source: self.asObservable(), @@ -67,9 +67,9 @@ extension ObservableType { - returns: A connectable observable sequence that shares a single subscription to the underlying sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func publish() -> ConnectableObservable { - return self.multicast(subject: PublishSubject()) + return self.multicast(PublishSubject()) } } @@ -87,10 +87,10 @@ extension ObservableType { - parameter bufferSize: Maximum element count of the replay buffer. - returns: A connectable observable sequence that shares a single subscription to the underlying sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func replay(bufferSize: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func replay(_ bufferSize: Int) -> ConnectableObservable { - return self.multicast(subject: ReplaySubject.create(bufferSize: bufferSize)) + return self.multicast(ReplaySubject.create(bufferSize)) } /** @@ -102,10 +102,10 @@ extension ObservableType { - returns: A connectable observable sequence that shares a single subscription to the underlying sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func replayAll() -> ConnectableObservable { - return self.multicast(subject: ReplaySubject.createUnbounded()) + return self.multicast(ReplaySubject.createUnbounded()) } } @@ -120,7 +120,7 @@ extension ConnectableObservableType { - returns: An observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func refCount() -> Observable { return RefCount(source: self) } @@ -139,7 +139,7 @@ extension ObservableType { - returns: An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func share() -> Observable { return self.publish().refCount() } @@ -159,14 +159,14 @@ extension ObservableType { - parameter bufferSize: Maximum element count of the replay buffer. - returns: An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func shareReplay(bufferSize: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func shareReplay(_ bufferSize: Int) -> Observable { if bufferSize == 1 { return ShareReplay1(source: self.asObservable()) } else { - return self.replay(bufferSize: bufferSize).refCount() + return self.replay(bufferSize).refCount() } } @@ -182,9 +182,9 @@ extension ObservableType { - returns: An observable sequence that contains the elements of a sequence produced by multicasting the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func shareReplayLatestWhileConnected() -> Observable { return ShareReplay1WhileConnected(source: self.asObservable()) } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Observable+Concurrency.swift b/RxSwift/Observables/Observable+Concurrency.swift index bd658141..e44c4f84 100644 --- a/RxSwift/Observables/Observable+Concurrency.swift +++ b/RxSwift/Observables/Observable+Concurrency.swift @@ -23,8 +23,8 @@ extension ObservableType { - parameter scheduler: Scheduler to notify observers on. - returns: The source sequence whose observations happen on the specified scheduler. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func observeOn(scheduler: ImmediateSchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func observeOn(_ scheduler: ImmediateSchedulerType) -> Observable { if let scheduler = scheduler as? SerialDispatchQueueScheduler { return ObserveOnSerialDispatchQueue(source: self.asObservable(), scheduler: scheduler) @@ -54,9 +54,9 @@ extension ObservableType { - parameter scheduler: Scheduler to perform subscription and unsubscription actions on. - returns: The source sequence whose subscriptions and unsubscriptions happen on the specified scheduler. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func subscribeOn(scheduler: ImmediateSchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func subscribeOn(_ scheduler: ImmediateSchedulerType) -> Observable { return SubscribeOn(source: self, scheduler: scheduler) } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Observable+Creation.swift b/RxSwift/Observables/Observable+Creation.swift index 425434c0..85ac39c3 100644 --- a/RxSwift/Observables/Observable+Creation.swift +++ b/RxSwift/Observables/Observable+Creation.swift @@ -19,8 +19,8 @@ extension Observable { - parameter subscribe: Implementation of the resulting observable sequence's `subscribe` method. - returns: The observable sequence with the specified implementation for the `subscribe` method. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func create(subscribe: (AnyObserver) -> Disposable) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func create(_ subscribe: (AnyObserver) -> Disposable) -> Observable { return AnonymousObservable(subscribe) } @@ -33,7 +33,7 @@ extension Observable { - returns: An observable sequence with no elements. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func empty() -> Observable { return Empty() } @@ -47,7 +47,7 @@ extension Observable { - returns: An observable sequence whose observers will never get called. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func never() -> Observable { return Never() } @@ -63,7 +63,7 @@ extension Observable { - parameter: Scheduler to send the single element on. - returns: An observable sequence containing the single specified element. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public static func just(_ element: E, scheduler: ImmediateSchedulerType? = nil) -> Observable { if let scheduler = scheduler { return JustScheduled(element: element, scheduler: scheduler) @@ -82,7 +82,7 @@ extension Observable { - 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 { return Error(error: error) } @@ -98,8 +98,8 @@ extension Observable { - parameter scheduler: Scheduler to send elements on. If `nil`, elements are sent immediatelly on subscription. - returns: The observable sequence whose elements are pulled from the given arguments. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func of(elements: E ..., scheduler: ImmediateSchedulerType? = nil) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func of(_ elements: E ..., scheduler: ImmediateSchedulerType? = nil) -> Observable { return ObservableSequence(elements: elements, scheduler: scheduler) } @@ -113,8 +113,8 @@ extension Observable { - parameter observableFactory: Observable factory function to invoke for each observer that subscribes to the resulting sequence. - returns: An observable sequence whose observers trigger an invocation of the given observable factory function. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func deferred(observableFactory: () throws -> Observable) + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func deferred(_ observableFactory: () throws -> Observable) -> Observable { return Deferred(observableFactory: observableFactory) } @@ -131,8 +131,8 @@ extension Observable { - parameter scheduler: Scheduler on which to run the generator loop. - 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 { + @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 { return Generate(initialState: initialState, condition: condition, iterate: iterate, resultSelector: { $0 }, scheduler: scheduler) } @@ -145,8 +145,8 @@ extension Observable { - parameter scheduler: Scheduler to run the producer loop on. - returns: An observable sequence that repeats the given element infinitely. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func repeatElement(element: E, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func repeatElement(_ element: E, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { return RepeatElement(element: element, scheduler: scheduler) } @@ -159,8 +159,8 @@ extension Observable { - parameter observableFactory: Factory function to obtain an observable sequence that depends on the obtained resource. - returns: An observable sequence whose lifetime controls the lifetime of the dependent resource object. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func using(resourceFactory: () throws -> R, observableFactory: (R) throws -> Observable) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func using(_ resourceFactory: () throws -> R, observableFactory: (R) throws -> Observable) -> Observable { return Using(resourceFactory: resourceFactory, observableFactory: observableFactory) } } @@ -176,8 +176,8 @@ extension Observable where Element : SignedInteger { - parameter scheduler: Scheduler to run the generator loop on. - returns: An observable sequence that contains a range of sequential integral numbers. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func range(start: E, count: E, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func range(_ start: E, count: E, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { return RangeProducer(start: start, count: count, scheduler: scheduler) } } @@ -190,8 +190,8 @@ extension Sequence { - returns: The observable sequence whose elements are pulled from the given enumerable sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func toObservable(scheduler: ImmediateSchedulerType? = nil) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func toObservable(_ scheduler: ImmediateSchedulerType? = nil) -> Observable { return ObservableSequence(elements: Array(self), scheduler: scheduler) } } @@ -204,8 +204,8 @@ extension Array { - returns: The observable sequence whose elements are pulled from the given enumerable sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func toObservable(scheduler: ImmediateSchedulerType? = nil) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func toObservable(_ scheduler: ImmediateSchedulerType? = nil) -> Observable { return ObservableSequence(elements: self, scheduler: scheduler) } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Observable+Debug.swift b/RxSwift/Observables/Observable+Debug.swift index 83d45267..149ed352 100644 --- a/RxSwift/Observables/Observable+Debug.swift +++ b/RxSwift/Observables/Observable+Debug.swift @@ -20,9 +20,9 @@ extension ObservableType { - parameter identifier: Identifier that is printed together with event description to standard output. - returns: An observable sequence whose events are printed to standard output. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func debug(identifier: String? = nil, file: String = #file, line: UInt = #line, function: String = #function) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func debug(_ identifier: String? = nil, file: String = #file, line: UInt = #line, function: String = #function) -> Observable { return Debug(source: self.asObservable(), identifier: identifier, file: file, line: line, function: function) } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Observable+Multiple.swift b/RxSwift/Observables/Observable+Multiple.swift index bf2f30b9..268c5f06 100644 --- a/RxSwift/Observables/Observable+Multiple.swift +++ b/RxSwift/Observables/Observable+Multiple.swift @@ -20,8 +20,8 @@ extension Collection where Iterator.Element : ObservableType { - parameter resultSelector: Function to invoke whenever any of the sources produces an element. - 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 { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func combineLatest(_ resultSelector: ([Generator.Element.E]) throws -> R) -> Observable { return CombineLatestCollectionType(sources: self, resultSelector: resultSelector) } } @@ -38,8 +38,8 @@ extension Collection where Iterator.Element : ObservableType { - parameter resultSelector: Function to invoke for each series of elements at corresponding indexes in the sources. - 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 { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func zip(_ resultSelector: ([Generator.Element.E]) throws -> R) -> Observable { return ZipCollectionType(sources: self, resultSelector: resultSelector) } } @@ -59,7 +59,7 @@ extension ObservableType where E : ObservableConvertibleType { - returns: The observable sequence 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public func switchLatest() -> Observable { return Switch(source: asObservable()) } @@ -77,8 +77,8 @@ extension ObservableType { - parameter second: Second observable sequence. - returns: An observable sequence that contains the elements of `self`, followed by those of the second sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func concat(second: O) -> Observable { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func concat(_ second: O) -> Observable { return [asObservable(), second.asObservable()].concat() } } @@ -98,7 +98,7 @@ extension Sequence where Iterator.Element : ObservableType { - returns: An observable sequence that contains the elements of each given sequence, in sequential order. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func concat() -> Observable { return Concat(sources: self, count: nil) @@ -121,7 +121,7 @@ extension Collection where Iterator.Element : ObservableType { - returns: An observable sequence that contains the elements of each given sequence, in sequential order. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func concat() -> Observable { return Concat(sources: self, count: self.count.toIntMax()) @@ -137,9 +137,9 @@ extension ObservableType where E : ObservableConvertibleType { - returns: An observable sequence that contains the elements of each observed inner sequence, in sequential order. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func concat() -> Observable { - return merge(maxConcurrent: 1) + return merge(1) } } @@ -154,7 +154,7 @@ extension ObservableType where E : ObservableConvertibleType { - returns: The observable sequence that merges the elements of the observable sequences. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func merge() -> Observable { return Merge(source: asObservable()) } @@ -167,8 +167,8 @@ extension ObservableType where E : ObservableConvertibleType { - parameter maxConcurrent: Maximum number of inner observable sequences being subscribed to concurrently. - returns: The observable sequence that merges the elements of the inner sequences. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func merge(maxConcurrent: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func merge(_ maxConcurrent: Int) -> Observable { return MergeLimited(source: asObservable(), maxConcurrent: maxConcurrent) } @@ -186,8 +186,8 @@ extension ObservableType { - parameter handler: Error handler function, producing another observable sequence. - 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: (ErrorProtocol) throws -> Observable) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func catchError(_ handler: (ErrorProtocol) throws -> Observable) -> Observable { return Catch(source: asObservable(), handler: handler) } @@ -200,8 +200,8 @@ extension ObservableType { - parameter element: Last element in an observable sequence in case error occurs. - returns: An observable sequence containing the source sequence's elements, followed by the `element` in case an error occurred. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func catchErrorJustReturn(element: E) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func catchErrorJustReturn(_ element: E) -> Observable { return Catch(source: asObservable(), handler: { _ in Observable.just(element) }) } @@ -216,7 +216,7 @@ extension Sequence where Iterator.Element : ObservableType { - returns: An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func catchError() -> Observable { return CatchSequence(sources: self) @@ -235,8 +235,8 @@ extension ObservableType { - parameter other: Observable sequence that terminates propagation of elements of the source sequence. - returns: An observable sequence containing the elements of the source sequence up to the point the other sequence interrupted further propagation. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func takeUntil(other: O) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func takeUntil(_ other: O) -> Observable { return TakeUntil(source: asObservable(), other: other.asObservable()) } @@ -254,8 +254,8 @@ extension ObservableType { - parameter other: Observable sequence that starts propagation of elements of the source sequence. - returns: An observable sequence containing the elements of the source sequence that are emitted after the other sequence emits an item. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func skipUntil(other: O) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func skipUntil(_ other: O) -> Observable { return SkipUntil(source: asObservable(), other: other.asObservable()) } @@ -273,9 +273,9 @@ extension ObservableType { - parameter right: Second observable sequence. - returns: An observable sequence that surfaces either of the given sequences, whichever reacted first. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func amb - (right: O2) + (_ right: O2) -> Observable { return Amb(left: asObservable(), right: right.asObservable()) } @@ -290,11 +290,11 @@ extension Sequence where Iterator.Element : ObservableType { - returns: An observable sequence that surfaces any of the given sequences, whichever reacted first. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func amb() -> Observable { return self.reduce(Observable.never()) { a, o in - return a.amb(right: o.asObservable()) + return a.amb(o.asObservable()) } } } @@ -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: (E, SecondO.E) throws -> ResultType) -> Observable { return WithLatestFrom(first: asObservable(), second: second.asObservable(), resultSelector: resultSelector) } @@ -324,7 +324,7 @@ extension ObservableType { - parameter second: Second observable source. - 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) -> Observable { + public func withLatestFrom(_ second: SecondO) -> Observable { return WithLatestFrom(first: asObservable(), second: second.asObservable(), resultSelector: { $1 }) } } diff --git a/RxSwift/Observables/Observable+Single.swift b/RxSwift/Observables/Observable+Single.swift index b25a9561..0f819207 100644 --- a/RxSwift/Observables/Observable+Single.swift +++ b/RxSwift/Observables/Observable+Single.swift @@ -19,7 +19,7 @@ extension ObservableType where E: Equatable { - returns: An observable sequence only containing the distinct contiguous elements, based on equality operator, from the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func distinctUntilChanged() -> Observable { return self.distinctUntilChanged(keySelector: { $0 }, comparer: { ($0 == $1) }) @@ -35,7 +35,7 @@ extension ObservableType { - parameter keySelector: A function to compute the comparison key for each element. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public func distinctUntilChanged(keySelector: (E) throws -> K) -> Observable { return self.distinctUntilChanged(keySelector: keySelector, comparer: { $0 == $1 }) @@ -49,7 +49,7 @@ extension ObservableType { - parameter comparer: Equality comparer for computed key values. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public func distinctUntilChanged(comparer: (lhs: E, rhs: E) throws -> Bool) -> Observable { return self.distinctUntilChanged(keySelector: { $0 }, comparer: comparer) @@ -64,7 +64,7 @@ extension ObservableType { - parameter comparer: Equality comparer for computed key values. - 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") + @warn_unused_result(message:"http://git.io/rxs.uo") public func distinctUntilChanged(keySelector: (E) throws -> K, comparer: (lhs: K, rhs: K) throws -> Bool) -> Observable { return DistinctUntilChanged(source: self.asObservable(), selector: keySelector, comparer: comparer) @@ -83,7 +83,7 @@ extension ObservableType { - parameter eventHandler: Action to invoke for each event in the observable sequence. - 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(eventHandler: (Event) throws -> Void) -> Observable { return Do(source: self.asObservable(), eventHandler: eventHandler) @@ -99,16 +99,16 @@ extension ObservableType { - parameter onCompleted: Action to invoke upon graceful termination of the observable sequence. - 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) -> Observable { return Do(source: self.asObservable()) { e in switch e { - case .Next(let element): + case .next(let element): try onNext?(element) - case .Error(let e): + case .error(let e): try onError?(e) - case .Completed: + case .completed: try onCompleted?() } } @@ -120,7 +120,7 @@ extension ObservableType { - parameter onNext: Action to invoke for each element in the observable sequence. - 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 doOnNext(onNext: ((E) throws -> Void)) -> Observable { return self.doOn(onNext: onNext) @@ -132,7 +132,7 @@ extension ObservableType { - parameter onError: Action to invoke upon errored termination of the observable sequence. - 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 doOnError(onError: ((ErrorProtocol) throws -> Void)) -> Observable { return self.doOn(onError: onError) @@ -144,7 +144,7 @@ extension ObservableType { - parameter onCompleted: Action to invoke upon graceful termination of the observable sequence. - 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 doOnCompleted(onCompleted: (() throws -> Void)) -> Observable { return self.doOn(onCompleted: onCompleted) @@ -163,7 +163,7 @@ extension ObservableType { - parameter elements: Elements to prepend to the specified sequence. - returns: The source sequence prepended with the specified values. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func startWith(elements: E ...) -> Observable { return StartWith(source: self.asObservable(), elements: elements) @@ -183,7 +183,7 @@ extension ObservableType { - returns: Observable sequence to repeat until it successfully terminates. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func retry() -> Observable { return CatchSequence(sources: InfiniteSequence(repeatedValue: self.asObservable())) } @@ -198,7 +198,7 @@ extension ObservableType { - parameter maxAttemptCount: Maximum number of times to repeat the sequence. - returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func retry(maxAttemptCount: Int) -> Observable { return CatchSequence(sources: repeatElement(self.asObservable(), count: maxAttemptCount)) @@ -213,7 +213,7 @@ extension ObservableType { - parameter notificationHandler: A handler that is passed an observable sequence of errors raised by the source observable and returns and observable that either continues, completes or errors. This behavior is then applied to the source observable. - 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(notificationHandler: (Observable) -> TriggerObservable) -> Observable { return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) @@ -228,7 +228,7 @@ extension ObservableType { - parameter notificationHandler: A handler that is passed an observable sequence of errors raised by the source observable and returns and observable that either continues, completes or errors. This behavior is then applied to the source observable. - 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(notificationHandler: (Observable) -> TriggerObservable) -> Observable { return RetryWhenSequence(sources: InfiniteSequence(repeatedValue: self.asObservable()), notificationHandler: notificationHandler) @@ -250,9 +250,9 @@ extension ObservableType { - parameter accumulator: An accumulator function to be invoked on each element. - returns: An observable sequence containing the accumulated values. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func scan(seed: A, accumulator: (A, E) throws -> A) -> Observable { return Scan(source: self.asObservable(), seed: seed, accumulator: accumulator) } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Observable+StandardSequenceOperators.swift b/RxSwift/Observables/Observable+StandardSequenceOperators.swift index eb850e77..de0f0dc9 100644 --- a/RxSwift/Observables/Observable+StandardSequenceOperators.swift +++ b/RxSwift/Observables/Observable+StandardSequenceOperators.swift @@ -20,8 +20,8 @@ extension ObservableType { - parameter predicate: A function to test each source element for a condition. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func filter(_ predicate: (E) throws -> Bool) -> Observable { return Filter(source: asObservable(), predicate: predicate) } @@ -39,8 +39,8 @@ extension ObservableType { - parameter predicate: A function to test each element for a condition. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func takeWhile(_ predicate: (E) throws -> Bool) -> Observable { return TakeWhile(source: asObservable(), predicate: predicate) } @@ -55,8 +55,8 @@ extension ObservableType { - parameter predicate: A function to test each element for a condition; the second parameter of the function represents the index of the source element. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func takeWhileWithIndex(_ predicate: (E, Int) throws -> Bool) -> Observable { return TakeWhile(source: asObservable(), predicate: predicate) } @@ -74,8 +74,8 @@ extension ObservableType { - parameter count: The number of elements to return. - returns: An observable sequence that contains the specified number of elements from the start of the input sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func take(count: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func take(_ count: Int) -> Observable { if count == 0 { return Observable.empty() @@ -100,8 +100,8 @@ extension ObservableType { - parameter count: Number of elements to take from the end of the source sequence. - returns: An observable sequence containing the specified number of elements from the end of the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func takeLast(count: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func takeLast(_ count: Int) -> Observable { return TakeLast(source: asObservable(), count: count) } @@ -120,8 +120,8 @@ extension ObservableType { - parameter count: The number of elements to skip before returning the remaining elements. - returns: An observable sequence that contains the elements that occur after the specified index in the input sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func skip(count: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func skip(_ count: Int) -> Observable { return SkipCount(source: asObservable(), count: count) } @@ -139,8 +139,8 @@ extension ObservableType { - parameter predicate: A function to test each element for a condition. - 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 { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func skipWhile(_ predicate: (E) throws -> Bool) -> Observable { return SkipWhile(source: asObservable(), predicate: predicate) } @@ -153,8 +153,8 @@ extension ObservableType { - parameter predicate: A function to test each element for a condition; the second parameter of the function represents the index of the source element. - 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 { + @warn_unused_result(message:"http://git.io/rxs.uo") + public func skipWhileWithIndex(_ predicate: (E, Int) throws -> Bool) -> Observable { return SkipWhile(source: asObservable(), predicate: predicate) } } @@ -172,10 +172,10 @@ 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 map(selector: (E) throws -> R) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func map(_ selector: (E) throws -> R) -> Observable { - return self.asObservable().composeMap(selector: selector) + return self.asObservable().composeMap(selector) } /** @@ -186,8 +186,8 @@ extension ObservableType { - parameter selector: A transform function to apply to each source element; the second parameter of the function represents the index of the source element. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func mapWithIndex(_ selector: (E, Int) throws -> R) -> Observable { return MapWithIndex(source: asObservable(), selector: selector) } @@ -205,8 +205,8 @@ extension ObservableType { - parameter selector: A transform function to apply to each element. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func flatMap(_ selector: (E) throws -> O) -> Observable { return FlatMap(source: asObservable(), selector: selector) } @@ -219,8 +219,8 @@ extension ObservableType { - parameter selector: A transform function to apply to each element; the second parameter of the function represents the index of the source element. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func flatMapWithIndex(_ selector: (E, Int) throws -> O) -> Observable { return FlatMapWithIndex(source: asObservable(), selector: selector) } @@ -239,8 +239,8 @@ extension ObservableType { - parameter selector: A transform function to apply to element that was observed while no observable is executing in parallel. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func flatMapFirst(_ selector: (E) throws -> O) -> Observable { return FlatMapFirst(source: asObservable(), selector: selector) } @@ -261,8 +261,8 @@ extension ObservableType { - returns: An observable sequence whose elements are the result of invoking the transform function on each element of source producing an 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func flatMapLatest(_ selector: (E) throws -> O) -> Observable { return FlatMapLatest(source: asObservable(), selector: selector) } @@ -280,8 +280,8 @@ extension ObservableType { - parameter index: The index of the required item (starting from 0). - returns: An observable sequence that emits the desired item as its own sole emission. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func elementAt(index: Int) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func elementAt(_ index: Int) -> Observable { return ElementAt(source: asObservable(), index: index, throwOnEmpty: true) } @@ -299,7 +299,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") + @warn_unused_result(message:"http://git.io/rxs.uo") public func single() -> Observable { return SingleAsync(source: asObservable()) @@ -314,10 +314,10 @@ extension ObservableType { - parameter predicate: A function to test each source element for a condition. - 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) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func single(_ predicate: (E) throws -> Bool) -> Observable { return SingleAsync(source: asObservable(), predicate: predicate) } -} \ No newline at end of file +} diff --git a/RxSwift/Observables/Observable+Time.swift b/RxSwift/Observables/Observable+Time.swift index af8ae863..bb7950cf 100644 --- a/RxSwift/Observables/Observable+Time.swift +++ b/RxSwift/Observables/Observable+Time.swift @@ -22,8 +22,8 @@ extension ObservableType { - parameter scheduler: Scheduler to run the throttle timers and send events on. - returns: The throttled sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func throttle(dueTime: RxTimeInterval, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func throttle(_ dueTime: RxTimeInterval, scheduler: SchedulerType) -> Observable { return Throttle(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) } @@ -39,8 +39,8 @@ extension ObservableType { - parameter scheduler: Scheduler to run the throttle timers and send events on. - returns: The throttled sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func debounce(dueTime: RxTimeInterval, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func debounce(_ dueTime: RxTimeInterval, scheduler: SchedulerType) -> Observable { return Throttle(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) } @@ -62,8 +62,8 @@ extension ObservableType { - parameter sampler: Sampling tick sequence. - returns: Sampled observable sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func sample(sampler: O) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func sample(_ sampler: O) -> Observable { return Sample(source: self.asObservable(), sampler: sampler.asObservable(), onlyNew: true) } @@ -79,8 +79,8 @@ extension Observable where Element : SignedInteger { - parameter scheduler: Scheduler to run the timer on. - returns: An observable sequence that produces a value after each period. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func interval(period: RxTimeInterval, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func interval(_ period: RxTimeInterval, scheduler: SchedulerType) -> Observable { return Timer(dueTime: period, period: period, @@ -102,8 +102,8 @@ extension Observable where Element: SignedInteger { - parameter scheduler: Scheduler to run timers on. - returns: An observable sequence that produces a value after due time has elapsed and then each period. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public static func timer(dueTime: RxTimeInterval, period: RxTimeInterval? = nil, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public static func timer(_ dueTime: RxTimeInterval, period: RxTimeInterval? = nil, scheduler: SchedulerType) -> Observable { return Timer( dueTime: dueTime, @@ -126,8 +126,8 @@ extension ObservableType { - parameter scheduler: Scheduler to run the timer on. - returns: An observable sequence with the elements taken during the specified duration from the start of the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func take(duration: RxTimeInterval, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func take(_ duration: RxTimeInterval, scheduler: SchedulerType) -> Observable { return TakeTime(source: self.asObservable(), duration: duration, scheduler: scheduler) } @@ -146,8 +146,8 @@ extension ObservableType { - parameter scheduler: Scheduler to run the timer on. - returns: An observable sequence with the elements skipped during the specified duration from the start of the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func skip(duration: RxTimeInterval, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func skip(_ duration: RxTimeInterval, scheduler: SchedulerType) -> Observable { return SkipTime(source: self.asObservable(), duration: duration, scheduler: scheduler) } @@ -164,7 +164,7 @@ extension ObservableType { - returns: An observable sequence that skips all elements of the source sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") + @warn_unused_result(message:"http://git.io/rxs.uo") public func ignoreElements() -> Observable { return filter { _ -> Bool in @@ -186,8 +186,8 @@ extension ObservableType { - parameter scheduler: Scheduler to run the subscription delay timer on. - returns: Time-shifted sequence. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func delaySubscription(dueTime: RxTimeInterval, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func delaySubscription(_ dueTime: RxTimeInterval, scheduler: SchedulerType) -> Observable { return DelaySubscription(source: self.asObservable(), dueTime: dueTime, scheduler: scheduler) } @@ -209,8 +209,8 @@ extension ObservableType { - parameter scheduler: Scheduler to run buffering timers on. - returns: An observable sequence of buffers. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func buffer(timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func buffer(_ timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) -> Observable<[E]> { return BufferTimeCount(source: self.asObservable(), timeSpan: timeSpan, count: count, scheduler: scheduler) } @@ -230,8 +230,8 @@ extension ObservableType { - parameter scheduler: Scheduler to run windowing timers on. - returns: An observable sequence of windows (instances of `Observable`). */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func window(timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func window(_ timeSpan: RxTimeInterval, count: Int, scheduler: SchedulerType) -> Observable> { return WindowTimeCount(source: self.asObservable(), timeSpan: timeSpan, count: count, scheduler: scheduler) } @@ -250,10 +250,10 @@ extension ObservableType { - parameter scheduler: Scheduler to run the timeout timer on. - returns: An observable sequence with a TimeoutError in case of a timeout. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func timeout(dueTime: RxTimeInterval, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func timeout(_ dueTime: RxTimeInterval, scheduler: SchedulerType) -> Observable { - return Timeout(source: self.asObservable(), dueTime: dueTime, other: Observable.error(RxError.Timeout), scheduler: scheduler) + return Timeout(source: self.asObservable(), dueTime: dueTime, other: Observable.error(RxError.timeout), scheduler: scheduler) } /** @@ -266,8 +266,8 @@ extension ObservableType { - parameter scheduler: Scheduler to run the timeout timer on. - returns: The source sequence switching to the other sequence in case of a timeout. */ - @warn_unused_result(message: "http://git.io/rxs.uo") - public func timeout(dueTime: RxTimeInterval, other: O, scheduler: SchedulerType) + @warn_unused_result(message:"http://git.io/rxs.uo") + public func timeout(_ dueTime: RxTimeInterval, other: O, scheduler: SchedulerType) -> Observable { return Timeout(source: self.asObservable(), dueTime: dueTime, other: other.asObservable(), scheduler: scheduler) } diff --git a/RxSwift/ObserverType.swift b/RxSwift/ObserverType.swift index c4d796c7..dc7f2d39 100644 --- a/RxSwift/ObserverType.swift +++ b/RxSwift/ObserverType.swift @@ -22,7 +22,7 @@ public protocol ObserverType { - parameter event: Event that occured. */ - func on(event: Event) + func on(_ event: Event) } /** @@ -35,22 +35,22 @@ public extension ObserverType { - parameter element: Next element to send to observer(s) */ - final func onNext(element: E) { - on(event: .Next(element)) + final func onNext(_ element: E) { + on(.next(element)) } /** Convenience method equivalent to `on(.Completed)` */ final func onCompleted() { - on(event: .Completed) + on(.completed) } /** Convenience method equivalent to `on(.Error(error: ErrorProtocol))` - parameter error: ErrorProtocol to send to observer(s) */ - final func onError(error: ErrorProtocol) { - on(event: .Error(error)) + final func onError(_ error: ErrorProtocol) { + on(.error(error)) } } diff --git a/RxSwift/Observers/AnonymousObserver.swift b/RxSwift/Observers/AnonymousObserver.swift index a29dbc0a..fe4aa744 100644 --- a/RxSwift/Observers/AnonymousObserver.swift +++ b/RxSwift/Observers/AnonymousObserver.swift @@ -17,18 +17,18 @@ class AnonymousObserver : ObserverBase { init(_ eventHandler: EventHandler) { #if TRACE_RESOURCES - AtomicIncrement(&resourceCount) + let _ = AtomicIncrement(&resourceCount) #endif _eventHandler = eventHandler } - override func onCore(event: Event) { + override func onCore(_ event: Event) { return _eventHandler(event) } #if TRACE_RESOURCES deinit { - AtomicDecrement(&resourceCount) + let _ = AtomicDecrement(&resourceCount) } #endif } diff --git a/RxSwift/Observers/ObserverBase.swift b/RxSwift/Observers/ObserverBase.swift index 13c86438..4ff3fe0c 100644 --- a/RxSwift/Observers/ObserverBase.swift +++ b/RxSwift/Observers/ObserverBase.swift @@ -13,23 +13,23 @@ class ObserverBase : Disposable, ObserverType { private var _isStopped: AtomicInt = 0 - func on(event: Event) { + func on(_ event: Event) { switch event { - case .Next: + case .next: if _isStopped == 0 { - onCore(event: event) + onCore(event) } - case .Error, .Completed: + case .error, .completed: if !AtomicCompareAndSwap(0, 1, &_isStopped) { return } - onCore(event: event) + onCore(event) } } - func onCore(event: Event) { + func onCore(_ event: Event) { abstractMethod() } diff --git a/RxSwift/Observers/TailRecursiveSink.swift b/RxSwift/Observers/TailRecursiveSink.swift index 7a2ac6ec..b14644c4 100644 --- a/RxSwift/Observers/TailRecursiveSink.swift +++ b/RxSwift/Observers/TailRecursiveSink.swift @@ -9,8 +9,8 @@ import Foundation enum TailRecursiveSinkCommand { - case MoveNext - case Dispose + case moveNext + case dispose } #if DEBUG || TRACE_RESOURCES @@ -36,34 +36,34 @@ class TailRecursiveSink Disposable { + func run(_ sources: SequenceGenerator) -> Disposable { _generators.append(sources) - schedule(command: .MoveNext) + schedule(.moveNext) return _subscription } - func invoke(value command: TailRecursiveSinkCommand) { + func invoke(_ command: TailRecursiveSinkCommand) { switch command { - case .Dispose: + case .dispose: disposeCommand() - case .MoveNext: + case .moveNext: moveNextCommand() } } // simple implementation for now - func schedule(command: TailRecursiveSinkCommand) { - _gate.invoke(action: InvocableScheduledItem(invocable: self, state: command)) + func schedule(_ command: TailRecursiveSinkCommand) { + _gate.invoke(InvocableScheduledItem(invocable: self, state: command)) } func done() { - forwardOn(event: .Completed) + forwardOn(.completed) dispose() } - func extract(observable: Observable) -> SequenceGenerator? { + func extract(_ observable: Observable) -> SequenceGenerator? { abstractMethod() } @@ -107,7 +107,7 @@ class TailRecursiveSink) -> Disposable { + func subscribeToNext(_ source: Observable) -> Disposable { abstractMethod() } @@ -146,7 +146,7 @@ class TailRecursiveSink(value: T?, forKey key: protocol) { - let currentThread = NSThread.current() + extension Thread { + static func setThreadLocalStorageValue(_ value: T?, forKey key: protocol) { + let currentThread = Thread.current() let threadDictionary = currentThread.threadDictionary if let newValue = value { @@ -34,8 +34,8 @@ } } - static func getThreadLocalStorageValueForKey(key: protocol) -> T? { - let currentThread = NSThread.current() + static func getThreadLocalStorageValueForKey(_ key: protocol) -> T? { + let currentThread = Thread.current() let threadDictionary = currentThread.threadDictionary return threadDictionary[key] as? T diff --git a/RxSwift/Rx.swift b/RxSwift/Rx.swift index c096871e..865b3df9 100644 --- a/RxSwift/Rx.swift +++ b/RxSwift/Rx.swift @@ -23,18 +23,18 @@ public var resourceCount: AtomicInt = 0 fatalError(lastMessage) } -func incrementChecked(i: inout Int) throws -> Int { +func incrementChecked(_ i: inout Int) throws -> Int { if i == Int.max { - throw RxError.Overflow + throw RxError.overflow } let result = i i += 1 return result } -func decrementChecked(i: inout Int) throws -> Int { +func decrementChecked(_ i: inout Int) throws -> Int { if i == Int.min { - throw RxError.Overflow + throw RxError.overflow } let result = i i -= 1 diff --git a/RxSwift/SchedulerType.swift b/RxSwift/SchedulerType.swift index c08baa34..5158bc51 100644 --- a/RxSwift/SchedulerType.swift +++ b/RxSwift/SchedulerType.swift @@ -11,12 +11,12 @@ import Foundation /** Type that represents time interval in the context of RxSwift. */ -public typealias RxTimeInterval = NSTimeInterval +public typealias RxTimeInterval = TimeInterval /** Type that represents absolute time in the context of RxSwift. */ -public typealias RxTime = NSDate +public typealias RxTime = Date /** Represents an object that schedules units of work. @@ -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: (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: (StateType) -> StateType) -> Disposable } extension SchedulerType { @@ -62,17 +62,17 @@ 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: (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: State, scheduler: AnyRecursiveScheduler) -> ()) -> Disposable { + func scheduleRecursive(_ state: State, dueTime: RxTimeInterval, action: (state: State, scheduler: AnyRecursiveScheduler) -> ()) -> Disposable { let scheduler = AnyRecursiveScheduler(scheduler: self, action: action) - scheduler.schedule(state: state, dueTime: dueTime) + scheduler.schedule(state, dueTime: dueTime) return AnonymousDisposable(scheduler.dispose) } -} \ No newline at end of file +} diff --git a/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift b/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift index 4af2a3a8..82d95bf1 100644 --- a/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift +++ b/RxSwift/Schedulers/ConcurrentDispatchQueueScheduler.swift @@ -14,13 +14,13 @@ Abstracts the work that needs to be performed on a specific `dispatch_queue_t`. This scheduler is suitable when some work needs to be performed in background. */ public class ConcurrentDispatchQueueScheduler: SchedulerType { - public typealias TimeInterval = NSTimeInterval - public typealias Time = NSDate + public typealias TimeInterval = Foundation.TimeInterval + public typealias Time = Date - private let _queue : dispatch_queue_t + private let _queue : DispatchQueue - public var now : NSDate { - return NSDate() + public var now : Date { + return Date() } // leeway for scheduling timers @@ -31,7 +31,7 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType { - parameter queue: Target dispatch queue. */ - public init(queue: dispatch_queue_t) { + public init(queue: DispatchQueue) { _queue = queue } @@ -43,16 +43,16 @@ public class ConcurrentDispatchQueueScheduler: SchedulerType { @available(iOS 8, OSX 10.10, *) public convenience init(globalConcurrentQueueQOS: DispatchQueueSchedulerQOS) { let priority = globalConcurrentQueueQOS.QOSClass - self.init(queue: dispatch_get_global_queue(priority, UInt(0))) + self.init(queue: DispatchQueue(label: "", attributes: priority, target: nil)) } - class func convertTimeIntervalToDispatchInterval(timeInterval: NSTimeInterval) -> Int64 { + class func convertTimeIntervalToDispatchInterval(_ timeInterval: Foundation.TimeInterval) -> Int64 { return Int64(timeInterval * Double(NSEC_PER_SEC)) } - class func convertTimeIntervalToDispatchTime(timeInterval: NSTimeInterval) -> dispatch_time_t { - return dispatch_time(DISPATCH_TIME_NOW, convertTimeIntervalToDispatchInterval(timeInterval: timeInterval)) + class func convertTimeIntervalToDispatchTime(_ timeInterval: Foundation.TimeInterval) -> DispatchTime { + return DispatchTime.now() + Double(convertTimeIntervalToDispatchInterval(timeInterval)) / Double(NSEC_PER_SEC) } /** @@ -62,14 +62,14 @@ public 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 { - return self.scheduleInternal(state: state, action: action) + public final func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + return self.scheduleInternal(state, action: action) } - func scheduleInternal(state: StateType, action: (StateType) -> Disposable) -> Disposable { + func scheduleInternal(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { let cancel = SingleAssignmentDisposable() - dispatch_async(_queue) { + _queue.async { if cancel.disposed { return } @@ -88,26 +88,25 @@ public 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: NSTimeInterval, action: (StateType) -> Disposable) -> Disposable { + public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: (StateType) -> Disposable) -> Disposable { - // Swift 3.0 IUO - let timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, _queue)! - - let dispatchInterval = MainScheduler.convertTimeIntervalToDispatchTime(timeInterval: dueTime) + let dispatchInterval = MainScheduler.convertTimeIntervalToDispatchTime(dueTime) let compositeDisposable = CompositeDisposable() - dispatch_source_set_timer(timer, dispatchInterval, DISPATCH_TIME_FOREVER, 0) - dispatch_source_set_event_handler(timer, { + let timer = DispatchSource.timer(flags: DispatchSource.TimerFlags(rawValue: UInt(0)), queue: _queue) + timer.scheduleOneshot(deadline: dispatchInterval, leeway: DispatchTimeInterval.microseconds(0)) + + timer.setEventHandler(handler: { if compositeDisposable.disposed { return } - compositeDisposable.addDisposable(disposable: action(state)) + let _ = compositeDisposable.addDisposable(action(state)) }) - dispatch_resume(timer) + timer.resume() - compositeDisposable.addDisposable(disposable: AnonymousDisposable { - dispatch_source_cancel(timer) + let _ = compositeDisposable.addDisposable(AnonymousDisposable { + timer.cancel() }) return compositeDisposable @@ -122,30 +121,29 @@ public class ConcurrentDispatchQueueScheduler: 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: (StateType) -> StateType) -> Disposable { - // Swift 3.0 IUO - let timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, _queue)! - - let initial = MainScheduler.convertTimeIntervalToDispatchTime(timeInterval: startAfter) - let dispatchInterval = MainScheduler.convertTimeIntervalToDispatchInterval(timeInterval: period) + + let initial = MainScheduler.convertTimeIntervalToDispatchTime(startAfter) + let dispatchInterval = MainScheduler.convertTimeIntervalToDispatchInterval(period) var timerState = state - let validDispatchInterval = dispatchInterval < 0 ? 0 : UInt64(dispatchInterval) + let validDispatchInterval = dispatchInterval < 0 ? 0 : dispatchInterval - dispatch_source_set_timer(timer, initial, validDispatchInterval, 0) + let timer = DispatchSource.timer(flags: DispatchSource.TimerFlags(rawValue: UInt(0)), queue: _queue) + timer.scheduleRepeating(deadline: initial, interval: DispatchTimeInterval.seconds(Int(validDispatchInterval)), leeway: DispatchTimeInterval.microseconds(0)) let cancel = AnonymousDisposable { - dispatch_source_cancel(timer) + timer.cancel() } - dispatch_source_set_event_handler(timer, { + timer.setEventHandler(handler: { if cancel.disposed { return } timerState = action(timerState) }) - dispatch_resume(timer) + timer.resume() return cancel } -} \ No newline at end of file +} diff --git a/RxSwift/Schedulers/ConcurrentMainScheduler.swift b/RxSwift/Schedulers/ConcurrentMainScheduler.swift index ccb3172e..a01e606b 100644 --- a/RxSwift/Schedulers/ConcurrentMainScheduler.swift +++ b/RxSwift/Schedulers/ConcurrentMainScheduler.swift @@ -15,21 +15,21 @@ This scheduler is optimized for `subscribeOn` operator. If you want to observe o `MainScheduler` is more suitable for that purpose. */ public final class ConcurrentMainScheduler : SchedulerType { - public typealias TimeInterval = NSTimeInterval - public typealias Time = NSDate + public typealias TimeInterval = Foundation.TimeInterval + public typealias Time = Date private let _mainScheduler: MainScheduler - private let _mainQueue: dispatch_queue_t + private let _mainQueue: DispatchQueue /** - returns: Current time. */ - public var now : NSDate { - return _mainScheduler.now + public var now : Date { + return _mainScheduler.now as Date } private init(mainScheduler: MainScheduler) { - _mainQueue = dispatch_get_main_queue() + _mainQueue = DispatchQueue.main _mainScheduler = mainScheduler } @@ -45,14 +45,14 @@ 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 schedule(state: StateType, action: (StateType) -> Disposable) -> Disposable { - if NSThread.current().isMainThread { + public func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + if Thread.current().isMainThread { return action(state) } let cancel = SingleAssignmentDisposable() - dispatch_async(_mainQueue) { + _mainQueue.async { if cancel.disposed { return } @@ -71,8 +71,8 @@ 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: NSTimeInterval, action: (StateType) -> Disposable) -> Disposable { - return _mainScheduler.scheduleRelative(state: state, dueTime: dueTime, action: action) + public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: (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 { - return _mainScheduler.schedulePeriodic(state: state, startAfter: startAfter, period: period, action: action) + public func schedulePeriodic(_ state: StateType, startAfter: TimeInterval, period: TimeInterval, action: (StateType) -> StateType) -> Disposable { + return _mainScheduler.schedulePeriodic(state, startAfter: startAfter, period: period, action: action) } -} \ No newline at end of file +} diff --git a/RxSwift/Schedulers/CurrentThreadScheduler.swift b/RxSwift/Schedulers/CurrentThreadScheduler.swift index fae7af6a..3428075c 100644 --- a/RxSwift/Schedulers/CurrentThreadScheduler.swift +++ b/RxSwift/Schedulers/CurrentThreadScheduler.swift @@ -74,10 +74,10 @@ public class CurrentThreadScheduler : ImmediateSchedulerType { static var queue : ScheduleQueue? { get { - return NSThread.getThreadLocalStorageValueForKey(key: CurrentThreadSchedulerQueueKeyInstance as NSString) + return Thread.getThreadLocalStorageValueForKey(CurrentThreadSchedulerQueueKeyInstance as NSString) } set { - NSThread.setThreadLocalStorageValue(value: newValue, forKey: CurrentThreadSchedulerQueueKeyInstance as NSString) + Thread.setThreadLocalStorageValue(newValue, forKey: CurrentThreadSchedulerQueueKeyInstance as NSString) } } @@ -86,11 +86,11 @@ public class CurrentThreadScheduler : ImmediateSchedulerType { */ public static private(set) var isScheduleRequired: Bool { get { - let value: CurrentThreadSchedulerValue? = NSThread.getThreadLocalStorageValueForKey(key: CurrentThreadSchedulerKeyInstance as NSString) + let value: CurrentThreadSchedulerValue? = Thread.getThreadLocalStorageValueForKey(CurrentThreadSchedulerKeyInstance as NSString) return value == nil } set(isScheduleRequired) { - NSThread.setThreadLocalStorageValue(value: isScheduleRequired ? nil : CurrentThreadSchedulerValueInstance, forKey: CurrentThreadSchedulerKeyInstance as NSString) + Thread.setThreadLocalStorageValue(isScheduleRequired ? nil : CurrentThreadSchedulerValueInstance, forKey: CurrentThreadSchedulerKeyInstance as NSString) } } @@ -104,7 +104,7 @@ public class CurrentThreadScheduler : ImmediateSchedulerType { - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public func schedule(state: StateType, action: (StateType) -> Disposable) -> Disposable { + public func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { if CurrentThreadScheduler.isScheduleRequired { CurrentThreadScheduler.isScheduleRequired = false @@ -141,7 +141,7 @@ public class CurrentThreadScheduler : ImmediateSchedulerType { } let scheduledItem = ScheduledItem(action: action, state: state) - queue.value.enqueue(element: scheduledItem) + queue.value.enqueue(scheduledItem) // In Xcode 7.3, `return scheduledItem` causes segmentation fault 11 on release build. // To workaround this compiler issue, returns AnonymousDisposable that disposes scheduledItem. diff --git a/RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift b/RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift index 571f6bf9..ca8ac94e 100644 --- a/RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift +++ b/RxSwift/Schedulers/DispatchQueueSchedulerQOS.swift @@ -16,39 +16,39 @@ public enum DispatchQueueSchedulerQOS { /** Identifies global dispatch queue with `QOS_CLASS_USER_INTERACTIVE` */ - case UserInteractive + case userInteractive /** Identifies global dispatch queue with `QOS_CLASS_USER_INITIATED` */ - case UserInitiated + case userInitiated /** Identifies global dispatch queue with `QOS_CLASS_DEFAULT` */ - case Default + case `default` /** Identifies global dispatch queue with `QOS_CLASS_UTILITY` */ - case Utility + case utility /** Identifies global dispatch queue with `QOS_CLASS_BACKGROUND` */ - case Background + case background } @available(iOS 8, OSX 10.10, *) extension DispatchQueueSchedulerQOS { - var QOSClass: qos_class_t { + var QOSClass: DispatchQueueAttributes { switch self { - case .UserInteractive: return QOS_CLASS_USER_INTERACTIVE - case .UserInitiated: return QOS_CLASS_USER_INITIATED - case .Default: return QOS_CLASS_DEFAULT - case .Utility: return QOS_CLASS_UTILITY - case .Background: return QOS_CLASS_BACKGROUND + case .userInteractive: return .qosUserInteractive + case .userInitiated: return .qosUserInitiated + case .default: return .qosDefault + case .utility: return .qosUtility + case .background: return .qosBackground } } } diff --git a/RxSwift/Schedulers/HistoricalScheduler.swift b/RxSwift/Schedulers/HistoricalScheduler.swift index bcb15b50..35452444 100644 --- a/RxSwift/Schedulers/HistoricalScheduler.swift +++ b/RxSwift/Schedulers/HistoricalScheduler.swift @@ -18,8 +18,8 @@ public class HistoricalScheduler : VirtualTimeScheduler RxTime { + public func convertFromVirtualTime(_ virtualTime: VirtualTimeUnit) -> RxTime { return virtualTime } @@ -36,7 +36,7 @@ public struct HistoricalSchedulerTimeConverter : VirtualTimeConverterType { Returns identical value of argument passed because historical virtual time is equal to real time, just decoupled from local machine clock. */ - public func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit { + public func convertToVirtualTime(_ time: RxTime) -> VirtualTimeUnit { return time } @@ -44,7 +44,7 @@ public struct HistoricalSchedulerTimeConverter : VirtualTimeConverterType { Returns identical value of argument passed because historical virtual time is equal to real time, just decoupled from local machine clock. */ - public func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { + public func convertFromVirtualTimeInterval(_ virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { return virtualTimeInterval } @@ -52,7 +52,7 @@ public struct HistoricalSchedulerTimeConverter : VirtualTimeConverterType { Returns identical value of argument passed because historical virtual time is equal to real time, just decoupled from local machine clock. */ - public func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { + public func convertToVirtualTimeInterval(_ timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { return timeInterval } @@ -63,21 +63,21 @@ public struct HistoricalSchedulerTimeConverter : VirtualTimeConverterType { - parameter timeInterval: Time interval offset. - returns: Time offsetted by time interval. */ - public func offsetVirtualTime(time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { + public func offsetVirtualTime(_ time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { return time.addingTimeInterval(offset) } /** Compares two `NSDate`s. */ - public func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { - switch lhs.compare(rhs) { + public func compareVirtualTime(_ lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { + switch lhs.compare(rhs as Date) { case .orderedAscending: - return .LessThan + return .lessThan case .orderedSame: - return .Equal + return .equal case .orderedDescending: - return .GreaterThan + return .greaterThan } } -} \ No newline at end of file +} diff --git a/RxSwift/Schedulers/ImmediateScheduler.swift b/RxSwift/Schedulers/ImmediateScheduler.swift index ee7a83fb..82d3ec87 100644 --- a/RxSwift/Schedulers/ImmediateScheduler.swift +++ b/RxSwift/Schedulers/ImmediateScheduler.swift @@ -25,9 +25,9 @@ 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: (StateType) -> Disposable) -> Disposable { let disposable = SingleAssignmentDisposable() - _asyncLock.invoke(action: AnonymousInvocable { + _asyncLock.invoke(AnonymousInvocable { if disposable.disposed { return } @@ -36,4 +36,4 @@ private class ImmediateScheduler : ImmediateSchedulerType { return disposable } -} \ No newline at end of file +} diff --git a/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift b/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift index 510c431a..7f2676b3 100644 --- a/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift +++ b/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift @@ -19,6 +19,6 @@ struct InvocableScheduledItem : InvocableType { } func invoke() { - _invocable.invoke(value: _state) + _invocable.invoke(_state) } -} \ No newline at end of file +} diff --git a/RxSwift/Schedulers/Internal/InvocableType.swift b/RxSwift/Schedulers/Internal/InvocableType.swift index 1632e71d..6a7de265 100644 --- a/RxSwift/Schedulers/Internal/InvocableType.swift +++ b/RxSwift/Schedulers/Internal/InvocableType.swift @@ -15,5 +15,5 @@ protocol InvocableType { protocol InvocableWithValueType { associatedtype Value - func invoke(value: Value) -} \ No newline at end of file + func invoke(_ value: Value) +} diff --git a/RxSwift/Schedulers/MainScheduler.swift b/RxSwift/Schedulers/MainScheduler.swift index 2e5ce370..c248fd75 100644 --- a/RxSwift/Schedulers/MainScheduler.swift +++ b/RxSwift/Schedulers/MainScheduler.swift @@ -20,12 +20,12 @@ operator please use `ConcurrentMainScheduler` because it is more optimized for t */ public final class MainScheduler : SerialDispatchQueueScheduler { - private let _mainQueue: dispatch_queue_t + private let _mainQueue: DispatchQueue var numberEnqueued: AtomicInt = 0 private init() { - _mainQueue = dispatch_get_main_queue() + _mainQueue = DispatchQueue.main super.init(serialQueue: _mainQueue) } @@ -38,34 +38,34 @@ public final class MainScheduler : SerialDispatchQueueScheduler { Singleton instance of `MainScheduler` that always schedules work asynchronously and doesn't perform optimizations for calls scheduled from main thread. */ - public static let asyncInstance = SerialDispatchQueueScheduler(serialQueue: dispatch_get_main_queue()) + public static let asyncInstance = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .default) /** In case this method is called on a background thread it will throw an exception. */ public class func ensureExecutingOnScheduler() { - if !NSThread.current().isMainThread { + if !Thread.current().isMainThread { rxFatalError("Executing on backgound thread. Please use `MainScheduler.instance.schedule` to schedule work on main thread.") } } - override func scheduleInternal(state: StateType, action: (StateType) -> Disposable) -> Disposable { + override func scheduleInternal(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { let currentNumberEnqueued = AtomicIncrement(&numberEnqueued) - if NSThread.current().isMainThread && currentNumberEnqueued == 1 { + if Thread.current().isMainThread && currentNumberEnqueued == 1 { let disposable = action(state) - AtomicDecrement(&numberEnqueued) + let _ = AtomicDecrement(&numberEnqueued) return disposable } let cancel = SingleAssignmentDisposable() - dispatch_async(_mainQueue) { + _mainQueue.async { if !cancel.disposed { - action(state) + let _ = action(state) } - AtomicDecrement(&self.numberEnqueued) + let _ = AtomicDecrement(&self.numberEnqueued) } return cancel diff --git a/RxSwift/Schedulers/OperationQueueScheduler.swift b/RxSwift/Schedulers/OperationQueueScheduler.swift index 553ceebd..904e349e 100644 --- a/RxSwift/Schedulers/OperationQueueScheduler.swift +++ b/RxSwift/Schedulers/OperationQueueScheduler.swift @@ -14,14 +14,14 @@ Abstracts the work that needs to be performed on a specific `NSOperationQueue`. This scheduler is suitable for cases when there is some bigger chunk of work that needs to be performed in background and you want to fine tune concurrent processing using `maxConcurrentOperationCount`. */ public class OperationQueueScheduler: ImmediateSchedulerType { - public let operationQueue: NSOperationQueue + public let operationQueue: OperationQueue /** Constructs new instance of `OperationQueueScheduler` that performs work on `operationQueue`. - parameter operationQueue: Operation queue targeted to perform work on. */ - public init(operationQueue: NSOperationQueue) { + public init(operationQueue: OperationQueue) { self.operationQueue = operationQueue } @@ -32,26 +32,26 @@ public class OperationQueueScheduler: 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 schedule(state: StateType, action: (StateType) -> Disposable) -> Disposable { + public func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { let compositeDisposable = CompositeDisposable() weak var compositeDisposableWeak = compositeDisposable - let operation = NSBlockOperation { + let operation = BlockOperation { if compositeDisposableWeak?.disposed ?? false { return } let disposable = action(state) - compositeDisposableWeak?.addDisposable(disposable) + let _ = compositeDisposableWeak?.addDisposable(disposable) } self.operationQueue.addOperation(operation) - compositeDisposable.addDisposable(AnonymousDisposable(operation.cancel)) + let _ = compositeDisposable.addDisposable(AnonymousDisposable(operation.cancel)) return compositeDisposable } -} \ No newline at end of file +} diff --git a/RxSwift/Schedulers/RecursiveScheduler.swift b/RxSwift/Schedulers/RecursiveScheduler.swift index 5e1a716f..527b35a6 100644 --- a/RxSwift/Schedulers/RecursiveScheduler.swift +++ b/RxSwift/Schedulers/RecursiveScheduler.swift @@ -14,7 +14,7 @@ Type erased recursive scheduler. class AnyRecursiveScheduler { typealias Action = (state: State, scheduler: AnyRecursiveScheduler) -> Void - private let _lock = NSRecursiveLock() + private let _lock = RecursiveLock() // state private let _group = CompositeDisposable() @@ -33,13 +33,13 @@ class AnyRecursiveScheduler { - parameter state: State passed to the action to be executed. - parameter dueTime: Relative time after which to execute the recursive action. */ - func schedule(state: State, dueTime: RxTimeInterval) { + func schedule(_ state: State, dueTime: RxTimeInterval) { var isAdded = false var isDone = false var removeKey: CompositeDisposable.DisposeKey? = nil - let d = _scheduler.scheduleRelative(state: state, dueTime: dueTime) { (state) -> Disposable in + let d = _scheduler.scheduleRelative(state, dueTime: dueTime) { (state) -> Disposable in // best effort if self._group.disposed { return NopDisposable.instance @@ -47,7 +47,7 @@ class AnyRecursiveScheduler { let action = self._lock.calculateLocked { () -> Action? in if isAdded { - self._group.removeDisposable(disposeKey: removeKey!) + self._group.removeDisposable(removeKey!) } else { isDone = true @@ -65,7 +65,7 @@ class AnyRecursiveScheduler { _lock.performLocked { if !isDone { - removeKey = _group.addDisposable(disposable: d) + removeKey = _group.addDisposable(d) isAdded = true } } @@ -76,13 +76,13 @@ class AnyRecursiveScheduler { - parameter state: State passed to the action to be executed. */ - func schedule(state: State) { + func schedule(_ state: State) { var isAdded = false var isDone = false var removeKey: CompositeDisposable.DisposeKey? = nil - let d = _scheduler.schedule(state: state) { (state) -> Disposable in + let d = _scheduler.schedule(state) { (state) -> Disposable in // best effort if self._group.disposed { return NopDisposable.instance @@ -90,7 +90,7 @@ class AnyRecursiveScheduler { let action = self._lock.calculateLocked { () -> Action? in if isAdded { - self._group.removeDisposable(disposeKey: removeKey!) + self._group.removeDisposable(removeKey!) } else { isDone = true @@ -108,7 +108,7 @@ class AnyRecursiveScheduler { _lock.performLocked { if !isDone { - removeKey = _group.addDisposable(disposable: d) + removeKey = _group.addDisposable(d) isAdded = true } } @@ -146,13 +146,13 @@ class RecursiveImmediateScheduler { - parameter state: State passed to the action to be executed. */ - func schedule(state: State) { + func schedule(_ state: State) { var isAdded = false var isDone = false var removeKey: CompositeDisposable.DisposeKey? = nil - let d = _scheduler.schedule(state: state) { (state) -> Disposable in + let d = _scheduler.schedule(state) { (state) -> Disposable in // best effort if self._group.disposed { return NopDisposable.instance @@ -160,7 +160,7 @@ class RecursiveImmediateScheduler { let action = self._lock.calculateLocked { () -> Action? in if isAdded { - self._group.removeDisposable(disposeKey: removeKey!) + self._group.removeDisposable(removeKey!) } else { isDone = true @@ -178,7 +178,7 @@ class RecursiveImmediateScheduler { _lock.performLocked { if !isDone { - removeKey = _group.addDisposable(disposable: d) + removeKey = _group.addDisposable(d) isAdded = true } } @@ -190,4 +190,4 @@ class RecursiveImmediateScheduler { } _group.dispose() } -} \ No newline at end of file +} diff --git a/RxSwift/Schedulers/SchedulerServices+Emulation.swift b/RxSwift/Schedulers/SchedulerServices+Emulation.swift index 835340fb..72b98fe7 100644 --- a/RxSwift/Schedulers/SchedulerServices+Emulation.swift +++ b/RxSwift/Schedulers/SchedulerServices+Emulation.swift @@ -9,8 +9,8 @@ import Foundation enum SchedulePeriodicRecursiveCommand { - case Tick - case DispatchStart + case tick + case dispatchStart } class SchedulePeriodicRecursive { @@ -34,29 +34,29 @@ class SchedulePeriodicRecursive { } func start() -> Disposable { - return _scheduler.scheduleRecursive(state: SchedulePeriodicRecursiveCommand.Tick, dueTime: _startAfter, action: self.tick) + return _scheduler.scheduleRecursive(SchedulePeriodicRecursiveCommand.tick, dueTime: _startAfter, action: self.tick) } - func tick(command: SchedulePeriodicRecursiveCommand, scheduler: RecursiveScheduler) -> Void { + func tick(_ command: SchedulePeriodicRecursiveCommand, scheduler: RecursiveScheduler) -> Void { // Tries to emulate periodic scheduling as best as possible. // The problem that could arise is if handling periodic ticks take too long, or // tick interval is short. switch command { - case .Tick: - scheduler.schedule(state: .Tick, dueTime: _period) + case .tick: + scheduler.schedule(.tick, dueTime: _period) // The idea is that if on tick there wasn't any item enqueued, schedule to perform work immediatelly. // Else work will be scheduled after previous enqueued work completes. if AtomicIncrement(&_pendingTickCount) == 1 { - self.tick(command: .DispatchStart, scheduler: scheduler) + self.tick(.dispatchStart, scheduler: scheduler) } - case .DispatchStart: + case .dispatchStart: _state = _action(_state) // Start work and schedule check is this last batch of work if AtomicDecrement(&_pendingTickCount) > 0 { // This gives priority to scheduler emulation, it's not perfect, but helps - scheduler.schedule(state: SchedulePeriodicRecursiveCommand.DispatchStart) + scheduler.schedule(SchedulePeriodicRecursiveCommand.dispatchStart) } } } diff --git a/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift b/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift index c9f9d6ac..2d23f127 100644 --- a/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift +++ b/RxSwift/Schedulers/SerialDispatchQueueScheduler.swift @@ -26,22 +26,22 @@ internal serial queue can be customized using `serialQueueConfiguration` callback. */ public class SerialDispatchQueueScheduler: SchedulerType { - public typealias TimeInterval = NSTimeInterval - public typealias Time = NSDate + public typealias TimeInterval = Foundation.TimeInterval + public typealias Time = Date - private let _serialQueue : dispatch_queue_t + private let _serialQueue : DispatchQueue /** - returns: Current time. */ - public var now : NSDate { - return NSDate() + public var now : Date { + return Date() } // leeway for scheduling timers private var _leeway: Int64 = 0 - init(serialQueue: dispatch_queue_t) { + init(serialQueue: DispatchQueue) { _serialQueue = serialQueue } @@ -53,9 +53,9 @@ public class SerialDispatchQueueScheduler: SchedulerType { - parameter internalSerialQueueName: Name of internal serial dispatch queue. - parameter serialQueueConfiguration: Additional configuration of internal serial dispatch queue. */ - public convenience init(internalSerialQueueName: String, serialQueueConfiguration: ((dispatch_queue_t) -> Void)? = nil) { + public convenience init(internalSerialQueueName: String, serialQueueConfiguration: ((DispatchQueue) -> Void)? = nil) { // Swift 3.0 IUO - let queue = dispatch_queue_create(internalSerialQueueName, DISPATCH_QUEUE_SERIAL)! + let queue = DispatchQueue(label: internalSerialQueueName, attributes: DispatchQueueAttributes.serial) serialQueueConfiguration?(queue) self.init(serialQueue: queue) } @@ -66,10 +66,10 @@ public class SerialDispatchQueueScheduler: SchedulerType { - parameter queue: Possibly concurrent dispatch queue used to perform work. - parameter internalSerialQueueName: Name of internal serial dispatch queue proxy. */ - public convenience init(queue: dispatch_queue_t, internalSerialQueueName: String) { + public convenience init(queue: DispatchQueue, internalSerialQueueName: String) { // Swift 3.0 IUO - let serialQueue = dispatch_queue_create(internalSerialQueueName, DISPATCH_QUEUE_SERIAL)! - dispatch_set_target_queue(serialQueue, queue) + let serialQueue = DispatchQueue(label: internalSerialQueueName, attributes: DispatchQueueAttributes.serial) + serialQueue.setTarget(queue: queue) self.init(serialQueue: serialQueue) } @@ -82,15 +82,15 @@ public class SerialDispatchQueueScheduler: SchedulerType { @available(iOS 8, OSX 10.10, *) public convenience init(globalConcurrentQueueQOS: DispatchQueueSchedulerQOS, internalSerialQueueName: String = "rx.global_dispatch_queue.serial") { let priority = globalConcurrentQueueQOS.QOSClass - self.init(queue: dispatch_get_global_queue(priority, UInt(0)), internalSerialQueueName: internalSerialQueueName) + self.init(queue: DispatchQueue.global(attributes: DispatchQueue.GlobalAttributes(rawValue: UInt64(priority.rawValue))), internalSerialQueueName: internalSerialQueueName) } - class func convertTimeIntervalToDispatchInterval(timeInterval: NSTimeInterval) -> Int64 { + class func convertTimeIntervalToDispatchInterval(_ timeInterval: Foundation.TimeInterval) -> Int64 { return Int64(timeInterval * Double(NSEC_PER_SEC)) } - class func convertTimeIntervalToDispatchTime(timeInterval: NSTimeInterval) -> dispatch_time_t { - return dispatch_time(DISPATCH_TIME_NOW, convertTimeIntervalToDispatchInterval(timeInterval: timeInterval)) + class func convertTimeIntervalToDispatchTime(_ timeInterval: Foundation.TimeInterval) -> DispatchTime { + return DispatchTime.now() + Double(convertTimeIntervalToDispatchInterval(timeInterval)) / Double(NSEC_PER_SEC) } /** @@ -100,14 +100,14 @@ public 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 { - return self.scheduleInternal(state: state, action: action) + public final func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + return self.scheduleInternal(state, action: action) } - func scheduleInternal(state: StateType, action: (StateType) -> Disposable) -> Disposable { + func scheduleInternal(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { let cancel = SingleAssignmentDisposable() - dispatch_async(_serialQueue) { + _serialQueue.async { if cancel.disposed { return } @@ -127,25 +127,26 @@ public 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: NSTimeInterval, action: (StateType) -> Disposable) -> Disposable { - // Swift 3.0 IUO - let timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, _serialQueue)! + public final func scheduleRelative(_ state: StateType, dueTime: Foundation.TimeInterval, action: (StateType) -> Disposable) -> Disposable { + - let dispatchInterval = MainScheduler.convertTimeIntervalToDispatchTime(timeInterval: dueTime) + let dispatchInterval = MainScheduler.convertTimeIntervalToDispatchTime(dueTime) let compositeDisposable = CompositeDisposable() - dispatch_source_set_timer(timer, dispatchInterval, DISPATCH_TIME_FOREVER, 0) - dispatch_source_set_event_handler(timer, { + let timer = DispatchSource.timer(flags: DispatchSource.TimerFlags(rawValue: UInt(0)), queue: _serialQueue) + timer.scheduleOneshot(deadline: dispatchInterval, leeway: DispatchTimeInterval.microseconds(0)) + + timer.setEventHandler(handler: { if compositeDisposable.disposed { return } - compositeDisposable.addDisposable(disposable: action(state)) + let _ = compositeDisposable.addDisposable(action(state)) }) - dispatch_resume(timer) + timer.resume() - compositeDisposable.addDisposable(disposable: AnonymousDisposable { - dispatch_source_cancel(timer) + let _ = compositeDisposable.addDisposable(AnonymousDisposable { + timer.cancel() }) return compositeDisposable @@ -160,29 +161,29 @@ public class SerialDispatchQueueScheduler: 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: (StateType) -> StateType) -> Disposable { - // Swift 3.0 IUO - let timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, _serialQueue)! - let initial = MainScheduler.convertTimeIntervalToDispatchTime(timeInterval: startAfter) - let dispatchInterval = MainScheduler.convertTimeIntervalToDispatchInterval(timeInterval: period) + let initial = MainScheduler.convertTimeIntervalToDispatchTime(startAfter) + let dispatchInterval = MainScheduler.convertTimeIntervalToDispatchInterval(period) var timerState = state let validDispatchInterval = dispatchInterval < 0 ? 0 : UInt64(dispatchInterval) - dispatch_source_set_timer(timer, initial, validDispatchInterval, 0) + let timer = DispatchSource.timer(flags: DispatchSource.TimerFlags(rawValue: UInt(0)), queue: _serialQueue) + timer.scheduleRepeating(deadline: initial, interval: DispatchTimeInterval.seconds(Int(validDispatchInterval)), leeway: DispatchTimeInterval.microseconds(0)) + let cancel = AnonymousDisposable { - dispatch_source_cancel(timer) + timer.cancel() } - dispatch_source_set_event_handler(timer, { + timer.setEventHandler(handler: { if cancel.disposed { return } timerState = action(timerState) }) - dispatch_resume(timer) + timer.resume() return cancel } diff --git a/RxSwift/Schedulers/VirtualTimeConverterType.swift b/RxSwift/Schedulers/VirtualTimeConverterType.swift index 5a51a482..c5476a03 100644 --- a/RxSwift/Schedulers/VirtualTimeConverterType.swift +++ b/RxSwift/Schedulers/VirtualTimeConverterType.swift @@ -28,7 +28,7 @@ public protocol VirtualTimeConverterType { - parameter virtualTime: Virtual time to convert to `NSDate`. - returns: `NSDate` corresponding to virtual time. */ - func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime + func convertFromVirtualTime(_ virtualTime: VirtualTimeUnit) -> RxTime /** Converts real time to virtual time. @@ -36,7 +36,7 @@ public protocol VirtualTimeConverterType { - parameter time: `NSDate` to convert to virtual time. - returns: Virtual time corresponding to `NSDate`. */ - func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit + func convertToVirtualTime(_ time: RxTime) -> VirtualTimeUnit /** Converts from virtual time interval to `NSTimeInterval`. @@ -44,7 +44,7 @@ public protocol VirtualTimeConverterType { - parameter virtualTimeInterval: Virtual time interval to convert to `NSTimeInterval`. - returns: `NSTimeInterval` corresponding to virtual time interval. */ - func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval + func convertFromVirtualTimeInterval(_ virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval /** Converts from virtual time interval to `NSTimeInterval`. @@ -52,7 +52,7 @@ public protocol VirtualTimeConverterType { - parameter timeInterval: `NSTimeInterval` to convert to virtual time interval. - returns: Virtual time interval corresponding to time interval. */ - func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit + func convertToVirtualTimeInterval(_ timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit /** Offsets virtual time by virtual time interval. @@ -61,13 +61,13 @@ public protocol VirtualTimeConverterType { - parameter offset: Virtual time interval. - returns: Time corresponding to time offsetted by virtual time interval. */ - func offsetVirtualTime(time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit + func offsetVirtualTime(_ time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit /** This is aditional abstraction because `NSDate` is unfortunately not comparable. Extending `NSDate` with `Comparable` would be too risky because of possible collisions with other libraries. */ - func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison + func compareVirtualTime(_ lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison } /** @@ -80,15 +80,15 @@ public enum VirtualTimeComparison { /** lhs < rhs. */ - case LessThan + case lessThan /** lhs == rhs. */ - case Equal + case equal /** lhs > rhs. */ - case GreaterThan + case greaterThan } extension VirtualTimeComparison { @@ -96,20 +96,20 @@ extension VirtualTimeComparison { lhs < rhs. */ var lessThen: Bool { - return self == .LessThan + return self == .lessThan } /** lhs > rhs */ var greaterThan: Bool { - return self == .GreaterThan + return self == .greaterThan } /** lhs == rhs */ var equal: Bool { - return self == .Equal + return self == .equal } } diff --git a/RxSwift/Schedulers/VirtualTimeScheduler.swift b/RxSwift/Schedulers/VirtualTimeScheduler.swift index 393bf75d..b39e95a2 100644 --- a/RxSwift/Schedulers/VirtualTimeScheduler.swift +++ b/RxSwift/Schedulers/VirtualTimeScheduler.swift @@ -31,7 +31,7 @@ public class VirtualTimeScheduler - returns: Current time. */ public var now: RxTime { - return _converter.convertFromVirtualTime(virtualTime: clock) + return _converter.convertFromVirtualTime(clock) } /** @@ -51,17 +51,17 @@ public class VirtualTimeScheduler _running = false _converter = converter _schedulerQueue = PriorityQueue(hasHigherPriority: { - switch converter.compareVirtualTime(lhs: $0.time, $1.time) { - case .LessThan: + switch converter.compareVirtualTime($0.time, $1.time) { + case .lessThan: return true - case .Equal: + case .equal: return $0.id < $1.id - case .GreaterThan: + case .greaterThan: return false } }) #if TRACE_RESOURCES - AtomicIncrement(&resourceCount) + let _ = AtomicIncrement(&resourceCount) #endif } @@ -72,8 +72,8 @@ public class VirtualTimeScheduler - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public func schedule(state: StateType, action: (StateType) -> Disposable) -> Disposable { - return self.scheduleRelative(state: state, dueTime: 0.0) { a in + public func schedule(_ state: StateType, action: (StateType) -> Disposable) -> Disposable { + return self.scheduleRelative(state, dueTime: 0.0) { a in return action(a) } } @@ -86,11 +86,11 @@ public class VirtualTimeScheduler - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public func scheduleRelative(state: StateType, dueTime: RxTimeInterval, action: (StateType) -> Disposable) -> Disposable { + public func scheduleRelative(_ state: StateType, dueTime: RxTimeInterval, action: (StateType) -> Disposable) -> Disposable { let time = self.now.addingTimeInterval(dueTime) - let absoluteTime = _converter.convertToVirtualTime(time: time) + let absoluteTime = _converter.convertToVirtualTime(time) let adjustedTime = self.adjustScheduledTime(time: absoluteTime) - return scheduleAbsoluteVirtual(state: state, time: adjustedTime, action: action) + return scheduleAbsoluteVirtual(state, time: adjustedTime, action: action) } /** @@ -101,9 +101,9 @@ public class VirtualTimeScheduler - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public func scheduleRelativeVirtual(state: StateType, dueTime: VirtualTimeInterval, action: (StateType) -> Disposable) -> Disposable { - let time = _converter.offsetVirtualTime(time: self.clock, offset: dueTime) - return scheduleAbsoluteVirtual(state: state, time: time, action: action) + public func scheduleRelativeVirtual(_ state: StateType, dueTime: VirtualTimeInterval, action: (StateType) -> Disposable) -> Disposable { + let time = _converter.offsetVirtualTime(self.clock, offset: dueTime) + return scheduleAbsoluteVirtual(state, time: time, action: action) } /** @@ -114,7 +114,7 @@ public class VirtualTimeScheduler - parameter action: Action to be executed. - returns: The disposable object used to cancel the scheduled action (best effort). */ - public func scheduleAbsoluteVirtual(state: StateType, time: Converter.VirtualTimeUnit, action: (StateType) -> Disposable) -> Disposable { + public func scheduleAbsoluteVirtual(_ state: StateType, time: Converter.VirtualTimeUnit, action: (StateType) -> Disposable) -> Disposable { MainScheduler.ensureExecutingOnScheduler() let compositeDisposable = CompositeDisposable() @@ -126,9 +126,9 @@ public class VirtualTimeScheduler _nextId += 1 - _schedulerQueue.enqueue(element: item) + _schedulerQueue.enqueue(item) - compositeDisposable.addDisposable(disposable: item) + _ = compositeDisposable.addDisposable(item) return compositeDisposable } @@ -156,12 +156,12 @@ public class VirtualTimeScheduler break } - if _converter.compareVirtualTime(lhs: next.time, self.clock).greaterThan { + if _converter.compareVirtualTime(next.time, self.clock).greaterThan { _clock = next.time } next.invoke() - _schedulerQueue.remove(element: next) + _schedulerQueue.remove(next) } while _running _running = false @@ -170,7 +170,7 @@ public class VirtualTimeScheduler func findNext() -> VirtualSchedulerItem? { while let front = _schedulerQueue.peek() { if front.disposed { - _schedulerQueue.remove(element: front) + _schedulerQueue.remove(front) continue } @@ -185,7 +185,7 @@ public class VirtualTimeScheduler - parameter virtualTime: Absolute time to advance the scheduler's clock to. */ - public func advanceTo(virtualTime: VirtualTime) { + public func advanceTo(_ virtualTime: VirtualTime) { MainScheduler.ensureExecutingOnScheduler() if _running { @@ -198,16 +198,16 @@ public class VirtualTimeScheduler break } - if _converter.compareVirtualTime(lhs: next.time, virtualTime).greaterThan { + if _converter.compareVirtualTime(next.time, virtualTime).greaterThan { break } - if _converter.compareVirtualTime(lhs: next.time, self.clock).greaterThan { + if _converter.compareVirtualTime(next.time, self.clock).greaterThan { _clock = next.time } next.invoke() - _schedulerQueue.remove(element: next) + _schedulerQueue.remove(next) } while _running _clock = virtualTime @@ -217,11 +217,11 @@ public class VirtualTimeScheduler /** Advances the scheduler's clock by the specified relative time. */ - public func sleep(virtualInterval: VirtualTimeInterval) { + public func sleep(_ virtualInterval: VirtualTimeInterval) { MainScheduler.ensureExecutingOnScheduler() - let sleepTo = _converter.offsetVirtualTime(time: clock, offset: virtualInterval) - if _converter.compareVirtualTime(lhs: sleepTo, clock).lessThen { + let sleepTo = _converter.offsetVirtualTime(clock, offset: virtualInterval) + if _converter.compareVirtualTime(sleepTo, clock).lessThen { fatalError("Can't sleep to past.") } @@ -239,7 +239,7 @@ public class VirtualTimeScheduler #if TRACE_RESOURCES deinit { - AtomicDecrement(&resourceCount) + _ = AtomicDecrement(&resourceCount) } #endif } @@ -289,4 +289,4 @@ extension VirtualSchedulerItem var debugDescription: String { return "\(time)" } -} \ No newline at end of file +} diff --git a/RxSwift/Subjects/BehaviorSubject.swift b/RxSwift/Subjects/BehaviorSubject.swift index 950292da..64c0a302 100644 --- a/RxSwift/Subjects/BehaviorSubject.swift +++ b/RxSwift/Subjects/BehaviorSubject.swift @@ -30,7 +30,7 @@ public final class BehaviorSubject return _observers.count > 0 } - let _lock = NSRecursiveLock() + let _lock = RecursiveLock() // state private var _disposed = false @@ -62,7 +62,7 @@ public final class BehaviorSubject public func value() throws -> Element { _lock.lock(); defer { _lock.unlock() } // { if _disposed { - throw RxError.Disposed(object: self) + throw RxError.disposed(object: self) } if let error = _stoppedEvent?.error { @@ -80,24 +80,24 @@ public final class BehaviorSubject - parameter event: Event to send to the observers. */ - public func on(event: Event) { + public func on(_ event: Event) { _lock.lock(); defer { _lock.unlock() } - _synchronized_on(event: event) + _synchronized_on(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { if _stoppedEvent != nil || _disposed { return } switch event { - case .Next(let value): + case .next(let value): _value = value - case .Error, .Completed: + case .error, .completed: _stoppedEvent = event } - _observers.on(event: event) + _observers.on(event) } /** @@ -106,39 +106,39 @@ public final class BehaviorSubject - parameter observer: Observer to subscribe to the subject. - returns: Disposable object that can be used to unsubscribe the observer from the subject. */ - public override func subscribe(observer: O) -> Disposable { + public override func subscribe(_ observer: O) -> Disposable { _lock.lock(); defer { _lock.unlock() } - return _synchronized_subscribe(observer: observer) + return _synchronized_subscribe(observer) } - func _synchronized_subscribe(observer: O) -> Disposable { + func _synchronized_subscribe(_ observer: O) -> Disposable { if _disposed { - observer.on(event: .Error(RxError.Disposed(object: self))) + observer.on(.error(RxError.disposed(object: self))) return NopDisposable.instance } if let stoppedEvent = _stoppedEvent { - observer.on(event: stoppedEvent) + observer.on(stoppedEvent) return NopDisposable.instance } - let key = _observers.insert(element: observer.asObserver()) - observer.on(event: .Next(_value)) + let key = _observers.insert(observer.asObserver()) + observer.on(.next(_value)) return SubscriptionDisposable(owner: self, key: key) } - func synchronizedUnsubscribe(disposeKey: DisposeKey) { + func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { _lock.lock(); defer { _lock.unlock() } - _synchronized_unsubscribe(disposeKey: disposeKey) + _synchronized_unsubscribe(disposeKey) } - func _synchronized_unsubscribe(disposeKey: DisposeKey) { + func _synchronized_unsubscribe(_ disposeKey: DisposeKey) { if _disposed { return } - _ = _observers.removeKey(key: disposeKey) + _ = _observers.removeKey(disposeKey) } /** @@ -158,4 +158,4 @@ public final class BehaviorSubject _stoppedEvent = nil } } -} \ No newline at end of file +} diff --git a/RxSwift/Subjects/PublishSubject.swift b/RxSwift/Subjects/PublishSubject.swift index 3507a402..f45a6984 100644 --- a/RxSwift/Subjects/PublishSubject.swift +++ b/RxSwift/Subjects/PublishSubject.swift @@ -31,7 +31,7 @@ final public class PublishSubject return _observers.count > 0 } - private var _lock = NSRecursiveLock() + private var _lock = RecursiveLock() // state private var _disposed = false @@ -58,24 +58,24 @@ final public class PublishSubject - parameter event: Event to send to the observers. */ - public func on(event: Event) { + public func on(_ event: Event) { _lock.lock(); defer { _lock.unlock() } - _synchronized_on(event: event) + _synchronized_on(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { switch event { - case .Next(_): + case .next(_): if _disposed || _stopped { return } - _observers.on(event: event) - case .Completed, .Error: + _observers.on(event) + case .completed, .error: if _stoppedEvent == nil { _stoppedEvent = event _stopped = true - _observers.on(event: event) + _observers.on(event) _observers.removeAll() } } @@ -87,33 +87,33 @@ final public class PublishSubject - parameter observer: Observer to subscribe to the subject. - returns: Disposable object that can be used to unsubscribe the observer from the subject. */ - public override func subscribe(observer: O) -> Disposable { + public override func subscribe(_ observer: O) -> Disposable { _lock.lock(); defer { _lock.unlock() } - return _synchronized_subscribe(observer: observer) + return _synchronized_subscribe(observer) } - func _synchronized_subscribe(observer: O) -> Disposable { + func _synchronized_subscribe(_ observer: O) -> Disposable { if let stoppedEvent = _stoppedEvent { - observer.on(event: stoppedEvent) + observer.on(stoppedEvent) return NopDisposable.instance } if _disposed { - observer.on(event: .Error(RxError.Disposed(object: self))) + observer.on(.error(RxError.disposed(object: self))) return NopDisposable.instance } - let key = _observers.insert(element: observer.asObserver()) + let key = _observers.insert(observer.asObserver()) return SubscriptionDisposable(owner: self, key: key) } - func synchronizedUnsubscribe(disposeKey: DisposeKey) { + func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { _lock.lock(); defer { _lock.unlock() } - _synchronized_unsubscribe(disposeKey: disposeKey) + _synchronized_unsubscribe(disposeKey) } - func _synchronized_unsubscribe(disposeKey: DisposeKey) { - _ = _observers.removeKey(key: disposeKey) + func _synchronized_unsubscribe(_ disposeKey: DisposeKey) { + _ = _observers.removeKey(disposeKey) } /** @@ -136,4 +136,4 @@ final public class PublishSubject _observers.removeAll() _stoppedEvent = nil } -} \ No newline at end of file +} diff --git a/RxSwift/Subjects/ReplaySubject.swift b/RxSwift/Subjects/ReplaySubject.swift index 1b3fd29c..8d75a9ad 100644 --- a/RxSwift/Subjects/ReplaySubject.swift +++ b/RxSwift/Subjects/ReplaySubject.swift @@ -28,7 +28,7 @@ public class ReplaySubject return _observers.count > 0 } - private var _lock = NSRecursiveLock() + private var _lock = RecursiveLock() // state private var _disposed = false @@ -37,7 +37,7 @@ public class ReplaySubject typealias DisposeKey = Bag>.KeyType - func unsubscribe(key: DisposeKey) { + func unsubscribe(_ key: DisposeKey) { abstractMethod() } @@ -46,7 +46,7 @@ public class ReplaySubject - parameter event: Event to send to the observers. */ - public func on(event: Event) { + public func on(_ event: Event) { abstractMethod() } @@ -69,7 +69,7 @@ public class ReplaySubject - parameter bufferSize: Maximal number of elements to replay to observer after subscription. - returns: New instance of replay subject. */ - public static func create(bufferSize: Int) -> ReplaySubject { + public static func create(_ bufferSize: Int) -> ReplaySubject { if bufferSize == 1 { return ReplayOne() } @@ -96,20 +96,20 @@ class ReplayBufferBase abstractMethod() } - func addValueToBuffer(value: Element) { + func addValueToBuffer(_ value: Element) { abstractMethod() } - func replayBuffer(observer: AnyObserver) { + func replayBuffer(_ observer: AnyObserver) { abstractMethod() } - override func on(event: Event) { + override func on(_ event: Event) { _lock.lock(); defer { _lock.unlock() } - _synchronized_on(event: event) + _synchronized_on(event) } - func _synchronized_on(event: Event) { + func _synchronized_on(_ event: Event) { if _disposed { return } @@ -119,53 +119,53 @@ class ReplayBufferBase } switch event { - case .Next(let value): - addValueToBuffer(value: value) + case .next(let value): + addValueToBuffer(value) trim() - _observers.on(event: event) - case .Error, .Completed: + _observers.on(event) + case .error, .completed: _stoppedEvent = event trim() - _observers.on(event: event) + _observers.on(event) _observers.removeAll() } } - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { _lock.lock(); defer { _lock.unlock() } - return _synchronized_subscribe(observer: observer) + return _synchronized_subscribe(observer) } - func _synchronized_subscribe(observer: O) -> Disposable { + func _synchronized_subscribe(_ observer: O) -> Disposable { if _disposed { - observer.on(event: .Error(RxError.Disposed(object: self))) + observer.on(.error(RxError.disposed(object: self))) return NopDisposable.instance } let AnyObserver = observer.asObserver() - replayBuffer(observer: AnyObserver) + replayBuffer(AnyObserver) if let stoppedEvent = _stoppedEvent { - observer.on(event: stoppedEvent) + observer.on(stoppedEvent) return NopDisposable.instance } else { - let key = _observers.insert(element: AnyObserver) + let key = _observers.insert(AnyObserver) return SubscriptionDisposable(owner: self, key: key) } } - func synchronizedUnsubscribe(disposeKey: DisposeKey) { + func synchronizedUnsubscribe(_ disposeKey: DisposeKey) { _lock.lock(); defer { _lock.unlock() } - _synchronized_unsubscribe(disposeKey: disposeKey) + _synchronized_unsubscribe(disposeKey) } - func _synchronized_unsubscribe(disposeKey: DisposeKey) { + func _synchronized_unsubscribe(_ disposeKey: DisposeKey) { if _disposed { return } - _ = _observers.removeKey(key: disposeKey) + _ = _observers.removeKey(disposeKey) } override func dispose() { @@ -197,13 +197,13 @@ final class ReplayOne : ReplayBufferBase { } - override func addValueToBuffer(value: Element) { + override func addValueToBuffer(_ value: Element) { _value = value } - override func replayBuffer(observer: AnyObserver) { + override func replayBuffer(_ observer: AnyObserver) { if let value = _value { - observer.on(event: .Next(value)) + observer.on(.next(value)) } } @@ -220,13 +220,13 @@ class ReplayManyBase : ReplayBufferBase { _queue = Queue(capacity: queueSize + 1) } - override func addValueToBuffer(value: Element) { - _queue.enqueue(element: value) + override func addValueToBuffer(_ value: Element) { + _queue.enqueue(value) } - override func replayBuffer(observer: AnyObserver) { + override func replayBuffer(_ observer: AnyObserver) { for item in _queue { - observer.on(event: .Next(item)) + observer.on(.next(item)) } } @@ -247,7 +247,7 @@ final class ReplayMany : ReplayManyBase { override func trim() { while _queue.count > _bufferSize { - _queue.dequeue() + _ = _queue.dequeue() } } } @@ -260,4 +260,4 @@ final class ReplayAll : ReplayManyBase { override func trim() { } -} \ No newline at end of file +} diff --git a/RxSwift/Subjects/Variable.swift b/RxSwift/Subjects/Variable.swift index 61dffdbe..77137c1d 100644 --- a/RxSwift/Subjects/Variable.swift +++ b/RxSwift/Subjects/Variable.swift @@ -42,7 +42,7 @@ public class Variable { _value = newValue _lock.unlock() - _subject.on(event: .Next(newValue)) + _subject.on(.next(newValue)) } } @@ -64,6 +64,6 @@ public class Variable { } deinit { - _subject.on(event: .Completed) + _subject.on(.completed) } -} \ No newline at end of file +} diff --git a/RxTests/ColdObservable.swift b/RxTests/ColdObservable.swift index 79540b7d..07c4dac9 100644 --- a/RxTests/ColdObservable.swift +++ b/RxTests/ColdObservable.swift @@ -25,7 +25,7 @@ class ColdObservable /** Subscribes `observer` to receive events for this sequence. */ - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { subscriptions.append(Subscription(testScheduler.clock)) let i = self.subscriptions.count - 1 @@ -42,4 +42,4 @@ class ColdObservable self.subscriptions[i] = Subscription(existing.subscribe, self.testScheduler.clock) } } -} \ No newline at end of file +} diff --git a/RxTests/Event+Equatable.swift b/RxTests/Event+Equatable.swift index 5a69734a..a3d566a3 100644 --- a/RxTests/Event+Equatable.swift +++ b/RxTests/Event+Equatable.swift @@ -17,7 +17,7 @@ and their string representations are equal. */ public func == (lhs: Event, rhs: Event) -> Bool { switch (lhs, rhs) { - case (.Completed, .Completed): return true + case (.completed, .completed): return true case (.Error(let e1), .Error(let e2)): // if the references are equal, then it's the same object if let lhsObject = lhs as? AnyObject, @@ -36,7 +36,7 @@ public func == (lhs: Event, rhs: Event) -> && error1.code == error2.code && "\(e1)" == "\(e2)" #endif - case (.Next(let v1), .Next(let v2)): return v1 == v2 + case (.next(let v1), .next(let v2)): return v1 == v2 default: return false } } diff --git a/RxTests/HotObservable.swift b/RxTests/HotObservable.swift index 79418113..036bde2d 100644 --- a/RxTests/HotObservable.swift +++ b/RxTests/HotObservable.swift @@ -40,7 +40,7 @@ class HotObservable /** Subscribes `observer` to receive events for this sequence. */ - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { let key = _observers.insert(AnyObserver(observer)) subscriptions.append(Subscription(self.testScheduler.clock)) diff --git a/RxTests/Schedulers/TestScheduler.swift b/RxTests/Schedulers/TestScheduler.swift index 83a32269..d92221b4 100644 --- a/RxTests/Schedulers/TestScheduler.swift +++ b/RxTests/Schedulers/TestScheduler.swift @@ -52,7 +52,7 @@ public class TestScheduler : VirtualTimeScheduler(events: [Recorded>]) -> TestableObservable { + public func createHotObservable(_ events: [Recorded>]) -> TestableObservable { return HotObservable(testScheduler: self as AnyObject as! TestScheduler, recordedEvents: events) } @@ -62,7 +62,7 @@ public class TestScheduler : VirtualTimeScheduler(events: [Recorded>]) -> TestableObservable { + public func createColdObservable(_ events: [Recorded>]) -> TestableObservable { return ColdObservable(testScheduler: self as AnyObject as! TestScheduler, recordedEvents: events) } @@ -72,7 +72,7 @@ public class TestScheduler : VirtualTimeScheduler(type: E.Type) -> TestableObserver { + public func createObserver(_ type: E.Type) -> TestableObserver { return TestableObserver(scheduler: self as AnyObject as! TestScheduler) } @@ -81,7 +81,7 @@ public class TestScheduler : VirtualTimeScheduler Void) { + public func scheduleAt(_ time: TestTime, action: () -> Void) { self.scheduleAbsoluteVirtual((), time: time, action: { () -> Disposable in action() return NopDisposable.instance @@ -91,7 +91,7 @@ public class TestScheduler : VirtualTimeScheduler VirtualTime { + override public func adjustScheduledTime(_ time: VirtualTime) -> VirtualTime { return time <= clock ? clock + (_simulateProcessingDelay ? 1 : 0) : time } @@ -104,7 +104,7 @@ public class TestScheduler : VirtualTimeScheduler(created: TestTime, subscribed: TestTime, disposed: TestTime, create: () -> Observable) -> TestableObserver { + public func start(_ created: TestTime, subscribed: TestTime, disposed: TestTime, create: () -> Observable) -> TestableObserver { var source : Observable? = nil var subscription : Disposable? = nil let observer = createObserver(Element) @@ -140,7 +140,7 @@ public class TestScheduler : VirtualTimeScheduler(disposed: TestTime, create: () -> Observable) -> TestableObserver { + public func start(_ disposed: TestTime, create: () -> Observable) -> TestableObserver { return start(Defaults.created, subscribed: Defaults.subscribed, disposed: disposed, create: create) } @@ -155,7 +155,7 @@ public class TestScheduler : VirtualTimeScheduler(create: () -> Observable) -> TestableObserver { + public func start(_ create: () -> Observable) -> TestableObserver { return start(Defaults.created, subscribed: Defaults.subscribed, disposed: Defaults.disposed, create: create) } -} \ No newline at end of file +} diff --git a/RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift b/RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift index f4620e19..b06d9da9 100644 --- a/RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift +++ b/RxTests/Schedulers/TestSchedulerVirtualTimeConverter.swift @@ -36,8 +36,8 @@ public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType { - parameter virtualTime: Virtual time to convert to `NSDate`. - returns: `NSDate` corresponding to virtual time. */ - public func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime { - return NSDate(timeIntervalSince1970: RxTimeInterval(virtualTime) * _resolution) + public func convertFromVirtualTime(_ virtualTime: VirtualTimeUnit) -> RxTime { + return Date(timeIntervalSince1970: RxTimeInterval(virtualTime) * _resolution) } /** @@ -46,7 +46,7 @@ public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType { - parameter time: `NSDate` to convert to virtual time. - returns: Virtual time corresponding to `NSDate`. */ - public func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit { + public func convertToVirtualTime(_ time: RxTime) -> VirtualTimeUnit { return VirtualTimeIntervalUnit(time.timeIntervalSince1970 / _resolution + 0.5) } @@ -56,7 +56,7 @@ public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType { - parameter virtualTimeInterval: Virtual time interval to convert to `NSTimeInterval`. - returns: `NSTimeInterval` corresponding to virtual time interval. */ - public func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { + public func convertFromVirtualTimeInterval(_ virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { return RxTimeInterval(virtualTimeInterval) * _resolution } @@ -66,7 +66,7 @@ public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType { - parameter timeInterval: `NSTimeInterval` to convert to virtual time interval. - returns: Virtual time interval corresponding to time interval. */ - public func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { + public func convertToVirtualTimeInterval(_ timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { return VirtualTimeIntervalUnit(timeInterval / _resolution + 0.5) } @@ -77,16 +77,16 @@ public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType { - parameter offset: Virtual time interval. - returns: Time corresponding to time offsetted by virtual time interval. */ - public func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { + public func offsetVirtualTime(time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { return time + offset } /** Compares virtual times. */ - public func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { + public func compareVirtualTime(_ lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { if lhs < rhs { - return .LessThan + return .lessThan } else if lhs > rhs { return .GreaterThan @@ -95,4 +95,4 @@ public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType { return .Equal } } -} \ No newline at end of file +} diff --git a/RxTests/TestableObservable.swift b/RxTests/TestableObservable.swift index de9c9d94..1087089d 100644 --- a/RxTests/TestableObservable.swift +++ b/RxTests/TestableObservable.swift @@ -38,7 +38,7 @@ public class TestableObservable self.subscriptions = [] } - public func subscribe(observer: O) -> Disposable { + public func subscribe(_ observer: O) -> Disposable { fatalError("Abstract method") } -} \ No newline at end of file +} diff --git a/RxTests/TestableObserver.swift b/RxTests/TestableObserver.swift index 04e58481..95f7c629 100644 --- a/RxTests/TestableObserver.swift +++ b/RxTests/TestableObserver.swift @@ -32,7 +32,7 @@ public class TestableObserver - parameter event: Event that occured. */ - public func on(event: Event) { + public func on(_ event: Event) { events.append(Recorded(time: _scheduler.clock, event: event)) } -} \ No newline at end of file +} diff --git a/RxTests/XCTest+Rx.swift b/RxTests/XCTest+Rx.swift index 16a2d66f..065c26c1 100644 --- a/RxTests/XCTest+Rx.swift +++ b/RxTests/XCTest+Rx.swift @@ -21,8 +21,8 @@ require specifying `self.*`, they are made global. - parameter element: Next sequence element. - returns: Recorded event in time. */ - public func next(time: TestTime, _ element: T) -> Recorded> { - return Recorded(time: time, event: .Next(element)) + public func next(_ time: TestTime, _ element: T) -> Recorded> { + return Recorded(time: time, event: .next(element)) } /** @@ -32,8 +32,8 @@ require specifying `self.*`, they are made global. - parameter type: Sequence elements type. - returns: Recorded event in time. */ - public func completed(time: TestTime, _ type: T.Type = T.self) -> Recorded> { - return Recorded(time: time, event: .Completed) + public func completed(_ time: TestTime, _ type: T.Type = T.self) -> Recorded> { + return Recorded(time: time, event: .completed) } /** @@ -41,7 +41,7 @@ require specifying `self.*`, they are made global. - parameter time: Recorded virtual time the `.Completed` event occurs. */ - public func error(time: TestTime, _ error: ErrorProtocol, _ type: T.Type = T.self) -> Recorded> { + public func error(_ time: TestTime, _ error: ErrorProtocol, _ type: T.Type = T.self) -> Recorded> { return Recorded(time: time, event: .Error(error)) } //} @@ -58,7 +58,7 @@ Event is considered equal if: - parameter lhs: first set of events. - parameter lhs: second set of events. */ -public func XCTAssertEqual(lhs: [Event], _ rhs: [Event], file: StaticString = #file, line: UInt = #line) { +public func XCTAssertEqual(_ lhs: [Event], _ rhs: [Event], file: StaticString = #file, line: UInt = #line) { let leftEquatable = lhs.map { AnyEquatable(target: $0, comparer: ==) } let rightEquatable = rhs.map { AnyEquatable(target: $0, comparer: ==) } #if os(Linux) @@ -86,7 +86,7 @@ Event is considered equal if: - parameter lhs: first set of events. - parameter lhs: second set of events. */ -public func XCTAssertEqual(lhs: [Recorded>], _ rhs: [Recorded>], file: StaticString = #file, line: UInt = #line) { +public func XCTAssertEqual(_ lhs: [Recorded>], _ rhs: [Recorded>], file: StaticString = #file, line: UInt = #line) { let leftEquatable = lhs.map { AnyEquatable(target: $0, comparer: ==) } let rightEquatable = rhs.map { AnyEquatable(target: $0, comparer: ==) } #if os(Linux) @@ -102,9 +102,9 @@ public func XCTAssertEqual(lhs: [Recorded>], _ rhs: [Reco printSequenceDifferences(lhs, rhs, ==) } -func printSequenceDifferences(lhs: [E], _ rhs: [E], _ equal: (E, E) -> Bool) { +func printSequenceDifferences(_ lhs: [E], _ rhs: [E], _ equal: (E, E) -> Bool) { print("Differences:") - for (index, elements) in zip(lhs, rhs).enumerate() { + for (index, elements) in zip(lhs, rhs).enumerated() { let l = elements.0 let r = elements.1 if !equal(l, r) { @@ -114,10 +114,10 @@ func printSequenceDifferences(lhs: [E], _ rhs: [E], _ equal: (E, E) -> Bool) } let shortest = min(lhs.count, rhs.count) - for (index, element) in lhs[shortest ..< lhs.count].enumerate() { + for (index, element) in lhs[shortest ..< lhs.count].enumerated() { print("lhs[\(index + shortest)]:\n \(element)") } - for (index, element) in rhs[shortest ..< rhs.count].enumerate() { + for (index, element) in rhs[shortest ..< rhs.count].enumerated() { print("rhs[\(index + shortest)]:\n \(element)") } } diff --git a/Tests/PerformanceTests/PerformanceTools.swift b/Tests/PerformanceTests/PerformanceTools.swift index 8612bbe8..f6689ce4 100644 --- a/Tests/PerformanceTests/PerformanceTools.swift +++ b/Tests/PerformanceTests/PerformanceTools.swift @@ -13,7 +13,7 @@ var mallocFunctions: [(@convention(c) (UnsafeMutablePointer<_malloc_zone_t>, Int var allocCalls: Int64 = 0 var bytesAllocated: Int64 = 0 -func call0(p: UnsafeMutablePointer<_malloc_zone_t>, size: Int) -> UnsafeMutablePointer { +func call0(_ p: UnsafeMutablePointer<_malloc_zone_t>, size: Int) -> UnsafeMutablePointer { OSAtomicIncrement64(&allocCalls) OSAtomicAdd64(Int64(size), &bytesAllocated) #if ALLOC_HOOK @@ -22,7 +22,7 @@ func call0(p: UnsafeMutablePointer<_malloc_zone_t>, size: Int) -> UnsafeMutableP return mallocFunctions[0](p, size) } -func call1(p: UnsafeMutablePointer<_malloc_zone_t>, size: Int) -> UnsafeMutablePointer { +func call1(_ p: UnsafeMutablePointer<_malloc_zone_t>, size: Int) -> UnsafeMutablePointer { OSAtomicIncrement64(&allocCalls) OSAtomicAdd64(Int64(size), &bytesAllocated) #if ALLOC_HOOK @@ -31,7 +31,7 @@ func call1(p: UnsafeMutablePointer<_malloc_zone_t>, size: Int) -> UnsafeMutableP return mallocFunctions[1](p, size) } -func call2(p: UnsafeMutablePointer<_malloc_zone_t>, size: Int) -> UnsafeMutablePointer { +func call2(_ p: UnsafeMutablePointer<_malloc_zone_t>, size: Int) -> UnsafeMutablePointer { OSAtomicIncrement64(&allocCalls) OSAtomicAdd64(Int64(size), &bytesAllocated) #if ALLOC_HOOK @@ -55,7 +55,7 @@ func registerMallocHooks() { registeredMallocHooks = true - var _zones: UnsafeMutablePointer = UnsafeMutablePointer(nil) + var _zones: UnsafeMutablePointer = UnsafeMutablePointer(nil)! var count: UInt32 = 0 // malloc_zone_print(nil, 1) @@ -67,9 +67,9 @@ func registerMallocHooks() { assert(Int(count) <= proxies.count) for i in 0 ..< Int(count) { - let zoneArray = zones.advancedBy(i) - let name = malloc_get_zone_name(zoneArray.memory) - var zone = zoneArray.memory.memory + let zoneArray = zones.advanced(by: i) + let name = malloc_get_zone_name(zoneArray.pointee) + var zone = zoneArray.pointee.pointee //print(String.fromCString(name)) @@ -81,14 +81,14 @@ func registerMallocHooks() { if true { let addressPointer = UnsafeMutablePointer(zoneArray) - let res = vm_protect(mach_task_self_, addressPointer.memory, protectSize, 0, PROT_READ | PROT_WRITE) + let res = vm_protect(mach_task_self_, addressPointer.pointee, protectSize, 0, PROT_READ | PROT_WRITE) assert(res == 0) } - zoneArray.memory.memory = zone + zoneArray.pointee.pointee = zone if true { - let res = vm_protect(mach_task_self_, _zones.memory, protectSize, 0, PROT_READ) + let res = vm_protect(mach_task_self_, _zones.pointee, protectSize, 0, PROT_READ) assert(res == 0) } } @@ -118,21 +118,21 @@ let aliveAtTheEnd = numberOfObjects / 10 var objects: [AnyObject] = [] func fragmentMemory() { - objects = [AnyObject](repeatedValue: A(), count: aliveAtTheEnd) + objects = [AnyObject](repeating: A(), count: aliveAtTheEnd) for _ in 0 ..< numberOfObjects { objects[Int(arc4random_uniform(UInt32(aliveAtTheEnd)))] = arc4random_uniform(2) == 0 ? A() : B() } } -func approxValuePerIteration(total: Int) -> UInt64 { +func approxValuePerIteration(_ total: Int) -> UInt64 { return UInt64(round(Double(total) / Double(NumberOfIterations))) } -func approxValuePerIteration(total: UInt64) -> UInt64 { +func approxValuePerIteration(_ total: UInt64) -> UInt64 { return UInt64(round(Double(total) / Double(NumberOfIterations))) } -func measureTime(@noescape work: () -> ()) -> UInt64 { +func measureTime(@noescape _ work: () -> ()) -> UInt64 { var timebaseInfo: mach_timebase_info = mach_timebase_info() let res = mach_timebase_info(&timebaseInfo) @@ -147,7 +147,7 @@ func measureTime(@noescape work: () -> ()) -> UInt64 { return approxValuePerIteration(timeInNano) / 1000 } -func measureMemoryUsage(@noescape work: () -> ()) -> (bytesAllocated: UInt64, allocations: UInt64) { +func measureMemoryUsage(@noescape _ work: () -> ()) -> (bytesAllocated: UInt64, allocations: UInt64) { let (bytes, allocations) = getMemoryInfo() for _ in 0 ..< NumberOfIterations { work() @@ -159,7 +159,7 @@ func measureMemoryUsage(@noescape work: () -> ()) -> (bytesAllocated: UInt64, al var fragmentedMemory = false -func compareTwoImplementations(benchmarkTime benchmarkTime: Bool, benchmarkMemory: Bool, @noescape first: () -> (), @noescape second: () -> ()) { +func compareTwoImplementations(benchmarkTime: Bool, benchmarkMemory: Bool, @noescape first: () -> (), @noescape second: () -> ()) { if !fragmentedMemory { print("Fragmenting memory ...") fragmentMemory() diff --git a/Tests/RxCocoaTests/CLLocationManager+RxTests.swift b/Tests/RxCocoaTests/CLLocationManager+RxTests.swift index 5831af34..fff5fe94 100644 --- a/Tests/RxCocoaTests/CLLocationManager+RxTests.swift +++ b/Tests/RxCocoaTests/CLLocationManager+RxTests.swift @@ -222,7 +222,7 @@ extension CLLocationManagerTests { var completed = false var value: (CLRegionState, CLRegion)? - let targetValue = (CLRegionState.Inside, CLCircularRegion(center: CLLocationCoordinate2D(latitude: 90, longitude: 180), radius: 10, identifier: "unit tests in cloud")) + let targetValue = (CLRegionState.inside, CLCircularRegion(center: CLLocationCoordinate2D(latitude: 90, longitude: 180), radius: 10, identifier: "unit tests in cloud")) autoreleasepool { let manager = CLLocationManager() @@ -233,7 +233,7 @@ extension CLLocationManagerTests { completed = true }) - manager.delegate!.locationManager!(manager, didDetermineState: targetValue.0, forRegion: targetValue.1) + manager.delegate!.locationManager!(manager, didDetermineState: targetValue.0, for: targetValue.1) } XCTAssertEqual(value?.0, targetValue.0) @@ -258,7 +258,7 @@ extension CLLocationManagerTests { completed = true }) - manager.delegate!.locationManager!(manager, monitoringDidFailForRegion: targetRegion, withError: testError) + manager.delegate!.locationManager!(manager, monitoringDidFailFor: targetRegion, withError: testError) } XCTAssertEqual(targetRegion, region) @@ -283,7 +283,7 @@ extension CLLocationManagerTests { completed = true }) - manager.delegate!.locationManager!(manager, monitoringDidFailForRegion: targetRegion, withError: testError) + manager.delegate!.locationManager!(manager, monitoringDidFailFor: targetRegion, withError: testError) } XCTAssertEqual(targetRegion, region) @@ -306,7 +306,7 @@ extension CLLocationManagerTests { completed = true }) - manager.delegate!.locationManager!(manager, didStartMonitoringForRegion: targetValue) + manager.delegate!.locationManager!(manager, didStartMonitoringFor: targetValue) } XCTAssertEqual(value, targetValue) @@ -322,7 +322,7 @@ extension CLLocationManagerTests { let targetValue = ( [CLBeacon()], - CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "68753A44-4D6F-1226-9C60-0050E4C00067")!, identifier: "1231231") + CLBeaconRegion(proximityUUID: UUID(uuidString: "68753A44-4D6F-1226-9C60-0050E4C00067")!, identifier: "1231231") ) autoreleasepool { @@ -334,7 +334,7 @@ extension CLLocationManagerTests { completed = true }) - manager.delegate!.locationManager!(manager, didRangeBeacons: targetValue.0, inRegion: targetValue.1) + manager.delegate!.locationManager!(manager, didRangeBeacons: targetValue.0, in: targetValue.1) } XCTAssertEqual(value!.0, targetValue.0) @@ -347,7 +347,7 @@ extension CLLocationManagerTests { var value: (CLBeaconRegion, NSError)? let targetValue = ( - CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "68753A44-4D6F-1226-9C60-0050E4C00067")!, identifier: "1231231"), + CLBeaconRegion(proximityUUID: UUID(uuidString: "68753A44-4D6F-1226-9C60-0050E4C00067")!, identifier: "1231231"), testError ) @@ -360,7 +360,7 @@ extension CLLocationManagerTests { completed = true }) - manager.delegate!.locationManager!(manager, rangingBeaconsDidFailForRegion: targetValue.0, withError: targetValue.1) + manager.delegate!.locationManager!(manager, rangingBeaconsDidFailFor: targetValue.0, withError: targetValue.1) } XCTAssertEqual(value!.0, targetValue.0) @@ -400,7 +400,7 @@ extension CLLocationManagerTests { #if os(tvOS) let targetAuthorizationStatus = CLAuthorizationStatus.AuthorizedAlways #elseif os(iOS) - let targetAuthorizationStatus = CLAuthorizationStatus.AuthorizedAlways + let targetAuthorizationStatus = CLAuthorizationStatus.authorizedAlways #else let targetAuthorizationStatus = CLAuthorizationStatus.Authorized #endif @@ -414,10 +414,10 @@ extension CLLocationManagerTests { completed = true }) - manager.delegate!.locationManager!(manager, didChangeAuthorizationStatus:targetAuthorizationStatus) + manager.delegate!.locationManager!(manager, didChangeAuthorization:targetAuthorizationStatus) } XCTAssertEqual(authorizationStatus, targetAuthorizationStatus) XCTAssertTrue(completed) } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/Control+RxTests+UIKit.swift b/Tests/RxCocoaTests/Control+RxTests+UIKit.swift index a617a633..aa144249 100644 --- a/Tests/RxCocoaTests/Control+RxTests+UIKit.swift +++ b/Tests/RxCocoaTests/Control+RxTests+UIKit.swift @@ -17,7 +17,7 @@ extension ControlTests { let disposable = Observable.just(true).subscribe(subject.rx_enabled) defer { disposable.dispose() } - XCTAssert(subject.enabled == true, "Expected enabled set to true") + XCTAssert(subject.isEnabled == true, "Expected enabled set to true") } func testSubscribeEnabledToFalse() { @@ -25,7 +25,7 @@ extension ControlTests { let disposable = Observable.just(false).subscribe(subject.rx_enabled) defer { disposable.dispose() } - XCTAssert(subject.enabled == false, "Expected enabled set to false") + XCTAssert(subject.isEnabled == false, "Expected enabled set to false") } func testSubscribedSelectedToTrue() { @@ -33,7 +33,7 @@ extension ControlTests { let disposable = Observable.just(true).subscribe(subject.rx_selected) defer { disposable.dispose() } - XCTAssert(subject.selected == true, "Expected selected set to true") + XCTAssert(subject.isSelected == true, "Expected selected set to true") } func testSubscribeSelectedToFalse() { @@ -41,7 +41,7 @@ extension ControlTests { let disposable = Observable.just(false).subscribe(subject.rx_selected) defer { disposable.dispose() } - XCTAssert(subject.selected == false, "Expected selected set to false") + XCTAssert(subject.isSelected == false, "Expected selected set to false") } } @@ -59,17 +59,17 @@ extension ControlTests { // UILabel extension ControlTests { func testLabel_HasWeakReference() { - let variable = Variable(nil) - ensureControlObserverHasWeakReference(UILabel(), { (label: UILabel) -> AnyObserver in label.rx_attributedText }, { variable.asObservable() }) + let variable = Variable(nil) + ensureControlObserverHasWeakReference(UILabel(), { (label: UILabel) -> AnyObserver in label.rx_attributedText }, { variable.asObservable() }) } func testLabel_NextElementsSetsValue() { let subject = UILabel() - let attributedTextSequence = Variable(nil) + let attributedTextSequence = Variable(nil) let disposable = attributedTextSequence.asObservable().bindTo(subject.rx_attributedText) defer { disposable.dispose() } - attributedTextSequence.value = NSAttributedString(string: "Hello!") + attributedTextSequence.value = AttributedString(string: "Hello!") XCTAssert(subject.attributedText == attributedTextSequence.value, "Expected attributedText to have been set") } } @@ -94,8 +94,8 @@ extension ControlTests { // UIControl extension ControlTests { func testControl_DelegateEventCompletesOnDealloc() { - let createView: () -> UIControl = { UIControl(frame: CGRectMake(0, 0, 1, 1)) } - ensureEventDeallocated(createView) { (view: UIControl) in view.rx_controlEvent(.AllEditingEvents) } + let createView: () -> UIControl = { UIControl(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } + ensureEventDeallocated(createView) { (view: UIControl) in view.rx_controlEvent(.allEditingEvents) } } } @@ -110,7 +110,7 @@ extension ControlTests { // UIScrollView extension ControlTests { func testScrollView_DelegateEventCompletesOnDealloc() { - let createView: () -> UIScrollView = { UIScrollView(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UIScrollView = { UIScrollView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensurePropertyDeallocated(createView, CGPoint(x: 1, y: 1)) { (view: UIScrollView) in view.rx_contentOffset } } } @@ -150,14 +150,14 @@ extension ControlTests { let subject = UIAlertAction() Observable.just(false).subscribe(subject.rx_enabled).dispose() - XCTAssertTrue(subject.enabled == false) + XCTAssertTrue(subject.isEnabled == false) } func testAlertAction_Disable() { let subject = UIAlertAction() Observable.just(true).subscribe(subject.rx_enabled).dispose() - XCTAssertTrue(subject.enabled == true) + XCTAssertTrue(subject.isEnabled == true) } } @@ -166,8 +166,8 @@ extension ControlTests { // UIDatePicker extension ControlTests { func testDatePicker_DelegateEventCompletesOnDealloc() { - let createView: () -> UIDatePicker = { UIDatePicker(frame: CGRectMake(0, 0, 1, 1)) } - ensurePropertyDeallocated(createView, NSDate()) { (view: UIDatePicker) in view.rx_date } + let createView: () -> UIDatePicker = { UIDatePicker(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } + ensurePropertyDeallocated(createView, Date()) { (view: UIDatePicker) in view.rx_date } } } @@ -175,7 +175,7 @@ extension ControlTests { // UISlider extension ControlTests { func testSlider_DelegateEventCompletesOnDealloc() { - let createView: () -> UISlider = { UISlider(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UISlider = { UISlider(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensurePropertyDeallocated(createView, 0.5) { (view: UISlider) in view.rx_value } } } @@ -183,7 +183,7 @@ extension ControlTests { // UIStepper extension ControlTests { func testStepper_DelegateEventCompletesOnDealloc() { - let createView: () -> UIStepper = { UIStepper(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UIStepper = { UIStepper(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensurePropertyDeallocated(createView, 1) { (view: UIStepper) in view.rx_value } } } @@ -191,7 +191,7 @@ extension ControlTests { // UISwitch extension ControlTests { func testSwitch_DelegateEventCompletesOnDealloc() { - let createView: () -> UISwitch = { UISwitch(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UISwitch = { UISwitch(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensurePropertyDeallocated(createView, true) { (view: UISwitch) in view.rx_value } } } @@ -199,7 +199,7 @@ extension ControlTests { // UIButton extension ControlTests { func testButton_tapDeallocates() { - let createView: () -> UIButton = { UIButton(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UIButton = { UIButton(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensureEventDeallocated(createView) { (view: UIButton) in view.rx_tap } } } diff --git a/Tests/RxCocoaTests/ControlEventTests.swift b/Tests/RxCocoaTests/ControlEventTests.swift index e0dc5433..3a017604 100644 --- a/Tests/RxCocoaTests/ControlEventTests.swift +++ b/Tests/RxCocoaTests/ControlEventTests.swift @@ -17,7 +17,7 @@ class ControlEventTests : RxTest { var observedOnMainThread = false - let expectSubscribeOffMainThread = expectationWithDescription("Did subscribe off main thread") + let expectSubscribeOffMainThread = expectation(withDescription: "Did subscribe off main thread") let controlProperty = ControlEvent(events: Observable.deferred { () -> Observable in XCTAssertTrue(isMainThread()) @@ -39,10 +39,10 @@ class ControlEventTests : RxTest { } } - waitForExpectationsWithTimeout(1.0) { error in + waitForExpectations(withTimeout: 1.0) { error in XCTAssertNil(error) } XCTAssertTrue(observedOnMainThread) } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/ControlPropertyTests.swift b/Tests/RxCocoaTests/ControlPropertyTests.swift index 5c5a2521..010c24aa 100644 --- a/Tests/RxCocoaTests/ControlPropertyTests.swift +++ b/Tests/RxCocoaTests/ControlPropertyTests.swift @@ -17,7 +17,7 @@ class ControlPropertyTests : RxTest { var observedOnMainThread = false - let expectSubscribeOffMainThread = expectationWithDescription("Did subscribe off main thread") + let expectSubscribeOffMainThread = expectation(withDescription: "Did subscribe off main thread") let controlProperty = ControlProperty(values: Observable.deferred { () -> Observable in XCTAssertTrue(isMainThread()) @@ -41,10 +41,10 @@ class ControlPropertyTests : RxTest { } } - waitForExpectationsWithTimeout(1.0) { error in + waitForExpectations(withTimeout: 1.0) { error in XCTAssertNil(error) } XCTAssertTrue(observedOnMainThread) } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/DelegateProxyTest+UIKit.swift b/Tests/RxCocoaTests/DelegateProxyTest+UIKit.swift index e7ab36fd..043c07d1 100644 --- a/Tests/RxCocoaTests/DelegateProxyTest+UIKit.swift +++ b/Tests/RxCocoaTests/DelegateProxyTest+UIKit.swift @@ -17,45 +17,45 @@ import XCTest @objc protocol UITableViewDelegateSubclass : UITableViewDelegate , TestDelegateProtocol { - optional func testEventHappened(value: Int) + @objc optional func testEventHappened(_ value: Int) } @objc protocol UITableViewDataSourceSubclass : UITableViewDataSource , TestDelegateProtocol { - optional func testEventHappened(value: Int) + @objc optional func testEventHappened(_ value: Int) } @objc protocol UICollectionViewDelegateSubclass : UICollectionViewDelegate , TestDelegateProtocol { - optional func testEventHappened(value: Int) + @objc optional func testEventHappened(_ value: Int) } @objc protocol UICollectionViewDataSourceSubclass : UICollectionViewDataSource , TestDelegateProtocol { - optional func testEventHappened(value: Int) + @objc optional func testEventHappened(_ value: Int) } @objc protocol UIScrollViewDelegateSubclass : UIScrollViewDelegate , TestDelegateProtocol { - optional func testEventHappened(value: Int) + @objc optional func testEventHappened(_ value: Int) } #if os(iOS) @objc protocol UISearchBarDelegateSubclass : UISearchBarDelegate , TestDelegateProtocol { - optional func testEventHappened(value: Int) + @objc optional func testEventHappened(_ value: Int) } #endif @objc protocol UITextViewDelegateSubclass : UITextViewDelegate , TestDelegateProtocol { - optional func testEventHappened(value: Int) + @objc optional func testEventHappened(_ value: Int) } #if os(iOS) extension RxSearchControllerDelegateProxy: TestDelegateProtocol { @@ -153,17 +153,17 @@ class UITableViewSubclass1 return ExtendTableViewDelegateProxy(parentObject: self) } - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (delegate as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_delegate .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxScrollViewDelegateProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) } } @@ -186,17 +186,17 @@ class UITableViewSubclass2 return ExtendTableViewDataSourceProxy(parentObject: self) } - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (dataSource as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_dataSource .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxTableViewDataSourceProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) } } @@ -219,17 +219,17 @@ class UICollectionViewSubclass1 return ExtendCollectionViewDelegateProxy(parentObject: self) } - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (delegate as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_delegate .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxScrollViewDelegateProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) } } @@ -252,17 +252,17 @@ class UICollectionViewSubclass2 return ExtendCollectionViewDataSourceProxy(parentObject: self) } - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (dataSource as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_dataSource .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxCollectionViewDataSourceProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) } } @@ -285,17 +285,17 @@ class UIScrollViewSubclass return ExtendScrollViewDelegateProxy(parentObject: self) } - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (delegate as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_delegate .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxScrollViewDelegateProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) } } @@ -320,17 +320,17 @@ class UISearchBarSubclass return ExtendSearchBarDelegateProxy(parentObject: self) } - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (delegate as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_delegate .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxSearchBarDelegateProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) } } @@ -354,17 +354,17 @@ class UITextViewSubclass return ExtendTextViewDelegateProxy(parentObject: self) } - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (delegate as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_delegate .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxScrollViewDelegateProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) } } @@ -373,17 +373,17 @@ class UISearchControllerSubclass : UISearchController , TestDelegateControl { - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (delegate as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_delegate .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxSearchControllerDelegateProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) } } @@ -392,17 +392,17 @@ class UIPickerViewSubclass : UIPickerView , TestDelegateControl { - func doThatTest(value: Int) { + func doThatTest(_ value: Int) { (delegate as! TestDelegateProtocol).testEventHappened?(value) } var test: Observable { return rx_delegate .observe(#selector(TestDelegateProtocol.testEventHappened(_:))) - .map { a in (a[0] as! NSNumber).integerValue } + .map { a in (a[0] as! NSNumber).intValue } } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable { + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable { return RxPickerViewDelegateProxy.installForwardDelegate(testDelegate, retainDelegate: false, onProxyForObject: self) diff --git a/Tests/RxCocoaTests/DelegateProxyTest.swift b/Tests/RxCocoaTests/DelegateProxyTest.swift index b1abda06..a0162f93 100644 --- a/Tests/RxCocoaTests/DelegateProxyTest.swift +++ b/Tests/RxCocoaTests/DelegateProxyTest.swift @@ -17,7 +17,7 @@ import UIKit // MARK: Protocols @objc protocol TestDelegateProtocol { - optional func testEventHappened(value: Int) + @objc optional func testEventHappened(_ value: Int) } @objc class MockTestDelegateProtocol @@ -26,17 +26,17 @@ import UIKit { var numbers = [Int]() - func testEventHappened(value: Int) { + func testEventHappened(_ value: Int) { numbers.append(value) } } protocol TestDelegateControl: NSObjectProtocol { - func doThatTest(value: Int) + func doThatTest(_ value: Int) var test: Observable { get } - func setMineForwardDelegate(testDelegate: TestDelegateProtocol) -> Disposable + func setMineForwardDelegate(_ testDelegate: TestDelegateProtocol) -> Disposable } // MARK: Tests @@ -130,22 +130,22 @@ class DelegateProxyTest : RxTest { view.delegate = mock - XCTAssertTrue(!mock.respondsToSelector(NSSelectorFromString("threeDView(threeDView:didGetXXX:"))) + XCTAssertTrue(!mock.responds(to: NSSelectorFromString("threeDView(threeDView:didGetXXX:"))) - let sentArgument = NSIndexPath(index: 0) + let sentArgument = IndexPath(index: 0) - var receivedArgument: NSIndexPath? = nil + var receivedArgument: IndexPath? = nil let d = view.rx_proxy.observe(#selector(ThreeDSectionedViewProtocol.threeDView(_:didGetXXX:))) .subscribeNext { n in - let ip = n[1] as! NSIndexPath + let ip = n[1] as! IndexPath receivedArgument = ip } defer { d.dispose() } - XCTAssertTrue(receivedArgument === nil) + XCTAssertTrue(receivedArgument! === nil) view.delegate?.threeDView?(view, didGetXXX: sentArgument) XCTAssertTrue(receivedArgument === sentArgument) @@ -161,9 +161,9 @@ class DelegateProxyTest : RxTest { var completed = false autoreleasepool { - XCTAssertTrue(!mock.respondsToSelector(NSSelectorFromString("threeDView:threeDView:didGetXXX:"))) + XCTAssertTrue(!mock.responds(to: NSSelectorFromString("threeDView:threeDView:didGetXXX:"))) - let sentArgument = NSIndexPath(index: 0) + let sentArgument = IndexPath(index: 0) _ = view .rx_proxy @@ -192,7 +192,7 @@ extension DelegateProxyTest { // MARK: Testing extensions extension DelegateProxyTest { - func performDelegateTest(@autoclosure createControl: () -> Control) { + func performDelegateTest(@autoclosure _ createControl: () -> Control) { var control: TestDelegateControl! autoreleasepool { @@ -251,14 +251,14 @@ class Food: NSObject { } @objc protocol ThreeDSectionedViewProtocol { - func threeDView(threeDView: ThreeDSectionedView, listenToMeee: NSIndexPath) - func threeDView(threeDView: ThreeDSectionedView, feedMe: NSIndexPath) - func threeDView(threeDView: ThreeDSectionedView, howTallAmI: NSIndexPath) -> CGFloat + func threeDView(_ threeDView: ThreeDSectionedView, listenToMeee: IndexPath) + func threeDView(_ threeDView: ThreeDSectionedView, feedMe: IndexPath) + func threeDView(_ threeDView: ThreeDSectionedView, howTallAmI: IndexPath) -> CGFloat - optional func threeDView(threeDView: ThreeDSectionedView, didGetXXX: NSIndexPath) - optional func threeDView(threeDView: ThreeDSectionedView, didLearnSomething: String) - optional func threeDView(threeDView: ThreeDSectionedView, didFallAsleep: NSIndexPath) - optional func threeDView(threeDView: ThreeDSectionedView, getMeSomeFood: NSIndexPath) -> Food + @objc optional func threeDView(_ threeDView: ThreeDSectionedView, didGetXXX: IndexPath) + @objc optional func threeDView(_ threeDView: ThreeDSectionedView, didLearnSomething: String) + @objc optional func threeDView(_ threeDView: ThreeDSectionedView, didFallAsleep: IndexPath) + @objc optional func threeDView(_ threeDView: ThreeDSectionedView, getMeSomeFood: IndexPath) -> Food } class ThreeDSectionedView: NSObject { @@ -278,26 +278,26 @@ class ThreeDSectionedViewDelegateProxy : DelegateProxy // delegate - func threeDView(threeDView: ThreeDSectionedView, listenToMeee: NSIndexPath) { + func threeDView(_ threeDView: ThreeDSectionedView, listenToMeee: IndexPath) { } - func threeDView(threeDView: ThreeDSectionedView, feedMe: NSIndexPath) { + func threeDView(_ threeDView: ThreeDSectionedView, feedMe: IndexPath) { } - func threeDView(threeDView: ThreeDSectionedView, howTallAmI: NSIndexPath) -> CGFloat { + func threeDView(_ threeDView: ThreeDSectionedView, howTallAmI: IndexPath) -> CGFloat { return 1.1 } // integration - class func setCurrentDelegate(delegate: AnyObject?, toObject object: AnyObject) { + class func setCurrentDelegate(_ delegate: AnyObject?, toObject object: AnyObject) { let view = object as! ThreeDSectionedView view.delegate = delegate as? ThreeDSectionedViewProtocol } - class func currentDelegateFor(object: AnyObject) -> AnyObject? { + class func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let view = object as! ThreeDSectionedView return view.delegate } @@ -315,15 +315,15 @@ class MockThreeDSectionedViewProtocol : NSObject, ThreeDSectionedViewProtocol { var messages: [String] = [] - func threeDView(threeDView: ThreeDSectionedView, listenToMeee: NSIndexPath) { + func threeDView(_ threeDView: ThreeDSectionedView, listenToMeee: IndexPath) { messages.append("listenToMeee") } - func threeDView(threeDView: ThreeDSectionedView, feedMe: NSIndexPath) { + func threeDView(_ threeDView: ThreeDSectionedView, feedMe: IndexPath) { messages.append("feedMe") } - func threeDView(threeDView: ThreeDSectionedView, howTallAmI: NSIndexPath) -> CGFloat { + func threeDView(_ threeDView: ThreeDSectionedView, howTallAmI: IndexPath) -> CGFloat { messages.append("howTallAmI") return 3 } @@ -332,12 +332,12 @@ class MockThreeDSectionedViewProtocol : NSObject, ThreeDSectionedViewProtocol { messages.append("didGetXXX") }*/ - func threeDView(threeDView: ThreeDSectionedView, didLearnSomething: String) { + func threeDView(_ threeDView: ThreeDSectionedView, didLearnSomething: String) { messages.append("didLearnSomething") } //optional func threeDView(threeDView: ThreeDSectionedView, didFallAsleep: NSIndexPath) - func threeDView(threeDView: ThreeDSectionedView, getMeSomeFood: NSIndexPath) -> Food { + func threeDView(_ threeDView: ThreeDSectionedView, getMeSomeFood: IndexPath) -> Food { messages.append("getMeSomeFood") return Food() } @@ -357,19 +357,19 @@ extension MockTestDelegateProtocol , UITableViewDataSource , UITableViewDelegate { - func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { fatalError() } - func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { fatalError() } - func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { fatalError() } - func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { fatalError() } } diff --git a/Tests/RxCocoaTests/Driver+Test.swift b/Tests/RxCocoaTests/Driver+Test.swift index 3368e70a..54f26c78 100644 --- a/Tests/RxCocoaTests/Driver+Test.swift +++ b/Tests/RxCocoaTests/Driver+Test.swift @@ -13,7 +13,7 @@ import XCTest import RxTests class DriverTest : RxTest { - var backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + var backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .default) override func tearDown() { super.tearDown() @@ -27,11 +27,11 @@ class DriverTest : RxTest { // * it can't error out - it needs to have catch somewhere extension DriverTest { - func subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver: Driver, subscribedOnBackground: () -> ()) -> [R] { + func subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(_ driver: Driver, subscribedOnBackground: () -> ()) -> [R] { var firstElements = [R]() var secondElements = [R]() - let subscribeFinished = self.expectationWithDescription("subscribeFinished") + let subscribeFinished = self.expectation(withDescription: "subscribeFinished") var expectation1: XCTestExpectation! var expectation2: XCTestExpectation! @@ -43,11 +43,11 @@ extension DriverTest { XCTAssertTrue(isMainThread()) } switch e { - case .Next(let element): + case .next(let element): firstElements.append(element) case .Error(let error): XCTFail("Error passed \(error)") - case .Completed: + case .completed: expectation1.fulfill() } } @@ -59,11 +59,11 @@ extension DriverTest { XCTAssertTrue(isMainThread()) } switch e { - case .Next(let element): + case .next(let element): secondElements.append(element) case .Error(let error): XCTFail("Error passed \(error)") - case .Completed: + case .completed: expectation2.fulfill() } } @@ -81,16 +81,16 @@ extension DriverTest { return NopDisposable.instance } - waitForExpectationsWithTimeout(1.0) { error in + waitForExpectations(withTimeout: 1.0) { error in XCTAssertTrue(error == nil) } - expectation1 = self.expectationWithDescription("finished1") - expectation2 = self.expectationWithDescription("finished2") + expectation1 = self.expectation(withDescription: "finished1") + expectation2 = self.expectation(withDescription: "finished2") subscribedOnBackground() - waitForExpectationsWithTimeout(1.0) { error in + waitForExpectations(withTimeout: 1.0) { error in XCTAssertTrue(error == nil) } @@ -271,8 +271,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -288,8 +288,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -307,8 +307,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -327,8 +327,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -350,8 +350,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -373,8 +373,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -397,22 +397,22 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(hotObservable1.asDriver(onErrorJustReturn: -2))) + hotObservable.on(.next(hotObservable1.asDriver(onErrorJustReturn: -2))) - hotObservable1.on(.Next(1)) - hotObservable1.on(.Next(2)) + hotObservable1.on(.next(1)) + hotObservable1.on(.next(2)) hotObservable1.on(.Error(testError)) - hotObservable.on(.Next(hotObservable2.asDriver(onErrorJustReturn: -3))) + hotObservable.on(.next(hotObservable2.asDriver(onErrorJustReturn: -3))) - hotObservable2.on(.Next(10)) - hotObservable2.on(.Next(11)) + hotObservable2.on(.next(10)) + hotObservable2.on(.next(11)) hotObservable2.on(.Error(testError)) hotObservable.on(.Error(testError)) - hotObservable1.on(.Completed) - hotObservable.on(.Completed) + hotObservable1.on(.completed) + hotObservable.on(.completed) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) } @@ -443,22 +443,22 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(0)) + hotObservable.on(.next(0)) - hotObservable1.on(.Next(1)) - hotObservable1.on(.Next(2)) + hotObservable1.on(.next(1)) + hotObservable1.on(.next(2)) hotObservable1.on(.Error(testError)) - hotObservable.on(.Next(1)) + hotObservable.on(.next(1)) - hotObservable2.on(.Next(10)) - hotObservable2.on(.Next(11)) + hotObservable2.on(.next(10)) + hotObservable2.on(.next(11)) hotObservable2.on(.Error(testError)) hotObservable.on(.Error(testError)) - errorHotObservable.on(.Completed) - hotObservable.on(.Completed) + errorHotObservable.on(.completed) + hotObservable.on(.completed) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) } @@ -489,21 +489,21 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(0)) - hotObservable.on(.Next(1)) + hotObservable.on(.next(0)) + hotObservable.on(.next(1)) - hotObservable1.on(.Next(1)) - hotObservable1.on(.Next(2)) + hotObservable1.on(.next(1)) + hotObservable1.on(.next(2)) hotObservable1.on(.Error(testError)) - hotObservable2.on(.Next(10)) - hotObservable2.on(.Next(11)) + hotObservable2.on(.next(10)) + hotObservable2.on(.next(11)) hotObservable2.on(.Error(testError)) hotObservable.on(.Error(testError)) - errorHotObservable.on(.Completed) - hotObservable.on(.Completed) + errorHotObservable.on(.completed) + hotObservable.on(.completed) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) } @@ -530,15 +530,15 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) } XCTAssertEqual(results, [1, 2, -1]) - let expectedEvents = [.Next(1), .Next(2), .Next(-1), .Completed] as [Event] + let expectedEvents = [.next(1), .next(2), .next(-1), .completed] as [Event] XCTAssertEqual(events, expectedEvents) } @@ -556,8 +556,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -580,8 +580,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -602,9 +602,9 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -621,9 +621,9 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -640,9 +640,9 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -660,9 +660,9 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -685,8 +685,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -709,8 +709,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -729,8 +729,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -764,8 +764,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -788,8 +788,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable.subscriptions == [SubscribedToHotObservable]) - hotObservable.on(.Next(1)) - hotObservable.on(.Next(2)) + hotObservable.on(.next(1)) + hotObservable.on(.next(2)) hotObservable.on(.Error(testError)) XCTAssertTrue(hotObservable.subscriptions == [UnsunscribedFromHotObservable]) @@ -811,15 +811,15 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable1.on(.Next(2)) + hotObservable1.on(.next(1)) + hotObservable1.on(.next(2)) hotObservable1.on(.Error(testError)) XCTAssertTrue(hotObservable1.subscriptions == [UnsunscribedFromHotObservable]) XCTAssertTrue(hotObservable2.subscriptions == [SubscribedToHotObservable]) - hotObservable2.on(.Next(4)) - hotObservable2.on(.Next(5)) + hotObservable2.on(.next(4)) + hotObservable2.on(.next(5)) hotObservable2.on(.Error(testError)) XCTAssertTrue(hotObservable2.subscriptions == [UnsunscribedFromHotObservable]) @@ -837,15 +837,15 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable1.on(.Next(2)) + hotObservable1.on(.next(1)) + hotObservable1.on(.next(2)) hotObservable1.on(.Error(testError)) XCTAssertTrue(hotObservable1.subscriptions == [UnsunscribedFromHotObservable]) XCTAssertTrue(hotObservable2.subscriptions == [SubscribedToHotObservable]) - hotObservable2.on(.Next(4)) - hotObservable2.on(.Next(5)) + hotObservable2.on(.next(4)) + hotObservable2.on(.next(5)) hotObservable2.on(.Error(testError)) XCTAssertTrue(hotObservable2.subscriptions == [UnsunscribedFromHotObservable]) @@ -867,11 +867,11 @@ extension DriverTest { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) XCTAssertTrue(hotObservable2.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable2.on(.Next(4)) + hotObservable1.on(.next(1)) + hotObservable2.on(.next(4)) - hotObservable1.on(.Next(2)) - hotObservable2.on(.Next(5)) + hotObservable1.on(.next(2)) + hotObservable2.on(.next(5)) hotObservable1.on(.Error(testError)) hotObservable2.on(.Error(testError)) @@ -893,11 +893,11 @@ extension DriverTest { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) XCTAssertTrue(hotObservable2.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable2.on(.Next(4)) + hotObservable1.on(.next(1)) + hotObservable2.on(.next(4)) - hotObservable1.on(.Next(2)) - hotObservable2.on(.Next(5)) + hotObservable1.on(.next(2)) + hotObservable2.on(.next(5)) hotObservable1.on(.Error(testError)) hotObservable2.on(.Error(testError)) @@ -922,11 +922,11 @@ extension DriverTest { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) XCTAssertTrue(hotObservable2.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable2.on(.Next(4)) + hotObservable1.on(.next(1)) + hotObservable2.on(.next(4)) - hotObservable1.on(.Next(2)) - hotObservable2.on(.Next(5)) + hotObservable1.on(.next(2)) + hotObservable2.on(.next(5)) hotObservable1.on(.Error(testError)) hotObservable2.on(.Error(testError)) @@ -948,11 +948,11 @@ extension DriverTest { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) XCTAssertTrue(hotObservable2.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable2.on(.Next(4)) + hotObservable1.on(.next(1)) + hotObservable2.on(.next(4)) - hotObservable1.on(.Next(2)) - hotObservable2.on(.Next(5)) + hotObservable1.on(.next(2)) + hotObservable2.on(.next(5)) hotObservable1.on(.Error(testError)) hotObservable2.on(.Error(testError)) @@ -977,11 +977,11 @@ extension DriverTest { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) XCTAssertTrue(hotObservable2.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable2.on(.Next(4)) + hotObservable1.on(.next(1)) + hotObservable2.on(.next(4)) - hotObservable1.on(.Next(2)) - hotObservable2.on(.Next(5)) + hotObservable1.on(.next(2)) + hotObservable2.on(.next(5)) hotObservable1.on(.Error(testError)) hotObservable2.on(.Error(testError)) @@ -1003,11 +1003,11 @@ extension DriverTest { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) XCTAssertTrue(hotObservable2.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable2.on(.Next(4)) + hotObservable1.on(.next(1)) + hotObservable2.on(.next(4)) - hotObservable1.on(.Next(2)) - hotObservable2.on(.Next(5)) + hotObservable1.on(.next(2)) + hotObservable2.on(.next(5)) hotObservable1.on(.Error(testError)) hotObservable2.on(.Error(testError)) @@ -1031,8 +1031,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable1.on(.Next(2)) + hotObservable1.on(.next(1)) + hotObservable1.on(.next(2)) hotObservable1.on(.Error(testError)) @@ -1053,8 +1053,8 @@ extension DriverTest { let results = subscribeTwiceOnBackgroundSchedulerAndOnlyOneSubscription(driver) { XCTAssertTrue(hotObservable1.subscriptions == [SubscribedToHotObservable]) - hotObservable1.on(.Next(1)) - hotObservable1.on(.Next(2)) + hotObservable1.on(.next(1)) + hotObservable1.on(.next(2)) hotObservable1.on(.Error(testError)) @@ -1145,4 +1145,4 @@ extension DriverTest { next(225, 1) ]) } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/KVOObservableTests.swift b/Tests/RxCocoaTests/KVOObservableTests.swift index efac2566..55d5cb91 100644 --- a/Tests/RxCocoaTests/KVOObservableTests.swift +++ b/Tests/RxCocoaTests/KVOObservableTests.swift @@ -29,10 +29,10 @@ class Parent : NSObject { dynamic var val: String = "" - init(callback: String? -> Void) { + init(callback: (String?) -> Void) { super.init() - self.rx_observe(String.self, "val", options: [.Initial, .New], retainSelf: false) + self.rx_observe(String.self, "val", options: [.initial, .new], retainSelf: false) .subscribeNext(callback) .addDisposableTo(disposeBag) } @@ -45,9 +45,9 @@ class Parent : NSObject { class Child : NSObject { let disposeBag = DisposeBag() - init(parent: ParentWithChild, callback: String? -> Void) { + init(parent: ParentWithChild, callback: (String?) -> Void) { super.init() - parent.rx_observe(String.self, "val", options: [.Initial, .New], retainSelf: false) + parent.rx_observe(String.self, "val", options: [.initial, .new], retainSelf: false) .subscribeNext(callback) .addDisposableTo(disposeBag) } @@ -62,7 +62,7 @@ class ParentWithChild : NSObject { var child: Child? = nil - init(callback: String? -> Void) { + init(callback: (String?) -> Void) { super.init() child = Child(parent: self, callback: callback) } @@ -70,33 +70,33 @@ class ParentWithChild : NSObject { @objc enum IntEnum: Int { typealias RawValue = Int - case One - case Two + case one + case two } @objc enum UIntEnum: UInt { - case One - case Two + case one + case two } @objc enum Int32Enum: Int32 { - case One - case Two + case one + case two } @objc enum UInt32Enum: UInt32 { - case One - case Two + case one + case two } @objc enum Int64Enum: Int64 { - case One - case Two + case one + case two } @objc enum UInt64Enum: UInt64 { - case One - case Two + case one + case two } class HasStrongProperty : NSObject { @@ -104,12 +104,12 @@ class HasStrongProperty : NSObject { dynamic var frame: CGRect dynamic var point: CGPoint dynamic var size: CGSize - dynamic var intEnum: IntEnum = .One - dynamic var uintEnum: UIntEnum = .One - dynamic var int32Enum: Int32Enum = .One - dynamic var uint32Enum: UInt32Enum = .One - dynamic var int64Enum: Int64Enum = .One - dynamic var uint64Enum: UInt64Enum = .One + dynamic var intEnum: IntEnum = .one + dynamic var uintEnum: UIntEnum = .one + dynamic var int32Enum: Int32Enum = .one + dynamic var uint32Enum: UInt32Enum = .one + dynamic var int64Enum: Int64Enum = .one + dynamic var uint64Enum: UInt64Enum = .one dynamic var integer: Int dynamic var uinteger: UInt @@ -117,7 +117,7 @@ class HasStrongProperty : NSObject { override init() { self.frame = CGRect(x: 0, y: 0, width: 100, height: 100) self.point = CGPoint(x: 3, y: 5) - self.size = CGSizeMake(1, 2) + self.size = CGSize(width: 1, height: 2) self.integer = 1 self.uinteger = 1 @@ -140,7 +140,7 @@ extension KVOObservableTests { func test_New() { let testClass = TestClass() - let os = testClass.rx_observe(String.self, "pr", options: .New) + let os = testClass.rx_observe(String.self, "pr", options: .new) var latest: String? @@ -174,7 +174,7 @@ extension KVOObservableTests { func test_New_And_Initial() { let testClass = TestClass() - let os = testClass.rx_observe(String.self, "pr", options: NSKeyValueObservingOptions(rawValue: NSKeyValueObservingOptions.Initial.rawValue | NSKeyValueObservingOptions.New.rawValue)) + let os = testClass.rx_observe(String.self, "pr", options: NSKeyValueObservingOptions(rawValue: NSKeyValueObservingOptions.initial.rawValue | NSKeyValueObservingOptions.new.rawValue)) var latest: String? @@ -652,7 +652,7 @@ extension KVOObservableTests { XCTAssertTrue(latest == nil) _ = root - .rx_observeWeakly(String.self, "property", options: .New) + .rx_observeWeakly(String.self, "property", options: .new) .subscribeNext { n in latest = n } @@ -733,7 +733,7 @@ extension KVOObservableTests { XCTAssertTrue(latest == nil) - root.size = CGSizeMake(56, 1) + root.size = CGSize(width: 56, height: 1) XCTAssertTrue(latest == nil) @@ -769,9 +769,9 @@ extension KVOObservableTests { XCTAssertTrue(latest == root.frame) - root.frame = CGRectMake(-2, 0, 0, 1) + root.frame = CGRect(x: -2, y: 0, width: 0, height: 1) - XCTAssertTrue(latest == CGRectMake(-2, 0, 0, 1)) + XCTAssertTrue(latest == CGRect(x: -2, y: 0, width: 0, height: 1)) var rootDeallocated = false @@ -783,7 +783,7 @@ extension KVOObservableTests { root = nil - XCTAssertTrue(latest == CGRectMake(-2, 0, 0, 1)) + XCTAssertTrue(latest == CGRect(x: -2, y: 0, width: 0, height: 1)) XCTAssertTrue(!rootDeallocated) } @@ -805,9 +805,9 @@ extension KVOObservableTests { XCTAssertTrue(latest == root.size) - root.size = CGSizeMake(56, 1) + root.size = CGSize(width: 56, height: 1) - XCTAssertTrue(latest == CGSizeMake(56, 1)) + XCTAssertTrue(latest == CGSize(width: 56, height: 1)) var rootDeallocated = false @@ -819,7 +819,7 @@ extension KVOObservableTests { root = nil - XCTAssertTrue(latest == CGSizeMake(56, 1)) + XCTAssertTrue(latest == CGSize(width: 56, height: 1)) XCTAssertTrue(!rootDeallocated) } @@ -873,9 +873,9 @@ extension KVOObservableTests { } XCTAssertTrue(latest == root.frame) - root.frame = CGRectMake(-2, 0, 0, 1) + root.frame = CGRect(x: -2, y: 0, width: 0, height: 1) - XCTAssertTrue(latest == CGRectMake(-2, 0, 0, 1)) + XCTAssertTrue(latest == CGRect(x: -2, y: 0, width: 0, height: 1)) var rootDeallocated = false @@ -905,9 +905,9 @@ extension KVOObservableTests { } XCTAssertTrue(latest == root.size) - root.size = CGSizeMake(56, 1) + root.size = CGSize(width: 56, height: 1) - XCTAssertTrue(latest == CGSizeMake(56, 1)) + XCTAssertTrue(latest == CGSize(width: 56, height: 1)) var rootDeallocated = false @@ -966,7 +966,7 @@ extension KVOObservableTests { _ = root .rx_observeWeakly(NSNumber.self, "integer") .subscribeNext { n in - latest = n?.integerValue + latest = n?.intValue } XCTAssertTrue(latest == root.integer) @@ -1198,11 +1198,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.intEnum = .Two + root.intEnum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1214,7 +1214,7 @@ extension KVOObservableTests { root = nil - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) XCTAssertTrue(!rootDeallocated) disposable.dispose() @@ -1231,11 +1231,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.int32Enum = .Two + root.int32Enum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1247,7 +1247,7 @@ extension KVOObservableTests { root = nil - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) XCTAssertTrue(!rootDeallocated) disposable.dispose() @@ -1264,11 +1264,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.int64Enum = .Two + root.int64Enum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1280,7 +1280,7 @@ extension KVOObservableTests { root = nil - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) XCTAssertTrue(!rootDeallocated) disposable.dispose() @@ -1298,11 +1298,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.uintEnum = .Two + root.uintEnum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1314,7 +1314,7 @@ extension KVOObservableTests { root = nil - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) XCTAssertTrue(!rootDeallocated) disposable.dispose() @@ -1331,11 +1331,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.uint32Enum = .Two + root.uint32Enum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1347,7 +1347,7 @@ extension KVOObservableTests { root = nil - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) XCTAssertTrue(!rootDeallocated) disposable.dispose() @@ -1364,11 +1364,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.uint64Enum = .Two + root.uint64Enum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1380,7 +1380,7 @@ extension KVOObservableTests { root = nil - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) XCTAssertTrue(!rootDeallocated) disposable.dispose() @@ -1401,11 +1401,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.intEnum = .Two + root.intEnum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1433,11 +1433,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.int32Enum = .Two + root.int32Enum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1465,11 +1465,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.int64Enum = .Two + root.int64Enum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1497,11 +1497,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.uintEnum = .Two + root.uintEnum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1529,11 +1529,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.uint32Enum = .Two + root.uint32Enum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false @@ -1561,11 +1561,11 @@ extension KVOObservableTests { .subscribeNext { n in latest = n } - XCTAssertTrue(latest == .One) + XCTAssertTrue(latest == .one) - root.uint64Enum = .Two + root.uint64Enum = .two - XCTAssertTrue(latest == .Two) + XCTAssertTrue(latest == .two) var rootDeallocated = false diff --git a/Tests/RxCocoaTests/NSLayoutConstraint+RxTests.swift b/Tests/RxCocoaTests/NSLayoutConstraint+RxTests.swift index 2e0687c3..82a3aa5f 100644 --- a/Tests/RxCocoaTests/NSLayoutConstraint+RxTests.swift +++ b/Tests/RxCocoaTests/NSLayoutConstraint+RxTests.swift @@ -26,7 +26,7 @@ extension NSLayoutConstraintTest { func testConstant_0() { let subject = View(frame: CGRect.zero) let subject2 = View(frame: CGRect.zero) - let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: subject2, attribute: NSLayoutAttribute.Top, multiplier: 0.5, constant: 0.5) + let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: subject2, attribute: NSLayoutAttribute.top, multiplier: 0.5, constant: 0.5) Observable.just(0).subscribe(constraint.rx_constant).dispose() XCTAssertTrue(constraint.constant == 0.0) @@ -35,7 +35,7 @@ extension NSLayoutConstraintTest { func testConstant_1() { let subject = View(frame: CGRect.zero) let subject2 = View(frame: CGRect.zero) - let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: subject2, attribute: NSLayoutAttribute.Top, multiplier: 0.5, constant: 0.5) + let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: subject2, attribute: NSLayoutAttribute.top, multiplier: 0.5, constant: 0.5) Observable.just(1.0).subscribe(constraint.rx_constant).dispose() XCTAssertTrue(constraint.constant == 1.0) @@ -50,10 +50,10 @@ extension NSLayoutConstraintTest { let subject2 = View(frame: CGRect.zero) parent.addSubview(subject) parent.addSubview(subject2) - let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: subject2, attribute: NSLayoutAttribute.Top, multiplier: 0.5, constant: 0.5) + let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: subject2, attribute: NSLayoutAttribute.top, multiplier: 0.5, constant: 0.5) Observable.just(true).subscribe(constraint.rx_active).dispose() - XCTAssertTrue(constraint.active == true) + XCTAssertTrue(constraint.isActive == true) } func testActive_False() { @@ -62,9 +62,9 @@ extension NSLayoutConstraintTest { let subject2 = View(frame: CGRect.zero) parent.addSubview(subject) parent.addSubview(subject2) - let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: subject2, attribute: NSLayoutAttribute.Top, multiplier: 0.5, constant: 0.5) + let constraint = NSLayoutConstraint(item: subject, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: subject2, attribute: NSLayoutAttribute.top, multiplier: 0.5, constant: 0.5) Observable.just(false).subscribe(constraint.rx_active).dispose() - XCTAssertTrue(constraint.active == false) + XCTAssertTrue(constraint.isActive == false) } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/NSNotificationCenterTests.swift b/Tests/RxCocoaTests/NSNotificationCenterTests.swift index 074b5e2a..b971c37a 100644 --- a/Tests/RxCocoaTests/NSNotificationCenterTests.swift +++ b/Tests/RxCocoaTests/NSNotificationCenterTests.swift @@ -13,11 +13,11 @@ import RxCocoa class NSNotificationCenterTests : RxTest { func testNotificationCenterWithoutObject() { - let notificationCenter = NSNotificationCenter() + let notificationCenter = NotificationCenter() var numberOfNotifications = 0 - notificationCenter.postNotificationName("testNotification", object: nil) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: nil) XCTAssertTrue(numberOfNotifications == 0) @@ -28,11 +28,11 @@ class NSNotificationCenterTests : RxTest { XCTAssertTrue(numberOfNotifications == 0) - notificationCenter.postNotificationName("testNotification", object: nil) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: nil) XCTAssertTrue(numberOfNotifications == 1) - notificationCenter.postNotificationName("testNotification", object: NSObject()) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: NSObject()) XCTAssertTrue(numberOfNotifications == 2) @@ -40,20 +40,20 @@ class NSNotificationCenterTests : RxTest { XCTAssertTrue(numberOfNotifications == 2) - notificationCenter.postNotificationName("testNotification", object: nil) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: nil) XCTAssertTrue(numberOfNotifications == 2) } func testNotificationCenterWithObject() { - let notificationCenter = NSNotificationCenter() + let notificationCenter = NotificationCenter() var numberOfNotifications = 0 let targetObject = NSObject() - notificationCenter.postNotificationName("testNotification", object: targetObject) - notificationCenter.postNotificationName("testNotification", object: nil) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: targetObject) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: nil) XCTAssertTrue(numberOfNotifications == 0) @@ -64,19 +64,19 @@ class NSNotificationCenterTests : RxTest { XCTAssertTrue(numberOfNotifications == 0) - notificationCenter.postNotificationName("testNotification", object: targetObject) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: targetObject) XCTAssertTrue(numberOfNotifications == 1) - notificationCenter.postNotificationName("testNotification", object: nil) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: nil) XCTAssertTrue(numberOfNotifications == 1) - notificationCenter.postNotificationName("testNotification", object: NSObject()) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: NSObject()) XCTAssertTrue(numberOfNotifications == 1) - notificationCenter.postNotificationName("testNotification", object: targetObject) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: targetObject) XCTAssertTrue(numberOfNotifications == 2) @@ -84,8 +84,8 @@ class NSNotificationCenterTests : RxTest { XCTAssertTrue(numberOfNotifications == 2) - notificationCenter.postNotificationName("testNotification", object: targetObject) + notificationCenter.post(name: Notification.Name(rawValue: "testNotification"), object: targetObject) XCTAssertTrue(numberOfNotifications == 2) } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/RuntimeStateSnapshot.swift b/Tests/RxCocoaTests/RuntimeStateSnapshot.swift index e3714e96..b15a3f4b 100644 --- a/Tests/RxCocoaTests/RuntimeStateSnapshot.swift +++ b/Tests/RxCocoaTests/RuntimeStateSnapshot.swift @@ -19,50 +19,50 @@ class ObjectRuntimeState { actingAs = ClassRuntimeState(RXObjCTestRuntime.objCClass(target)) } - private static func changesFrom(from: ClassRuntimeState, to: ClassRuntimeState) -> [ObjectRuntimeChange] { + private static func changesFrom(_ from: ClassRuntimeState, to: ClassRuntimeState) -> [ObjectRuntimeChange] { if from.targetClass == to.targetClass { var changes = [ObjectRuntimeChange]() for (selector, implementation) in to.implementations { if let originalImplementation = from.implementations[selector] { if originalImplementation != implementation { if RXObjCTestRuntime.isForwardingIMP(implementation) { - changes.append(.ImplementationChangedToForwarding(forSelector: selector)) + changes.append(.implementationChangedToForwarding(forSelector: selector)) } else { - changes.append(.ImplementationChanged(forSelector: selector)) + changes.append(.implementationChanged(forSelector: selector)) } } } else { if RXObjCTestRuntime.isForwardingIMP(implementation) { - changes.append(.ForwardImplementationAdded(forSelector: selector)) + changes.append(.forwardImplementationAdded(forSelector: selector)) } else { - changes.append(.ImplementationAdded(forSelector: selector)) + changes.append(.implementationAdded(forSelector: selector)) } } } for (oldSelector, _) in from.implementations { if to.implementations[oldSelector] == nil { - changes.append(.ImplementationDeleted(forSelector: oldSelector)) + changes.append(.implementationDeleted(forSelector: oldSelector)) } } return changes } else { - return [.ClassChanged(from: NSStringFromClass(from.targetClass), to: NSStringFromClass(to.targetClass), andImplementsTheseSelectors: Array(to.implementations.keys))] + return [.classChanged(from: NSStringFromClass(from.targetClass), to: NSStringFromClass(to.targetClass), andImplementsTheseSelectors: Array(to.implementations.keys))] } } - func changesFrom(initialState: ObjectRuntimeState) -> (real: [ObjectRuntimeChange], actingAs: [ObjectRuntimeChange]) { + func changesFrom(_ initialState: ObjectRuntimeState) -> (real: [ObjectRuntimeChange], actingAs: [ObjectRuntimeChange]) { return ( real: ObjectRuntimeState.changesFrom(initialState.real, to: self.real), actingAs: ObjectRuntimeState.changesFrom(initialState.actingAs, to: self.actingAs) ) } - func assertChangesFrom(initialState: ObjectRuntimeState, expectedActingClassChanges: [ObjectRuntimeChange], expectedRealClassChanges: [ObjectRuntimeChange]) { + func assertChangesFrom(_ initialState: ObjectRuntimeState, expectedActingClassChanges: [ObjectRuntimeChange], expectedRealClassChanges: [ObjectRuntimeChange]) { let changes = self.changesFrom(initialState) XCTAssertEqual(Set(changes.actingAs), Set(expectedActingClassChanges)) if (Set(changes.actingAs) != Set(expectedActingClassChanges)) { @@ -76,16 +76,16 @@ class ObjectRuntimeState { } enum ObjectRuntimeChange : Hashable { - static func ClassChangedToDynamic(from: String, andImplementsTheseSelectors: [Selector]) -> ObjectRuntimeChange { - return .ClassChanged(from: from, to: "_RX_namespace_" + from, andImplementsTheseSelectors: andImplementsTheseSelectors) + static func ClassChangedToDynamic(_ from: String, andImplementsTheseSelectors: [Selector]) -> ObjectRuntimeChange { + return .classChanged(from: from, to: "_RX_namespace_" + from, andImplementsTheseSelectors: andImplementsTheseSelectors) } - case ClassChanged(from: String, to: String, andImplementsTheseSelectors: [Selector]) - case ImplementationChanged(forSelector: Selector) - case ImplementationChangedToForwarding(forSelector: Selector) - case ImplementationAdded(forSelector: Selector) - case ImplementationDeleted(forSelector: Selector) - case ForwardImplementationAdded(forSelector: Selector) + case classChanged(from: String, to: String, andImplementsTheseSelectors: [Selector]) + case implementationChanged(forSelector: Selector) + case implementationChangedToForwarding(forSelector: Selector) + case implementationAdded(forSelector: Selector) + case implementationDeleted(forSelector: Selector) + case forwardImplementationAdded(forSelector: Selector) } extension ObjectRuntimeChange { @@ -95,7 +95,7 @@ extension ObjectRuntimeChange { } var isClassChange: Bool { - if case .ClassChanged = self { + if case .classChanged = self { return true } @@ -105,17 +105,17 @@ extension ObjectRuntimeChange { func ==(lhs: ObjectRuntimeChange, rhs: ObjectRuntimeChange) -> Bool { switch (lhs, rhs) { - case let (.ClassChanged(lFrom, lTo, lImplementations), .ClassChanged(rFrom, rTo, rImplementations)): + case let (.classChanged(lFrom, lTo, lImplementations), .classChanged(rFrom, rTo, rImplementations)): return (lFrom == rFrom && lTo == rTo) && Set(lImplementations) == Set(rImplementations) - case let (.ImplementationChanged(lSelector), .ImplementationChanged(rSelector)): + case let (.implementationChanged(lSelector), .implementationChanged(rSelector)): return lSelector == rSelector - case let (.ImplementationChangedToForwarding(lSelector), .ImplementationChangedToForwarding(rSelector)): + case let (.implementationChangedToForwarding(lSelector), .implementationChangedToForwarding(rSelector)): return lSelector == rSelector - case let (.ImplementationAdded(lSelector), .ImplementationAdded(rSelector)): + case let (.implementationAdded(lSelector), .implementationAdded(rSelector)): return lSelector == rSelector - case let (.ImplementationDeleted(lSelector), .ImplementationDeleted(rSelector)): + case let (.implementationDeleted(lSelector), .implementationDeleted(rSelector)): return lSelector == rSelector - case let (.ForwardImplementationAdded(lSelector), .ForwardImplementationAdded(rSelector)): + case let (.forwardImplementationAdded(lSelector), .forwardImplementationAdded(rSelector)): return lSelector == rSelector default: return false @@ -143,13 +143,13 @@ struct ClassRuntimeState { self.implementations = ClassRuntimeState.implementationsBySelector(targetClass) } - static func implementationsBySelector(klass: AnyClass) -> [Selector: IMP] { + static func implementationsBySelector(_ klass: AnyClass) -> [Selector: IMP] { var count: UInt32 = 0 let methods = class_copyMethodList(klass, &count) var result = [Selector: IMP]() for i in 0 ..< count { - let method: Method = methods.advancedBy(Int(i)).memory + let method: Method = methods!.advanced(by: Int(i)).pointee! result[method_getName(method)] = method_getImplementation(method) } diff --git a/Tests/RxCocoaTests/RxObjCRuntimeState.swift b/Tests/RxCocoaTests/RxObjCRuntimeState.swift index 4d77b807..ec779ead 100644 --- a/Tests/RxCocoaTests/RxObjCRuntimeState.swift +++ b/Tests/RxCocoaTests/RxObjCRuntimeState.swift @@ -19,7 +19,7 @@ struct RxObjCRuntimeChange { /** Takes into account default methods that were swizzled while creating dynamic subclasses. */ - static func changes(dynamicSubclasses dynamicSubclasses: Int = 0, swizzledForwardClasses: Int = 0, interceptedClasses: Int = 0, methodsSwizzled: Int = 0, methodsForwarded: Int = 0) -> RxObjCRuntimeChange { + static func changes(dynamicSubclasses: Int = 0, swizzledForwardClasses: Int = 0, interceptedClasses: Int = 0, methodsSwizzled: Int = 0, methodsForwarded: Int = 0) -> RxObjCRuntimeChange { return RxObjCRuntimeChange( dynamicSublasses: dynamicSubclasses, swizzledForwardClasses: swizzledForwardClasses, @@ -58,7 +58,7 @@ class RxObjCRuntimeState { #endif } - func assertAfterThisMoment(previous: RxObjCRuntimeState, changed: RxObjCRuntimeChange) { + func assertAfterThisMoment(_ previous: RxObjCRuntimeState, changed: RxObjCRuntimeChange) { #if TRACE_RESOURCES let realChangeOfDynamicSubclasses = dynamicSublasses - previous.dynamicSublasses XCTAssertEqual(realChangeOfDynamicSubclasses, changed.dynamicSublasses) @@ -87,4 +87,4 @@ class RxObjCRuntimeState { } #endif } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/RxTest+Controls.swift b/Tests/RxCocoaTests/RxTest+Controls.swift index 35723e66..b01c1f81 100644 --- a/Tests/RxCocoaTests/RxTest+Controls.swift +++ b/Tests/RxCocoaTests/RxTest+Controls.swift @@ -12,7 +12,7 @@ import RxSwift import XCTest extension RxTest { - func ensurePropertyDeallocated(createControl: () -> C, _ initialValue: T, _ propertySelector: C -> ControlProperty) { + func ensurePropertyDeallocated(_ createControl: () -> C, _ initialValue: T, _ propertySelector: (C) -> ControlProperty) { let variable = Variable(initialValue) @@ -45,7 +45,7 @@ extension RxTest { // this code is here to flush any events that were scheduled to // run on main loop - dispatch_async(dispatch_get_main_queue()) { + DispatchQueue.main.async { let runLoop = CFRunLoopGetCurrent() CFRunLoopStop(runLoop) } @@ -58,11 +58,11 @@ extension RxTest { XCTAssertEqual(initialValue, lastReturnedPropertyValue) } - func ensureEventDeallocated(createControl: () -> C, _ eventSelector: C -> ControlEvent) { + func ensureEventDeallocated(_ createControl: () -> C, _ eventSelector: (C) -> ControlEvent) { return ensureEventDeallocated({ () -> (C, Disposable) in (createControl(), NopDisposable.instance) }, eventSelector) } - func ensureEventDeallocated(createControl: () -> (C, Disposable), _ eventSelector: C -> ControlEvent) { + func ensureEventDeallocated(_ createControl: () -> (C, Disposable), _ eventSelector: (C) -> ControlEvent) { var completed = false var deallocated = false let outerDisposable = SingleAssignmentDisposable() @@ -89,7 +89,7 @@ extension RxTest { XCTAssertTrue(completed) } - func ensureControlObserverHasWeakReference(@autoclosure createControl: () -> (C), _ observerSelector: C -> AnyObserver, _ observableSelector: () -> (Observable)) { + func ensureControlObserverHasWeakReference(@autoclosure _ createControl: () -> (C), _ observerSelector: (C) -> AnyObserver, _ observableSelector: () -> (Observable)) { var deallocated = false let disposeBag = DisposeBag() @@ -108,4 +108,4 @@ extension RxTest { XCTAssertTrue(deallocated) } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/SentMessageTest.swift b/Tests/RxCocoaTests/SentMessageTest.swift index 516a39d7..150f61df 100644 --- a/Tests/RxCocoaTests/SentMessageTest.swift +++ b/Tests/RxCocoaTests/SentMessageTest.swift @@ -15,7 +15,7 @@ import RxBlocking class SentMessageTest : RxTest { var testClosure: () -> () = { } - func dynamicClassName(baseClassName: String) -> String { + func dynamicClassName(_ baseClassName: String) -> String { return "_RX_namespace_" + baseClassName } } @@ -31,10 +31,10 @@ extension SentMessageTest { return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -46,10 +46,10 @@ extension SentMessageTest { return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -63,10 +63,10 @@ extension SentMessageTest { return [target.rx_deallocating.map { _ in [] }] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -78,10 +78,10 @@ extension SentMessageTest { return [target.rx_deallocating.map { _ in [] }] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -95,10 +95,10 @@ extension SentMessageTest { return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), + .implementationChanged(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), + .implementationChanged(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -110,10 +110,10 @@ extension SentMessageTest { return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -127,10 +127,10 @@ extension SentMessageTest { return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationAdded(forSelector: NSSelectorFromString("dealloc")), + .implementationAdded(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -142,10 +142,10 @@ extension SentMessageTest { return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), + .implementationChanged(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), + .implementationChanged(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -159,10 +159,10 @@ extension SentMessageTest { return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), + .implementationChanged(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), + .implementationChanged(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -174,10 +174,10 @@ extension SentMessageTest { return [target.rx_sentMessage(NSSelectorFromString("dealloc"))] }, objectActingClassChange: [ - .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), + .implementationChanged(forSelector: NSSelectorFromString("dealloc")), ], objectRealClassChange: [ - .ImplementationChanged(forSelector: NSSelectorFromString("dealloc")), + .implementationChanged(forSelector: NSSelectorFromString("dealloc")), ], runtimeChange: RxObjCRuntimeChange.changes(methodsSwizzled: 1, interceptedClasses: 1), useIt: { _ in return [[[]]]}) @@ -192,7 +192,7 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(SentMessageTest_interact_forwarding.self), observeIt: { target in - return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)))] + return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)))] }, objectActingClassChange: [ ], @@ -202,14 +202,14 @@ extension SentMessageTest { NSSelectorFromString("respondsToSelector:"), NSSelectorFromString("methodSignatureForSelector:"), NSSelectorFromString("forwardInvocation:"), - #selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), + #selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), NSSelectorFromString("_RX_namespace_justCalledToSayObject:"), ]) ], runtimeChange: RxObjCRuntimeChange.changes(dynamicSubclasses:1, methodsForwarded: 1, swizzledForwardClasses: 1) ) { target in let o = NSObject() - target.justCalledToSayObject(o) + target.justCalled(toSay: o) return [[[o]]] } @@ -217,7 +217,7 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(SentMessageTestBase_interact_forwarding.self), observeIt: { target in - return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)))] + return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)))] }, objectActingClassChange: [ ], @@ -227,14 +227,14 @@ extension SentMessageTest { NSSelectorFromString("respondsToSelector:"), NSSelectorFromString("methodSignatureForSelector:"), NSSelectorFromString("forwardInvocation:"), - #selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), + #selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), NSSelectorFromString("_RX_namespace_justCalledToSayObject:"), ]) ], runtimeChange: RxObjCRuntimeChange.changes(dynamicSubclasses:1, methodsForwarded: 1, swizzledForwardClasses: 1) ) { target in let o = NSObject() - target.justCalledToSayObject(o) + target.justCalled(toSay: o) return [[[o]]] } @@ -243,7 +243,7 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(SentMessageTest_interact_forwarding.self), observeIt: { target in - return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)))] + return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)))] }, objectActingClassChange: [ ], @@ -253,14 +253,14 @@ extension SentMessageTest { NSSelectorFromString("respondsToSelector:"), NSSelectorFromString("methodSignatureForSelector:"), NSSelectorFromString("forwardInvocation:"), - #selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), + #selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), NSSelectorFromString("_RX_namespace_justCalledToSayObject:"), ]) ], runtimeChange: RxObjCRuntimeChange.changes() ) { target in let o = NSObject() - target.justCalledToSayObject(o) + target.justCalled(toSay: o) return [[[o]]] } @@ -268,7 +268,7 @@ extension SentMessageTest { ensureGlobalRuntimeChangesAreCached( createNormalInstance(SentMessageTestBase_interact_forwarding.self), observeIt: { target in - return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)))] + return [target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)))] }, objectActingClassChange: [ ], @@ -278,14 +278,14 @@ extension SentMessageTest { NSSelectorFromString("respondsToSelector:"), NSSelectorFromString("methodSignatureForSelector:"), NSSelectorFromString("forwardInvocation:"), - #selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), + #selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), NSSelectorFromString("_RX_namespace_justCalledToSayObject:"), ]) ], runtimeChange: RxObjCRuntimeChange.changes() ) { target in let o = NSObject() - target.justCalledToSayObject(o) + target.justCalled(toSay: o) return [[[o]]] } } @@ -301,7 +301,7 @@ extension SentMessageTest { SentMessageTestBase_optimized_void.self, SentMessageTest_optimized_void.self, #selector(SentMessageTestBase_shared.voidJustCalledToSayVoid)) { target in - target.voidJustCalledToSayVoid() + target.voidJustCalledToSay() return [[[]]] } } @@ -310,9 +310,9 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_id.self, SentMessageTest_optimized_id.self, - #selector(SentMessageTestBase_shared.voidJustCalledToSayObject(_:))) { target in + #selector(SentMessageTestBase_shared.voidJustCalled(toSay:)(_:))) { target in let o = NSObject() - target.voidJustCalledToSayObject(o) + target.voidJustCalled(toSay: o) return [[[o]]] } } @@ -321,9 +321,9 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_int.self, SentMessageTest_optimized_int.self, - #selector(SentMessageTestBase_shared.voidJustCalledToSayInt(_:))) { target in - target.voidJustCalledToSayInt(3) - return [[[NSNumber(integer: 3)]]] + #selector(SentMessageTestBase_shared.voidJustCalled(toSay:)(_:))) { target in + target.voidJustCalled(toSay: 3) + return [[[NSNumber(value: 3)]]] } } @@ -331,8 +331,8 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_long.self, SentMessageTest_optimized_long.self, - #selector(SentMessageTestBase_shared.voidJustCalledToSayLong(_:))) { target in - target.voidJustCalledToSayLong(3) + #selector(SentMessageTestBase_shared.voidJustCalled(toSayLong:)(_:))) { target in + target.voidJustCalled(toSay: 3) return [[[NSNumber(long: 3)]]] } } @@ -341,9 +341,9 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_char.self, SentMessageTest_optimized_char.self, - #selector(SentMessageTestBase_shared.voidJustCalledToSayChar(_:))) { target in - target.voidJustCalledToSayChar(3) - return [[[NSNumber(char: 3)]]] + #selector(SentMessageTestBase_shared.voidJustCalled(toSayChar:)(_:))) { target in + target.voidJustCalled(toSay: 3) + return [[[NSNumber(value: 3)]]] } } @@ -351,10 +351,10 @@ extension SentMessageTest { _baseClass_subClass_dont_interact_for_optimized_version( SentMessageTestBase_optimized_id_id.self, SentMessageTest_optimized_id_id.self, - #selector(SentMessageTestBase_shared.voidJustCalledToSayObject(_:object:))) { target in + #selector(SentMessageTestBase_shared.voidJustCalled(toSay:object:)(_:object:))) { target in let o = NSObject() let o1 = NSObject() - target.voidJustCalledToSayObject(o, object: o1) + target.voidJustCalled(toSay: o, object: o1) return [[[o, o1]]] } } @@ -363,7 +363,7 @@ extension SentMessageTest { < BaseClass: protocol, TargetClass: protocol - >(baseClass: BaseClass.Type, _ targetClass: TargetClass.Type, _ method: Selector, _ invoke: BaseClass -> [[MethodParameters]]) { + >(_ baseClass: BaseClass.Type, _ targetClass: TargetClass.Type, _ method: Selector, _ invoke: (BaseClass) -> [[MethodParameters]]) { // now force forwarding mechanism for normal class ensureGlobalRuntimeChangesAreCached( createNormalInstance(), @@ -455,7 +455,7 @@ extension SentMessageTest { }) let objectParam = NSObject() - let str: UnsafePointer = ("123" as NSString).UTF8String + let str: UnsafePointer = ("123" as NSString).utf8String! let unsafeStr: UnsafeMutablePointer = UnsafeMutablePointer.init(str) let largeStruct = some_insanely_large_struct(a: (0, 1, 2, 3, 4, 5, 6, 7), some_large_text: nil, next: nil) @@ -483,7 +483,7 @@ extension SentMessageTest { XCTFail() } catch let e { - guard case .SelectorNotImplemented(let targetInError) = e as! RxCocoaObjCRuntimeError else { + guard case .selectorNotImplemented(let targetInError) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } @@ -502,20 +502,20 @@ extension SentMessageTest { .addDisposableTo(disposeBag) do { - _ = try target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:))) + _ = try target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:))) .toBlocking() .first() XCTFail() } catch let e { - guard case .ObjectMessagesAlreadyBeingIntercepted(let targetInError, let mechanism) = e as! RxCocoaObjCRuntimeError else { + guard case .objectMessagesAlreadyBeingIntercepted(let targetInError, let mechanism) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } XCTAssertEqual(targetInError as? SentMessageTest_shared, target) - XCTAssertEqual(mechanism, RxCocoaInterceptionMechanism.KVO) + XCTAssertEqual(mechanism, RxCocoaInterceptionMechanism.kvo) } } @@ -525,26 +525,26 @@ extension SentMessageTest { object_setClass(target, SentMessageTest_shared_mock_interceptor.self) do { - _ = try target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:))) + _ = try target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:))) .toBlocking() .first() XCTFail() } catch let e { - guard case .ObjectMessagesAlreadyBeingIntercepted(let targetInError, let mechanism) = e as! RxCocoaObjCRuntimeError else { + guard case .objectMessagesAlreadyBeingIntercepted(let targetInError, let mechanism) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } XCTAssertEqual(targetInError as? SentMessageTest_shared, target) - XCTAssertEqual(mechanism, RxCocoaInterceptionMechanism.KVO) + XCTAssertEqual(mechanism, RxCocoaInterceptionMechanism.kvo) } } func testFailsInCaseObjectIsCF() { autoreleasepool { - let target = "\(NSDate())" + let target = "\(Date())" do { _ = try target.rx_sentMessage(#selector(_NSStringCoreType.length)) @@ -554,7 +554,7 @@ extension SentMessageTest { XCTFail() } catch let e { - guard case .CantInterceptCoreFoundationTollFreeBridgedObjects(let targetInError) = e as! RxCocoaObjCRuntimeError else { + guard case .cantInterceptCoreFoundationTollFreeBridgedObjects(let targetInError) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } @@ -572,7 +572,7 @@ extension SentMessageTest { func testWorksWithKVOInCaseKVORegisteredAfter() { let target = SentMessageTest_shared() - let messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:))) + let messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:))) let kvo = target.rx_observe(NSArray.self, "messages") .subscribeNext { _ in @@ -583,13 +583,13 @@ extension SentMessageTest { recordedMessages.append(n) } - target.justCalledToSayBool(true) + target.justCalled(toSay: true) kvo.dispose() - target.justCalledToSayBool(false) + target.justCalled(toSay: false) - XCTAssertEqual(recordedMessages, [[NSNumber(bool: true)], [NSNumber(bool: false)]]) + XCTAssertEqual(recordedMessages, [[NSNumber(value: true)], [NSNumber(value: false)]]) methodObserving.dispose() } @@ -607,9 +607,9 @@ extension SentMessageTest { autoreleasepool { let target = SentMessageTest_shared() - messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:))) + messages = target.rx_sentMessage(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:))) - target.justCalledToSayBool(true) + target.justCalled(toSay: true) messages.subscribe(onNext: { n in recordedMessages.append(n) @@ -617,11 +617,11 @@ extension SentMessageTest { completed = true }).addDisposableTo(disposeBag) - target.justCalledToSayBool(true) + target.justCalled(toSay: true) } - XCTAssertEqual(recordedMessages, [[NSNumber(bool: true)]]) + XCTAssertEqual(recordedMessages, [[NSNumber(value: true)]]) XCTAssertTrue(completed) } @@ -680,7 +680,7 @@ extension SentMessageTest { XCTFail() } catch let e { - guard case .ObservingPerformanceSensitiveMessages(let targetInError) = e as! RxCocoaObjCRuntimeError else { + guard case .observingPerformanceSensitiveMessages(let targetInError) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } @@ -700,7 +700,7 @@ extension SentMessageTest { XCTFail() } catch let e { - guard case .ObservingPerformanceSensitiveMessages(let targetInError) = e as! RxCocoaObjCRuntimeError else { + guard case .observingPerformanceSensitiveMessages(let targetInError) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } @@ -720,7 +720,7 @@ extension SentMessageTest { XCTFail() } catch let e { - guard case .ObservingPerformanceSensitiveMessages(let targetInError) = e as! RxCocoaObjCRuntimeError else { + guard case .observingPerformanceSensitiveMessages(let targetInError) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } @@ -740,7 +740,7 @@ extension SentMessageTest { XCTFail() } catch let e { - guard case .ObservingPerformanceSensitiveMessages(let targetInError) = e as! RxCocoaObjCRuntimeError else { + guard case .observingPerformanceSensitiveMessages(let targetInError) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } @@ -764,7 +764,7 @@ extension SentMessageTest { XCTFail() } catch let e { - guard case .ObservingMessagesWithUnsupportedReturnType(let targetInError) = e as! RxCocoaObjCRuntimeError else { + guard case .observingMessagesWithUnsupportedReturnType(let targetInError) = e as! RxCocoaObjCRuntimeError else { XCTFail() return } @@ -782,48 +782,48 @@ extension SentMessageTest { let closure: () -> () = { } - let constChar = ("you better be listening" as NSString).UTF8String + let constChar = ("you better be listening" as NSString).utf8String let largeStruct = some_insanely_large_struct(a: (0, 1, 2, 3, 4, 5, 6, 7), some_large_text: nil, next: nil) let startRuntimeState = RxObjCRuntimeState() - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayObject(_:)), sendMessage: { x in NSValue(nonretainedObject: x.justCalledToSayObject(object)) }, expectedResult: NSValue(nonretainedObject: object)) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayClass(_:)), sendMessage: { x in NSValue(nonretainedObject: x.justCalledToSayClass(object.dynamicType)) }, expectedResult: NSValue(nonretainedObject: object.dynamicType)) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayClosure(_:)), sendMessage: { x in "\(x.justCalledToSayClosure(closure))" }, expectedResult: "\(closure)") - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayChar(_:)), sendMessage: { x in x.justCalledToSayChar(3) }, expectedResult: 3) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayShort(_:)), sendMessage: { x in x.justCalledToSayShort(4) }, expectedResult: 4) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayInt(_:)), sendMessage: { x in x.justCalledToSayInt(5) }, expectedResult: 5) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayLong(_:)), sendMessage: { x in x.justCalledToSayLong(6) }, expectedResult: 6) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayLongLong(_:)), sendMessage: { x in x.justCalledToSayLongLong(7) }, expectedResult: 7) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedChar(_:)), sendMessage: { x in x.justCalledToSayUnsignedChar(8) }, expectedResult: 8) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedShort(_:)), sendMessage: { x in x.justCalledToSayUnsignedShort(9) }, expectedResult: 9) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedInt(_:)), sendMessage: { x in x.justCalledToSayUnsignedInt(10) }, expectedResult: 10) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedLong(_:)), sendMessage: { x in x.justCalledToSayUnsignedLong(11) }, expectedResult: 11) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayUnsignedLongLong(_:)), sendMessage: { x in x.justCalledToSayUnsignedLongLong(12) }, expectedResult: 12) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayFloat(_:)), sendMessage: { x in x.justCalledToSayFloat(13) }, expectedResult: 13) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayDouble(_:)), sendMessage: { x in x.justCalledToSayDouble(13) }, expectedResult: 13) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayBool(_:)), sendMessage: { x in x.justCalledToSayBool(true) }, expectedResult: true) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayConstChar(_:)), sendMessage: { x in x.justCalledToSayConstChar(constChar) }, expectedResult: constChar) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalledToSayLarge(_:)), sendMessage: { x in x.justCalledToSayLarge(largeStruct) }, expectedResult: 28) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), sendMessage: { x in NSValue(nonretainedObject: x.justCalled(toSay: object)) }, expectedResult: NSValue(nonretainedObject: object)) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), sendMessage: { x in NSValue(nonretainedObject: x.justCalled(toSay: object.dynamicType)) }, expectedResult: NSValue(nonretainedObject: object.dynamicType)) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayClosure:)(_:)), sendMessage: { x in "\(x.justCalled(toSayClosure: closure))" }, expectedResult: "\(closure)") + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayChar:)(_:)), sendMessage: { x in x.justCalled(toSayChar: 3) }, expectedResult: 3) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayShort:)(_:)), sendMessage: { x in x.justCalled(toSayShort: 4) }, expectedResult: 4) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), sendMessage: { x in x.justCalled(toSay: 5) }, expectedResult: 5) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayLong:)(_:)), sendMessage: { x in x.justCalled(toSayLong: 6) }, expectedResult: 6) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayLongLong:)(_:)), sendMessage: { x in x.justCalled(toSayLongLong: 7) }, expectedResult: 7) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayUnsignedChar:)(_:)), sendMessage: { x in x.justCalled(toSayUnsignedChar: 8) }, expectedResult: 8) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayUnsignedShort:)(_:)), sendMessage: { x in x.justCalled(toSayUnsignedShort: 9) }, expectedResult: 9) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayUnsignedInt:)(_:)), sendMessage: { x in x.justCalled(toSayUnsignedInt: 10) }, expectedResult: 10) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayUnsignedLong:)(_:)), sendMessage: { x in x.justCalled(toSayUnsignedLong: 11) }, expectedResult: 11) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayUnsignedLongLong:)(_:)), sendMessage: { x in x.justCalled(toSayUnsignedLongLong: 12) }, expectedResult: 12) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), sendMessage: { x in x.justCalled(toSay: 13) }, expectedResult: 13) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), sendMessage: { x in x.justCalled(toSay: 13) }, expectedResult: 13) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSay:)(_:)), sendMessage: { x in x.justCalled(toSay: true) }, expectedResult: true) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayConstChar:)(_:)), sendMessage: { x in x.justCalled(toSayConstChar: constChar) }, expectedResult: constChar) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.justCalled(toSayLarge:)(_:)), sendMessage: { x in x.justCalled(toSayLarge: largeStruct) }, expectedResult: 28) let middleRuntimeState = RxObjCRuntimeState() let middleChanges = RxObjCRuntimeChange.changes(methodsForwarded: 18, dynamicSubclasses: 1, swizzledForwardClasses: 1) middleRuntimeState.assertAfterThisMoment(startRuntimeState, changed:middleChanges) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayObject(_:)), sendMessage: { x in x.voidJustCalledToSayObject(object); return NSValue(nonretainedObject: object) }, expectedResult: NSValue(nonretainedObject: object)) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayClosure(_:)), sendMessage: { x in x.voidJustCalledToSayClosure(closure); return "\(closure)" }, expectedResult: "\(closure)") - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayChar(_:)), sendMessage: { x in x.voidJustCalledToSayChar(3); return 3 }, expectedResult: 3) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayShort(_:)), sendMessage: { x in x.voidJustCalledToSayShort(4); return 4 }, expectedResult: 4) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayInt(_:)), sendMessage: { x in x.voidJustCalledToSayInt(5); return 5 }, expectedResult: 5) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayLong(_:)), sendMessage: { x in x.voidJustCalledToSayLong(6); return 6 }, expectedResult: 6) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayUnsignedChar(_:)), sendMessage: { x in x.voidJustCalledToSayUnsignedChar(8); return 8 }, expectedResult: 8) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayUnsignedShort(_:)), sendMessage: { x in x.voidJustCalledToSayUnsignedShort(9); return 9 }, expectedResult: 9) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayUnsignedInt(_:)), sendMessage: { x in x.voidJustCalledToSayUnsignedInt(10); return 10 }, expectedResult: 10) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayUnsignedLong(_:)), sendMessage: { x in x.voidJustCalledToSayUnsignedLong(11); return 11 }, expectedResult: 11) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayFloat(_:)), sendMessage: { x in x.voidJustCalledToSayFloat(13); return 13 }, expectedResult: 13) - _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalledToSayDouble(_:)), sendMessage: { x in x.voidJustCalledToSayDouble(13); return 13 }, expectedResult: 13) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSay:)(_:)), sendMessage: { x in x.voidJustCalled(toSay: object); return NSValue(nonretainedObject: object) }, expectedResult: NSValue(nonretainedObject: object)) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSayClosure:)(_:)), sendMessage: { x in x.voidJustCalled(toSayClosure: closure); return "\(closure)" }, expectedResult: "\(closure)") + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSayChar:)(_:)), sendMessage: { x in x.voidJustCalled(toSayChar: 3); return 3 }, expectedResult: 3) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSayShort:)(_:)), sendMessage: { x in x.voidJustCalled(toSayShort: 4); return 4 }, expectedResult: 4) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSay:)(_:)), sendMessage: { x in x.voidJustCalled(toSay: 5); return 5 }, expectedResult: 5) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSayLong:)(_:)), sendMessage: { x in x.voidJustCalled(toSayLong: 6); return 6 }, expectedResult: 6) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSayUnsignedChar:)(_:)), sendMessage: { x in x.voidJustCalled(toSayUnsignedChar: 8); return 8 }, expectedResult: 8) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSayUnsignedShort:)(_:)), sendMessage: { x in x.voidJustCalled(toSayUnsignedShort: 9); return 9 }, expectedResult: 9) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSayUnsignedInt:)(_:)), sendMessage: { x in x.voidJustCalled(toSayUnsignedInt: 10); return 10 }, expectedResult: 10) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSayUnsignedLong:)(_:)), sendMessage: { x in x.voidJustCalled(toSayUnsignedLong: 11); return 11 }, expectedResult: 11) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSay:)(_:)), sendMessage: { x in x.voidJustCalled(toSay: 13); return 13 }, expectedResult: 13) + _testMessageRecordedAndAllCallsAreMade(#selector(SentMessageTestBase_shared.voidJustCalled(toSay:)(_:)), sendMessage: { x in x.voidJustCalled(toSay: 13); return 13 }, expectedResult: 13) let endRuntimeState = RxObjCRuntimeState() @@ -831,7 +831,7 @@ extension SentMessageTest { } - func _testMessageRecordedAndAllCallsAreMade(selector: Selector, sendMessage: SentMessageTest_all_supported_types -> Result, expectedResult: Result) { + func _testMessageRecordedAndAllCallsAreMade(_ selector: Selector, sendMessage: (SentMessageTest_all_supported_types) -> Result, expectedResult: Result) { var observedMessages = [[AnyObject]]() var receivedDerivedClassMessage = [[AnyObject]]() var receivedBaseClassMessage = [[AnyObject]]() @@ -874,12 +874,12 @@ extension SentMessageTest { results properly can cause serious memory leaks. */ func ensureGlobalRuntimeChangesAreCached>( - createIt: () -> (T, [Disposable]), - observeIt: T -> [Observable], + _ createIt: () -> (T, [Disposable]), + observeIt: (T) -> [Observable], objectActingClassChange: [ObjectRuntimeChange], objectRealClassChange: [ObjectRuntimeChange], runtimeChange: RxObjCRuntimeChange, - useIt: T -> [[MethodParameters]] + useIt: (T) -> [[MethodParameters]] ) { // First run normal experiment _ensureGlobalRuntimeChangesAreCached(createIt, @@ -906,12 +906,12 @@ extension SentMessageTest { } func _ensureGlobalRuntimeChangesAreCached>( - createIt: () -> (T, [Disposable]), - observeIt: T -> [Observable], + _ createIt: () -> (T, [Disposable]), + observeIt: (T) -> [Observable], expectedActingClassChanges: [ObjectRuntimeChange], expectedRealClassChanges: [ObjectRuntimeChange], runtimeChange: RxObjCRuntimeChange, - useIt: T -> [[MethodParameters]] + useIt: (T) -> [[MethodParameters]] ) { let originalRuntimeState = RxObjCRuntimeState() @@ -999,11 +999,11 @@ extension SentMessageTest { extension SentMessageTest { - override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer) { + override func observeValue(forKeyPath keyPath: String?, of object: AnyObject?, change: [NSKeyValueChangeKey : AnyObject]?, context: UnsafeMutablePointer?) { } - func createKVODynamicSubclassed>(type: T.Type = T.self) -> () -> (T, [Disposable]) { + func createKVODynamicSubclassed>(_ type: T.Type = T.self) -> () -> (T, [Disposable]) { return { let t = T() //let disposable = (t as! NSObject).rx_observe(NSArray.self, "messages").publish().connect() @@ -1012,7 +1012,7 @@ extension SentMessageTest { } } - func createNormalInstance>(type: T.Type = T.self) -> () -> (T, [Disposable]) { + func createNormalInstance>(_ type: T.Type = T.self) -> () -> (T, [Disposable]) { return { return (T(), []) } diff --git a/Tests/RxCocoaTests/TestImplementations/SectionedViewDataSourceMock.swift b/Tests/RxCocoaTests/TestImplementations/SectionedViewDataSourceMock.swift index e991b071..c50f4edd 100644 --- a/Tests/RxCocoaTests/TestImplementations/SectionedViewDataSourceMock.swift +++ b/Tests/RxCocoaTests/TestImplementations/SectionedViewDataSourceMock.swift @@ -27,31 +27,31 @@ import UIKit super.init() } - func modelAtIndexPath(indexPath: NSIndexPath) throws -> Any { - return items![indexPath.item] + func modelAtIndexPath(_ indexPath: IndexPath) throws -> Any { + return items![(indexPath as NSIndexPath).item] } - func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 0 } - func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { return UITableViewCell() } - func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 0 } - func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { return UICollectionViewCell() } - func tableView(tableView: UITableView, observedEvent: Event) { + func tableView(_ tableView: UITableView, observedEvent: Event) { items = observedEvent.element! } - func collectionView(collectionView: UICollectionView, observedEvent: Event) { + func collectionView(_ collectionView: UICollectionView, observedEvent: Event) { items = observedEvent.element! } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/UICollectionView+RxTests.swift b/Tests/RxCocoaTests/UICollectionView+RxTests.swift index f770691a..6b4ead92 100644 --- a/Tests/RxCocoaTests/UICollectionView+RxTests.swift +++ b/Tests/RxCocoaTests/UICollectionView+RxTests.swift @@ -15,7 +15,7 @@ import XCTest class UICollectionViewTests : RxTest { func testCollectionView_DelegateEventCompletesOnDealloc() { let layout = UICollectionViewFlowLayout() - let createView: () -> UICollectionView = { UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) } + let createView: () -> UICollectionView = { UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) } ensureEventDeallocated(createView) { (view: UICollectionView) in view.rx_itemSelected } ensureEventDeallocated(createView) { (view: UICollectionView) in view.rx_itemDeselected } @@ -25,17 +25,17 @@ class UICollectionViewTests : RxTest { func testCollectionView_itemSelected() { let layout = UICollectionViewFlowLayout() - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil let subscription = collectionView.rx_itemSelected .subscribeNext { indexPath in resultIndexPath = indexPath } - let testRow = NSIndexPath(forRow: 1, inSection: 0) - collectionView.delegate!.collectionView!(collectionView, didSelectItemAtIndexPath: testRow) + let testRow = IndexPath(row: 1, section: 0) + collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: testRow) XCTAssertEqual(resultIndexPath, testRow) subscription.dispose() @@ -43,17 +43,17 @@ class UICollectionViewTests : RxTest { func testCollectionView_itemDeselected() { let layout = UICollectionViewFlowLayout() - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil let subscription = collectionView.rx_itemDeselected .subscribeNext { indexPath in resultIndexPath = indexPath } - let testRow = NSIndexPath(forRow: 1, inSection: 0) - collectionView.delegate!.collectionView!(collectionView, didDeselectItemAtIndexPath: testRow) + let testRow = IndexPath(row: 1, section: 0) + collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: testRow) XCTAssertEqual(resultIndexPath, testRow) subscription.dispose() @@ -65,9 +65,9 @@ class UICollectionViewTests : RxTest { let layout = UICollectionViewFlowLayout() let createView: () -> (UICollectionView, Disposable) = { - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) let s = items.bindTo(collectionView.rx_itemsWithCellFactory) { (cv, index: Int, item: Int) -> UICollectionViewCell in - return UICollectionViewCell(frame: CGRectMake(1, 1, 1, 1)) + return UICollectionViewCell(frame: CGRect(x: 1, y: 1, width: 1, height: 1)) } return (collectionView, s) @@ -81,8 +81,8 @@ class UICollectionViewTests : RxTest { let layout = UICollectionViewFlowLayout() let createView: () -> (UICollectionView, Disposable) = { - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) - collectionView.registerClass(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) + collectionView.register(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") let s = items.bindTo(collectionView.rx_itemsWithCellIdentifier("a")) { (index: Int, item: Int, cell) in } @@ -98,8 +98,8 @@ class UICollectionViewTests : RxTest { let layout = UICollectionViewFlowLayout() let createView: () -> (UICollectionView, Disposable) = { - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) - collectionView.registerClass(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) + collectionView.register(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") let s = items.bindTo(collectionView.rx_itemsWithCellIdentifier("a", cellType: UICollectionViewCell.self)) { (index: Int, item: Int, cell) in } @@ -115,9 +115,9 @@ class UICollectionViewTests : RxTest { let layout = UICollectionViewFlowLayout() let createView: () -> (UICollectionView, Disposable) = { - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) let s = items.bindTo(collectionView.rx_itemsWithCellFactory) { (cv, index: Int, item: Int) -> UICollectionViewCell in - return UICollectionViewCell(frame: CGRectMake(1, 1, 1, 1)) + return UICollectionViewCell(frame: CGRect(x: 1, y: 1, width: 1, height: 1)) } return (collectionView, s) @@ -132,7 +132,7 @@ class UICollectionViewTests : RxTest { selectedItem = item } - collectionView.delegate!.collectionView!(collectionView, didSelectItemAtIndexPath: NSIndexPath(forRow: 1, inSection: 0)) + collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: IndexPath(row: 1, section: 0)) XCTAssertEqual(selectedItem, 2) @@ -145,8 +145,8 @@ class UICollectionViewTests : RxTest { let layout = UICollectionViewFlowLayout() let createView: () -> (UICollectionView, Disposable) = { - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) - collectionView.registerClass(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) + collectionView.register(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") let dataSourceSubscription = items.bindTo(collectionView.rx_itemsWithCellIdentifier("a")) { (index: Int, item: Int, cell) in } @@ -163,7 +163,7 @@ class UICollectionViewTests : RxTest { selectedItem = item } - collectionView.delegate!.collectionView!(collectionView, didSelectItemAtIndexPath: NSIndexPath(forRow: 1, inSection: 0)) + collectionView.delegate!.collectionView!(collectionView, didSelectItemAt: IndexPath(row: 1, section: 0)) XCTAssertEqual(selectedItem, 2) @@ -177,9 +177,9 @@ class UICollectionViewTests : RxTest { let layout = UICollectionViewFlowLayout() let createView: () -> (UICollectionView, Disposable) = { - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) let s = items.bindTo(collectionView.rx_itemsWithCellFactory) { (cv, index: Int, item: Int) -> UICollectionViewCell in - return UICollectionViewCell(frame: CGRectMake(1, 1, 1, 1)) + return UICollectionViewCell(frame: CGRect(x: 1, y: 1, width: 1, height: 1)) } return (collectionView, s) @@ -194,7 +194,7 @@ class UICollectionViewTests : RxTest { selectedItem = item } - collectionView.delegate!.collectionView!(collectionView, didDeselectItemAtIndexPath: NSIndexPath(forRow: 1, inSection: 0)) + collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: IndexPath(row: 1, section: 0)) XCTAssertEqual(selectedItem, 2) @@ -207,8 +207,8 @@ class UICollectionViewTests : RxTest { let layout = UICollectionViewFlowLayout() let createView: () -> (UICollectionView, Disposable) = { - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) - collectionView.registerClass(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) + collectionView.register(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") let dataSourceSubscription = items.bindTo(collectionView.rx_itemsWithCellIdentifier("a")) { (index: Int, item: Int, cell) in } @@ -225,7 +225,7 @@ class UICollectionViewTests : RxTest { selectedItem = item } - collectionView.delegate!.collectionView!(collectionView, didDeselectItemAtIndexPath: NSIndexPath(forRow: 1, inSection: 0)) + collectionView.delegate!.collectionView!(collectionView, didDeselectItemAt: IndexPath(row: 1, section: 0)) XCTAssertEqual(selectedItem, 2) @@ -238,8 +238,8 @@ class UICollectionViewTests : RxTest { let layout = UICollectionViewFlowLayout() let createView: () -> (UICollectionView, Disposable) = { - let collectionView = UICollectionView(frame: CGRectMake(0, 0, 1, 1), collectionViewLayout: layout) - collectionView.registerClass(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") + let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 1, height: 1), collectionViewLayout: layout) + collectionView.register(NSClassFromString("UICollectionViewCell"), forCellWithReuseIdentifier: "a") let dataSource = SectionedViewDataSourceMock() let dataSourceSubscription = items.bindTo(collectionView.rx_itemsWithDataSource(dataSource)) @@ -248,10 +248,10 @@ class UICollectionViewTests : RxTest { } let (collectionView, dataSourceSubscription) = createView() - let model: Int = try! collectionView.rx_modelAtIndexPath(NSIndexPath(forItem: 1, inSection: 0)) + let model: Int = try! collectionView.rx_modelAtIndexPath(IndexPath(item: 1, section: 0)) XCTAssertEqual(model, 2) dataSourceSubscription.dispose() } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/UIPickerView+RxTests.swift b/Tests/RxCocoaTests/UIPickerView+RxTests.swift index 5ddaf397..e9b910e7 100644 --- a/Tests/RxCocoaTests/UIPickerView+RxTests.swift +++ b/Tests/RxCocoaTests/UIPickerView+RxTests.swift @@ -16,7 +16,7 @@ import XCTest class UIPickerViewTests: RxTest { func testTableView_DelegateEventCompletesOnDealloc() { - let createView: () -> UIPickerView = { UIPickerView(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UIPickerView = { UIPickerView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensureEventDeallocated(createView) { (view: UIPickerView) in view.rx_itemSelected } } diff --git a/Tests/RxCocoaTests/UIRefreshControl+RxTests.swift b/Tests/RxCocoaTests/UIRefreshControl+RxTests.swift index 3afbea7b..36a3e98f 100644 --- a/Tests/RxCocoaTests/UIRefreshControl+RxTests.swift +++ b/Tests/RxCocoaTests/UIRefreshControl+RxTests.swift @@ -22,14 +22,14 @@ extension UIRefreshControlTests { let subject = UIRefreshControl() Observable.just(true).subscribe(subject.rx_refreshing).dispose() - XCTAssertTrue(subject.refreshing == true) + XCTAssertTrue(subject.isRefreshing == true) } func testRefreshing_False() { let subject = UIRefreshControl() Observable.just(false).subscribe(subject.rx_refreshing).dispose() - XCTAssertTrue(subject.refreshing == false) + XCTAssertTrue(subject.isRefreshing == false) } } diff --git a/Tests/RxCocoaTests/UISearchBar+RxTests.swift b/Tests/RxCocoaTests/UISearchBar+RxTests.swift index 4c9b91f5..cb9d60fd 100644 --- a/Tests/RxCocoaTests/UISearchBar+RxTests.swift +++ b/Tests/RxCocoaTests/UISearchBar+RxTests.swift @@ -15,12 +15,12 @@ import XCTest class UISearchBarTests : RxTest { func testText_completesOnDealloc() { - let createView: () -> UISearchBar = { UISearchBar(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UISearchBar = { UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensurePropertyDeallocated(createView, "a") { (view: UISearchBar) in view.rx_text } } func testText_changeEventWorks() { - let searchBar = UISearchBar(frame: CGRectMake(0, 0, 1, 1)) + let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) var latestText: String! = nil @@ -38,7 +38,7 @@ class UISearchBarTests : RxTest { } func testText_binding() { - let searchBar = UISearchBar(frame: CGRectMake(0, 0, 1, 1)) + let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) XCTAssertNotEqual(searchBar.text, "value") _ = Observable.just("value").bindTo(searchBar.rx_text) @@ -46,12 +46,12 @@ class UISearchBarTests : RxTest { } func testSelectedScopeButtonIndex_completesOnDealloc() { - let createView: () -> UISearchBar = { UISearchBar(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UISearchBar = { UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensurePropertyDeallocated(createView, 1) { (view: UISearchBar) in view.rx_selectedScopeButtonIndex } } func testSelectedScopeButtonIndex_changeEventWorks() { - let searchBar = UISearchBar(frame: CGRectMake(0, 0, 1, 1)) + let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) searchBar.scopeButtonTitles = [ "One", "Two", "Three" ] var latestSelectedScopeIndex: Int = -1 @@ -69,7 +69,7 @@ class UISearchBarTests : RxTest { } func testSelectedScopeButtonIndex_binding() { - let searchBar = UISearchBar(frame: CGRectMake(0, 0, 1, 1)) + let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) searchBar.scopeButtonTitles = [ "One", "Two", "Three" ] XCTAssertNotEqual(searchBar.selectedScopeButtonIndex, 1) @@ -79,7 +79,7 @@ class UISearchBarTests : RxTest { #if os(iOS) func testCancelButtonClicked() { - let searchBar = UISearchBar(frame: CGRectMake(0, 0, 1, 1)) + let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) var tapped = false @@ -93,13 +93,13 @@ class UISearchBarTests : RxTest { } func testCancelButtonClicked_DelegateEventCompletesOnDealloc() { - let createView: () -> UISearchBar = { UISearchBar(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UISearchBar = { UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensureEventDeallocated(createView) { (view: UISearchBar) in view.rx_cancelButtonClicked } } #endif func testSearchButtonClicked() { - let searchBar = UISearchBar(frame: CGRectMake(0, 0, 1, 1)) + let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) var tapped = false @@ -113,7 +113,7 @@ class UISearchBarTests : RxTest { } func testSearchButtonClicked_DelegateEventCompletesOnDealloc() { - let createView: () -> UISearchBar = { UISearchBar(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UISearchBar = { UISearchBar(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensureEventDeallocated(createView) { (view: UISearchBar) in view.rx_searchButtonClicked } } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/UITabBarItem+RxTests.swift b/Tests/RxCocoaTests/UITabBarItem+RxTests.swift index b3a2165d..1310a728 100644 --- a/Tests/RxCocoaTests/UITabBarItem+RxTests.swift +++ b/Tests/RxCocoaTests/UITabBarItem+RxTests.swift @@ -18,14 +18,14 @@ class UITabBarItemTests : RxTest { extension UITabBarItemTests { func testBadgetValue_Text() { - let subject = UITabBarItem(tabBarSystemItem: .More, tag: 0) + let subject = UITabBarItem(tabBarSystemItem: .more, tag: 0) Observable.just("5").subscribe(subject.rx_badgeValue).dispose() XCTAssertTrue(subject.badgeValue == "5") } func testBadgetValue_Empty() { - let subject = UITabBarItem(tabBarSystemItem: .More, tag: 0) + let subject = UITabBarItem(tabBarSystemItem: .more, tag: 0) Observable.just(nil).subscribe(subject.rx_badgeValue).dispose() XCTAssertTrue(subject.badgeValue == nil) diff --git a/Tests/RxCocoaTests/UITableView+RxTests.swift b/Tests/RxCocoaTests/UITableView+RxTests.swift index 8a83859e..01910b33 100644 --- a/Tests/RxCocoaTests/UITableView+RxTests.swift +++ b/Tests/RxCocoaTests/UITableView+RxTests.swift @@ -13,7 +13,7 @@ import XCTest class UITableViewTests : RxTest { func testTableView_DelegateEventCompletesOnDealloc() { - let createView: () -> UITableView = { UITableView(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UITableView = { UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensureEventDeallocated(createView) { (view: UITableView) in view.rx_itemSelected } ensureEventDeallocated(createView) { (view: UITableView) in view.rx_itemDeselected } @@ -29,94 +29,94 @@ class UITableViewTests : RxTest { } func testTableView_itemSelected() { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil let subscription = tableView.rx_itemSelected .subscribeNext { indexPath in resultIndexPath = indexPath } - let testRow = NSIndexPath(forRow: 1, inSection: 0) - tableView.delegate!.tableView!(tableView, didSelectRowAtIndexPath: testRow) + let testRow = IndexPath(row: 1, section: 0) + tableView.delegate!.tableView!(tableView, didSelectRowAt: testRow) XCTAssertEqual(resultIndexPath, testRow) subscription.dispose() } func testTableView_itemDeselected() { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil let subscription = tableView.rx_itemDeselected .subscribeNext { indexPath in resultIndexPath = indexPath } - let testRow = NSIndexPath(forRow: 1, inSection: 0) - tableView.delegate!.tableView!(tableView, didDeselectRowAtIndexPath: testRow) + let testRow = IndexPath(row: 1, section: 0) + tableView.delegate!.tableView!(tableView, didDeselectRowAt: testRow) XCTAssertEqual(resultIndexPath, testRow) subscription.dispose() } func testTableView_itemAccessoryButtonTapped() { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil let subscription = tableView.rx_itemAccessoryButtonTapped .subscribeNext { indexPath in resultIndexPath = indexPath } - let testRow = NSIndexPath(forRow: 1, inSection: 0) - tableView.delegate!.tableView!(tableView, accessoryButtonTappedForRowWithIndexPath: testRow) + let testRow = IndexPath(row: 1, section: 0) + tableView.delegate!.tableView!(tableView, accessoryButtonTappedForRowWith: testRow) XCTAssertEqual(resultIndexPath, testRow) subscription.dispose() } func testTableView_itemDeleted() { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil let subscription = tableView.rx_itemDeleted .subscribeNext { indexPath in resultIndexPath = indexPath } - let testRow = NSIndexPath(forRow: 1, inSection: 0) - tableView.dataSource!.tableView!(tableView, commitEditingStyle: .Delete, forRowAtIndexPath: testRow) + let testRow = IndexPath(row: 1, section: 0) + tableView.dataSource!.tableView!(tableView, commit: .delete, forRowAt: testRow) XCTAssertEqual(resultIndexPath, testRow) subscription.dispose() } func testTableView_itemInserted() { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil let subscription = tableView.rx_itemInserted .subscribeNext { indexPath in resultIndexPath = indexPath } - let testRow = NSIndexPath(forRow: 1, inSection: 0) - tableView.dataSource!.tableView!(tableView, commitEditingStyle: .Insert, forRowAtIndexPath: testRow) + let testRow = IndexPath(row: 1, section: 0) + tableView.dataSource!.tableView!(tableView, commit: .insert, forRowAt: testRow) XCTAssertEqual(resultIndexPath, testRow) subscription.dispose() } func testTableView_willDisplayCell() { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil var resultCell: UITableViewCell? = nil let subscription = tableView.rx_willDisplayCell @@ -125,9 +125,9 @@ class UITableViewTests : RxTest { resultCell = cell } - let testRow = NSIndexPath(forRow: 1, inSection: 0) + let testRow = IndexPath(row: 1, section: 0) let testCell = UITableViewCell() - tableView.delegate!.tableView!(tableView, willDisplayCell: testCell, forRowAtIndexPath: testRow) + tableView.delegate!.tableView!(tableView, willDisplay: testCell, forRowAt: testRow) XCTAssertEqual(resultIndexPath, testRow) XCTAssertEqual(resultCell, testCell) @@ -135,9 +135,9 @@ class UITableViewTests : RxTest { } func testTableView_didEndDisplayingCell() { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - var resultIndexPath: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil var resultCell: UITableViewCell? = nil let subscription = tableView.rx_didEndDisplayingCell @@ -146,9 +146,9 @@ class UITableViewTests : RxTest { resultCell = cell } - let testRow = NSIndexPath(forRow: 1, inSection: 0) + let testRow = IndexPath(row: 1, section: 0) let testCell = UITableViewCell() - tableView.delegate!.tableView!(tableView, didEndDisplayingCell: testCell, forRowAtIndexPath: testRow) + tableView.delegate!.tableView!(tableView, didEndDisplaying: testCell, forRowAt: testRow) XCTAssertEqual(resultIndexPath, testRow) XCTAssertEqual(resultCell, testCell) @@ -156,10 +156,10 @@ class UITableViewTests : RxTest { } func testTableView_itemMoved() { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) - var resultIndexPath: NSIndexPath? = nil - var resultIndexPath2: NSIndexPath? = nil + var resultIndexPath: IndexPath? = nil + var resultIndexPath2: IndexPath? = nil let subscription = tableView.rx_itemMoved .subscribeNext { (indexPath, indexPath2) in @@ -167,9 +167,9 @@ class UITableViewTests : RxTest { resultIndexPath2 = indexPath2 } - let testRow = NSIndexPath(forRow: 1, inSection: 0) - let testRow2 = NSIndexPath(forRow: 1, inSection: 0) - tableView.dataSource!.tableView!(tableView, moveRowAtIndexPath: testRow, toIndexPath: testRow2) + let testRow = IndexPath(row: 1, section: 0) + let testRow2 = IndexPath(row: 1, section: 0) + tableView.dataSource!.tableView!(tableView, moveRowAt: testRow, to: testRow2) XCTAssertEqual(resultIndexPath, testRow) XCTAssertEqual(resultIndexPath2, testRow2) @@ -180,9 +180,9 @@ class UITableViewTests : RxTest { let items: Observable<[Int]> = Observable.just([1, 2, 3]) let createView: () -> (UITableView, Disposable) = { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) let dataSourceSubscription = items.bindTo(tableView.rx_itemsWithCellFactory) { (tv, index: Int, item: Int) -> UITableViewCell in - return UITableViewCell(style: .Default, reuseIdentifier: "Identity") + return UITableViewCell(style: .default, reuseIdentifier: "Identity") } return (tableView, dataSourceSubscription) @@ -194,8 +194,8 @@ class UITableViewTests : RxTest { let items: Observable<[Int]> = Observable.just([1, 2, 3]) let createView: () -> (UITableView, Disposable) = { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) - tableView.registerClass(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) + tableView.register(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") let dataSourceSubscription = items.bindTo(tableView.rx_itemsWithCellIdentifier("a")) { (index: Int, item: Int, cell) in } @@ -209,8 +209,8 @@ class UITableViewTests : RxTest { let items: Observable<[Int]> = Observable.just([1, 2, 3]) let createView: () -> (UITableView, Disposable) = { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) - tableView.registerClass(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) + tableView.register(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") let dataSourceSubscription = items.bindTo(tableView.rx_itemsWithCellIdentifier("a", cellType: UITableViewCell.self)) { (index: Int, item: Int, cell) in } @@ -224,9 +224,9 @@ class UITableViewTests : RxTest { let items: Observable<[Int]> = Observable.just([1, 2, 3]) let createView: () -> (UITableView, Disposable) = { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) let dataSourceSubscription = items.bindTo(tableView.rx_itemsWithCellFactory) { (tv, index: Int, item: Int) -> UITableViewCell in - return UITableViewCell(style: .Default, reuseIdentifier: "Identity") + return UITableViewCell(style: .default, reuseIdentifier: "Identity") } return (tableView, dataSourceSubscription) @@ -241,7 +241,7 @@ class UITableViewTests : RxTest { selectedItem = item } - tableView.delegate!.tableView!(tableView, didSelectRowAtIndexPath: NSIndexPath(forRow: 1, inSection: 0)) + tableView.delegate!.tableView!(tableView, didSelectRowAt: IndexPath(row: 1, section: 0)) XCTAssertEqual(selectedItem, 2) @@ -253,8 +253,8 @@ class UITableViewTests : RxTest { let items: Observable<[Int]> = Observable.just([1, 2, 3]) let createView: () -> (UITableView, Disposable) = { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) - tableView.registerClass(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) + tableView.register(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") let dataSourceSubscription = items.bindTo(tableView.rx_itemsWithCellIdentifier("a")) { (index: Int, item: Int, cell) in } @@ -271,7 +271,7 @@ class UITableViewTests : RxTest { selectedItem = item } - tableView.delegate!.tableView!(tableView, didSelectRowAtIndexPath: NSIndexPath(forRow: 1, inSection: 0)) + tableView.delegate!.tableView!(tableView, didSelectRowAt: IndexPath(row: 1, section: 0)) XCTAssertEqual(selectedItem, 2) @@ -283,9 +283,9 @@ class UITableViewTests : RxTest { let items: Observable<[Int]> = Observable.just([1, 2, 3]) let createView: () -> (UITableView, Disposable) = { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) let dataSourceSubscription = items.bindTo(tableView.rx_itemsWithCellFactory) { (tv, index: Int, item: Int) -> UITableViewCell in - return UITableViewCell(style: .Default, reuseIdentifier: "Identity") + return UITableViewCell(style: .default, reuseIdentifier: "Identity") } return (tableView, dataSourceSubscription) @@ -300,7 +300,7 @@ class UITableViewTests : RxTest { selectedItem = item } - tableView.delegate!.tableView!(tableView, didDeselectRowAtIndexPath: NSIndexPath(forRow: 1, inSection: 0)) + tableView.delegate!.tableView!(tableView, didDeselectRowAt: IndexPath(row: 1, section: 0)) XCTAssertEqual(selectedItem, 2) @@ -312,8 +312,8 @@ class UITableViewTests : RxTest { let items: Observable<[Int]> = Observable.just([1, 2, 3]) let createView: () -> (UITableView, Disposable) = { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) - tableView.registerClass(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) + tableView.register(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") let dataSourceSubscription = items.bindTo(tableView.rx_itemsWithCellIdentifier("a")) { (index: Int, item: Int, cell) in } @@ -330,7 +330,7 @@ class UITableViewTests : RxTest { selectedItem = item } - tableView.delegate!.tableView!(tableView, didDeselectRowAtIndexPath: NSIndexPath(forRow: 1, inSection: 0)) + tableView.delegate!.tableView!(tableView, didDeselectRowAt: IndexPath(row: 1, section: 0)) XCTAssertEqual(selectedItem, 2) @@ -342,8 +342,8 @@ class UITableViewTests : RxTest { let items: Observable<[Int]> = Observable.just([1, 2, 3]) let createView: () -> (UITableView, Disposable) = { - let tableView = UITableView(frame: CGRectMake(0, 0, 1, 1)) - tableView.registerClass(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") + let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) + tableView.register(NSClassFromString("UITableViewCell"), forCellReuseIdentifier: "a") let dataSource = SectionedViewDataSourceMock() let dataSourceSubscription = items.bindTo(tableView.rx_itemsWithDataSource(dataSource)) @@ -352,7 +352,7 @@ class UITableViewTests : RxTest { let (tableView, dataSourceSubscription) = createView() - let model: Int = try! tableView.rx_modelAtIndexPath(NSIndexPath(forItem: 1, inSection: 0)) + let model: Int = try! tableView.rx_modelAtIndexPath(IndexPath(item: 1, section: 0)) XCTAssertEqual(model, 2) @@ -364,4 +364,4 @@ extension UITableViewTests { func testItemSelected() { } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/UITextField+RxTests.swift b/Tests/RxCocoaTests/UITextField+RxTests.swift index e96b0c2e..03b38af1 100644 --- a/Tests/RxCocoaTests/UITextField+RxTests.swift +++ b/Tests/RxCocoaTests/UITextField+RxTests.swift @@ -22,9 +22,9 @@ class UITextFieldTests : RxTest { textField.text = "Text1" textField.set = false - textField.rx_text.on(.Next("Text1")) + textField.rx_text.on(.next("Text1")) XCTAssertTrue(!textField.set) - textField.rx_text.on(.Next("Text2")) + textField.rx_text.on(.next("Text2")) XCTAssertTrue(textField.set) } } diff --git a/Tests/RxCocoaTests/UITextView+RxTests.swift b/Tests/RxCocoaTests/UITextView+RxTests.swift index 4fc8a0c6..e32ff972 100644 --- a/Tests/RxCocoaTests/UITextView+RxTests.swift +++ b/Tests/RxCocoaTests/UITextView+RxTests.swift @@ -14,7 +14,7 @@ import XCTest // UITextView class UITextViewTests : RxTest { func testText_DelegateEventCompletesOnDealloc() { - let createView: () -> UITextView = { UITextView(frame: CGRectMake(0, 0, 1, 1)) } + let createView: () -> UITextView = { UITextView(frame: CGRect(x: 0, y: 0, width: 1, height: 1)) } ensurePropertyDeallocated(createView, "text") { (view: UITextView) in view.rx_text } } @@ -23,9 +23,9 @@ class UITextViewTests : RxTest { textView.text = "Text1" textView.set = false - textView.rx_text.on(.Next("Text1")) + textView.rx_text.on(.next("Text1")) XCTAssertTrue(!textView.set) - textView.rx_text.on(.Next("Text2")) + textView.rx_text.on(.next("Text2")) XCTAssertTrue(textView.set) } } @@ -42,4 +42,4 @@ class UITextViewSubclass2 : UITextView { super.text = newValue } } -} \ No newline at end of file +} diff --git a/Tests/RxCocoaTests/UIView+RxTests.swift b/Tests/RxCocoaTests/UIView+RxTests.swift index 1e7777cc..16a23474 100644 --- a/Tests/RxCocoaTests/UIView+RxTests.swift +++ b/Tests/RxCocoaTests/UIView+RxTests.swift @@ -21,14 +21,14 @@ extension UIViewTests { let subject = UIView(frame: CGRect.zero) Observable.just(true).subscribe(subject.rx_hidden).dispose() - XCTAssertTrue(subject.hidden == true) + XCTAssertTrue(subject.isHidden == true) } func testEnabled_False() { let subject = UIView(frame: CGRect.zero) Observable.just(false).subscribe(subject.rx_hidden).dispose() - XCTAssertTrue(subject.hidden == false) + XCTAssertTrue(subject.isHidden == false) } } @@ -46,4 +46,4 @@ extension UIViewTests { XCTAssertTrue(subject.alpha == 1.0) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/TestImplementations/Mocks/BackgroundThreadPrimitiveHotObservable.swift b/Tests/RxSwiftTests/TestImplementations/Mocks/BackgroundThreadPrimitiveHotObservable.swift index 7ed0441b..e624e9cd 100644 --- a/Tests/RxSwiftTests/TestImplementations/Mocks/BackgroundThreadPrimitiveHotObservable.swift +++ b/Tests/RxSwiftTests/TestImplementations/Mocks/BackgroundThreadPrimitiveHotObservable.swift @@ -11,8 +11,8 @@ import RxSwift import XCTest class BackgroundThreadPrimitiveHotObservable : PrimitiveHotObservable { - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { XCTAssertTrue(!isMainThread()) return super.subscribe(observer) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/TestImplementations/Mocks/MainThreadPrimitiveHotObservable.swift b/Tests/RxSwiftTests/TestImplementations/Mocks/MainThreadPrimitiveHotObservable.swift index 6f70da88..916bdd50 100644 --- a/Tests/RxSwiftTests/TestImplementations/Mocks/MainThreadPrimitiveHotObservable.swift +++ b/Tests/RxSwiftTests/TestImplementations/Mocks/MainThreadPrimitiveHotObservable.swift @@ -11,8 +11,8 @@ import RxSwift import XCTest class MainThreadPrimitiveHotObservable : PrimitiveHotObservable { - override func subscribe(observer: O) -> Disposable { + override func subscribe(_ observer: O) -> Disposable { XCTAssertTrue(isMainThread()) return super.subscribe(observer) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/TestImplementations/Mocks/MySubject.swift b/Tests/RxSwiftTests/TestImplementations/Mocks/MySubject.swift index 38372a8b..9115e157 100644 --- a/Tests/RxSwiftTests/TestImplementations/Mocks/MySubject.swift +++ b/Tests/RxSwiftTests/TestImplementations/Mocks/MySubject.swift @@ -26,14 +26,14 @@ class MySubject : SubjectType, ObserverType { return _disposed } - func disposeOn(value: Element, disposable: Disposable) { + func disposeOn(_ value: Element, disposable: Disposable) { _disposeOn[value] = disposable } - func on(event: Event) { + func on(_ event: Event) { _observer.on(event) switch event { - case .Next(let value): + case .next(let value): if let disposable = _disposeOn[value] { disposable.dispose() } @@ -41,7 +41,7 @@ class MySubject : SubjectType, ObserverType { } } - func subscribe(observer: O) -> Disposable { + func subscribe(_ observer: O) -> Disposable { _subscribeCount += 1 _observer = AnyObserver(observer) @@ -54,4 +54,4 @@ class MySubject : SubjectType, ObserverType { func asObserver() -> MySubject { return self } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveHotObservable.swift b/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveHotObservable.swift index bd70da42..ef9229cb 100644 --- a/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveHotObservable.swift +++ b/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveHotObservable.swift @@ -22,20 +22,20 @@ class PrimitiveHotObservable : ObservableType { var subscriptions: [Subscription] var observers: Bag> - let lock = NSRecursiveLock() + let lock = RecursiveLock() init() { self.subscriptions = [] self.observers = Bag() } - func on(event: Event) { + func on(_ event: Event) { lock.lock() defer { lock.unlock() } observers.on(event) } - func subscribe(observer: O) -> Disposable { + func subscribe(_ observer: O) -> Disposable { lock.lock() defer { lock.unlock() } diff --git a/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveMockObserver.swift b/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveMockObserver.swift index 2a3e8542..484f8c2b 100644 --- a/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveMockObserver.swift +++ b/Tests/RxSwiftTests/TestImplementations/Mocks/PrimitiveMockObserver.swift @@ -19,7 +19,7 @@ class PrimitiveMockObserver : ObserverType { self.events = [] } - func on(event: Event) { + func on(_ event: Event) { events.append(Recorded(time: 0, event: event)) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/TestImplementations/Mocks/TestConnectableObservable.swift b/Tests/RxSwiftTests/TestImplementations/Mocks/TestConnectableObservable.swift index b0fd98bb..19e6b71b 100644 --- a/Tests/RxSwiftTests/TestImplementations/Mocks/TestConnectableObservable.swift +++ b/Tests/RxSwiftTests/TestImplementations/Mocks/TestConnectableObservable.swift @@ -22,7 +22,7 @@ class TestConnectableObservable(observer: O) -> Disposable { + func subscribe(_ observer: O) -> Disposable { return _o.subscribe(observer) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift b/Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift index 733f904a..fad64b9d 100644 --- a/Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift +++ b/Tests/RxSwiftTests/TestImplementations/TestVirtualScheduler.swift @@ -25,29 +25,29 @@ struct TestVirtualSchedulerVirtualTimeConverter : VirtualTimeConverterType { typealias VirtualTimeUnit = Int typealias VirtualTimeIntervalUnit = Int - func convertFromVirtualTime(virtualTime: VirtualTimeUnit) -> RxTime { - return NSDate(timeIntervalSince1970: RxTimeInterval(virtualTime) * 10.0) + func convertFromVirtualTime(_ virtualTime: VirtualTimeUnit) -> RxTime { + return Date(timeIntervalSince1970: RxTimeInterval(virtualTime) * 10.0) } - func convertToVirtualTime(time: RxTime) -> VirtualTimeUnit { + func convertToVirtualTime(_ time: RxTime) -> VirtualTimeUnit { return Int(time.timeIntervalSince1970 / 10.0) } - func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { + func convertFromVirtualTimeInterval(_ virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval { return RxTimeInterval(virtualTimeInterval * 10) } - func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { + func convertToVirtualTimeInterval(_ timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit { return Int(timeInterval / 10.0) } - func offsetVirtualTime(time time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { + func offsetVirtualTime(time: VirtualTimeUnit, offset: VirtualTimeIntervalUnit) -> VirtualTimeUnit { return time + offset } - func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { + func compareVirtualTime(_ lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison { if lhs < rhs { - return .LessThan + return .lessThan } else if lhs > rhs { return .GreaterThan @@ -56,4 +56,4 @@ struct TestVirtualSchedulerVirtualTimeConverter : VirtualTimeConverterType { return .Equal } } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/AnonymousObservable+Test.swift b/Tests/RxSwiftTests/Tests/AnonymousObservable+Test.swift index 85e76764..ea5caf49 100644 --- a/Tests/RxSwiftTests/Tests/AnonymousObservable+Test.swift +++ b/Tests/RxSwiftTests/Tests/AnonymousObservable+Test.swift @@ -30,12 +30,12 @@ extension AnonymousObservableTests { XCTAssertEqual(elements, []) - observer.on(.Next(0)) + observer.on(.next(0)) XCTAssertEqual(elements, [0]) d.dispose() - observer.on(.Next(1)) + observer.on(.next(1)) XCTAssertEqual(elements, [0]) } @@ -54,12 +54,12 @@ extension AnonymousObservableTests { XCTAssertEqual(elements, []) - observer.on(.Next(0)) + observer.on(.next(0)) XCTAssertEqual(elements, [0]) - observer.on(.Completed) + observer.on(.completed) - observer.on(.Next(1)) + observer.on(.next(1)) XCTAssertEqual(elements, [0]) } @@ -78,12 +78,12 @@ extension AnonymousObservableTests { XCTAssertEqual(elements, []) - observer.on(.Next(0)) + observer.on(.next(0)) XCTAssertEqual(elements, [0]) observer.on(.Error(testError)) - observer.on(.Next(1)) + observer.on(.next(1)) XCTAssertEqual(elements, [0]) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/AssumptionsTest.swift b/Tests/RxSwiftTests/Tests/AssumptionsTest.swift index 4c268e02..34adf222 100644 --- a/Tests/RxSwiftTests/Tests/AssumptionsTest.swift +++ b/Tests/RxSwiftTests/Tests/AssumptionsTest.swift @@ -114,7 +114,7 @@ class AssumptionsTest : RxTest { class Anything { var elements = [Int]() - func justCallIt(action: () -> Void) { + func justCallIt(_ action: () -> Void) { clearRealTest() action() } diff --git a/Tests/RxSwiftTests/Tests/BagTest.swift b/Tests/RxSwiftTests/Tests/BagTest.swift index ed97f48d..77daa6f8 100644 --- a/Tests/RxSwiftTests/Tests/BagTest.swift +++ b/Tests/RxSwiftTests/Tests/BagTest.swift @@ -20,7 +20,7 @@ extension BagTest { typealias DoSomething = () -> Void typealias KeyType = Bag.KeyType - func numberOfActionsAfter(nInsertions: Int, deletionsFromStart: Int, createNew: () -> T, bagAction: (RxMutableBox>) -> ()) { + func numberOfActionsAfter(_ nInsertions: Int, deletionsFromStart: Int, createNew: () -> T, bagAction: (RxMutableBox>) -> ()) { let bag = RxMutableBox(Bag()) var keys = [KeyType]() @@ -52,7 +52,7 @@ extension BagTest { numberOfActionsAfter(i, deletionsFromStart: j, createNew: { () -> AnyObserver in AnyObserver { _ in numberObservers += 1 } }, - bagAction: { (bag: RxMutableBox>>) in bag.value.on(.Next(1)); XCTAssertTrue(bag.value.count == i - j) } + bagAction: { (bag: RxMutableBox>>) in bag.value.on(.next(1)); XCTAssertTrue(bag.value.count == i - j) } ) numberOfActionsAfter(i, deletionsFromStart: j, @@ -67,7 +67,7 @@ extension BagTest { } } - func numberOfActionsAfter(nInsertions: Int, deletionsFromEnd: Int, createNew: () -> T, bagAction: (RxMutableBox>) -> ()) { + func numberOfActionsAfter(_ nInsertions: Int, deletionsFromEnd: Int, createNew: () -> T, bagAction: (RxMutableBox>) -> ()) { let bag = RxMutableBox(Bag()) var keys = [KeyType]() @@ -99,7 +99,7 @@ extension BagTest { numberOfActionsAfter(i, deletionsFromStart: j, createNew: { () -> AnyObserver in AnyObserver { _ in numberObservers += 1 } }, - bagAction: { (bag: RxMutableBox>>) in bag.value.on(.Next(1)); XCTAssertTrue(bag.value.count == i - j) } + bagAction: { (bag: RxMutableBox>>) in bag.value.on(.next(1)); XCTAssertTrue(bag.value.count == i - j) } ) numberOfActionsAfter(i, deletionsFromStart: j, @@ -150,7 +150,7 @@ extension BagTest { c() } - bag2.value.on(.Next(1)) + bag2.value.on(.next(1)) disposeAllIn(bag3.value) } @@ -172,7 +172,7 @@ extension BagTest { numberOfActionsAfter(100, deletionsFromStart: 0, createNew: { () -> AnyObserver in AnyObserver { _ in numberObservers += 1 } }, - bagAction: { (bag: RxMutableBox>>) in bag.value.removeAll(); bag.value.on(.Next(1)); } + bagAction: { (bag: RxMutableBox>>) in bag.value.removeAll(); bag.value.on(.next(1)); } ) numberOfActionsAfter(100, deletionsFromStart: 0, @@ -218,4 +218,4 @@ extension BagTest { bag.removeKey(keys[limit - 1 - i]) } } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/HistoricalSchedulerTest.swift b/Tests/RxSwiftTests/Tests/HistoricalSchedulerTest.swift index 806a2595..bec26225 100644 --- a/Tests/RxSwiftTests/Tests/HistoricalSchedulerTest.swift +++ b/Tests/RxSwiftTests/Tests/HistoricalSchedulerTest.swift @@ -16,15 +16,15 @@ class HistoricalSchedulerTest : RxTest { extension HistoricalSchedulerTest { func testHistoricalScheduler_initialClock() { - let scheduler = HistoricalScheduler(initialClock: NSDate(timeIntervalSince1970: 10.0)) - XCTAssertEqual(scheduler.now, NSDate(timeIntervalSince1970: 10.0)) - XCTAssertEqual(scheduler.clock, NSDate(timeIntervalSince1970: 10.0)) + let scheduler = HistoricalScheduler(initialClock: Date(timeIntervalSince1970: 10.0)) + XCTAssertEqual(scheduler.now, Date(timeIntervalSince1970: 10.0)) + XCTAssertEqual(scheduler.clock, Date(timeIntervalSince1970: 10.0)) } func testHistoricalScheduler_start() { let scheduler = HistoricalScheduler() - var times: [NSDate] = [] + var times: [Date] = [] scheduler.scheduleRelative((), dueTime: 10.0) { _ in times.append(scheduler.now) @@ -41,16 +41,16 @@ extension HistoricalSchedulerTest { scheduler.start() XCTAssertEqual(times, [ - NSDate(timeIntervalSince1970: 10.0), - NSDate(timeIntervalSince1970: 10.0), - NSDate(timeIntervalSince1970: 30.0) + Date(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 30.0) ]) } func testHistoricalScheduler_disposeStart() { let scheduler = HistoricalScheduler() - var times: [NSDate] = [] + var times: [Date] = [] scheduler.scheduleRelative((), dueTime: 10.0) { _ in times.append(scheduler.now) @@ -71,14 +71,14 @@ extension HistoricalSchedulerTest { scheduler.start() XCTAssertEqual(times, [ - NSDate(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 10.0), ]) } func testHistoricalScheduler_advanceToAfter() { let scheduler = HistoricalScheduler() - var times: [NSDate] = [] + var times: [Date] = [] scheduler.scheduleRelative((), dueTime: 10.0) { _ in times.append(scheduler.now) @@ -92,19 +92,19 @@ extension HistoricalSchedulerTest { } } - scheduler.advanceTo(NSDate(timeIntervalSince1970: 100.0)) + scheduler.advanceTo(Date(timeIntervalSince1970: 100.0)) XCTAssertEqual(times, [ - NSDate(timeIntervalSince1970: 10.0), - NSDate(timeIntervalSince1970: 10.0), - NSDate(timeIntervalSince1970: 30.0) + Date(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 30.0) ]) } func testHistoricalScheduler_advanceToBefore() { let scheduler = HistoricalScheduler() - var times: [NSDate] = [] + var times: [Date] = [] scheduler.scheduleRelative((), dueTime: 10.0) { [weak scheduler] _ in times.append(scheduler!.now) @@ -118,18 +118,18 @@ extension HistoricalSchedulerTest { } } - scheduler.advanceTo(NSDate(timeIntervalSince1970: 10.0)) + scheduler.advanceTo(Date(timeIntervalSince1970: 10.0)) XCTAssertEqual(times, [ - NSDate(timeIntervalSince1970: 10.0), - NSDate(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 10.0), ]) } func testHistoricalScheduler_disposeAdvanceTo() { let scheduler = HistoricalScheduler() - var times: [NSDate] = [] + var times: [Date] = [] scheduler.scheduleRelative((), dueTime: 10.0) { [weak scheduler] _ in times.append(scheduler!.now) @@ -147,17 +147,17 @@ extension HistoricalSchedulerTest { return NopDisposable.instance } - scheduler.advanceTo(NSDate(timeIntervalSince1970: 200.0)) + scheduler.advanceTo(Date(timeIntervalSince1970: 200.0)) XCTAssertEqual(times, [ - NSDate(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 10.0), ]) } func testHistoricalScheduler_stop() { let scheduler = HistoricalScheduler() - var times: [NSDate] = [] + var times: [Date] = [] scheduler.scheduleRelative((), dueTime: 10.0) { [weak scheduler] _ in times.append(scheduler!.now) @@ -178,14 +178,14 @@ extension HistoricalSchedulerTest { scheduler.start() XCTAssertEqual(times, [ - NSDate(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 10.0), ]) } func testHistoricalScheduler_sleep() { let scheduler = HistoricalScheduler() - var times: [NSDate] = [] + var times: [Date] = [] scheduler.scheduleRelative((), dueTime: 10.0) { [weak scheduler] _ in times.append(scheduler!.now) @@ -207,9 +207,9 @@ extension HistoricalSchedulerTest { scheduler.start() XCTAssertEqual(times, [ - NSDate(timeIntervalSince1970: 10.0), - NSDate(timeIntervalSince1970: 110.0), - NSDate(timeIntervalSince1970: 130.0), + Date(timeIntervalSince1970: 10.0), + Date(timeIntervalSince1970: 110.0), + Date(timeIntervalSince1970: 130.0), ]) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/MainSchedulerTests.swift b/Tests/RxSwiftTests/Tests/MainSchedulerTests.swift index 7615ee34..8a6549c4 100644 --- a/Tests/RxSwiftTests/Tests/MainSchedulerTests.swift +++ b/Tests/RxSwiftTests/Tests/MainSchedulerTests.swift @@ -19,7 +19,7 @@ extension MainSchedulerTest { func runRunLoop() { for _ in 0 ..< 10 { let currentRunLoop = CFRunLoopGetCurrent() - dispatch_async(dispatch_get_main_queue()) { + DispatchQueue.main.async { CFRunLoopStop(currentRunLoop) } @@ -104,4 +104,4 @@ extension MainSchedulerTest { XCTAssertEqual(messages, [1, 2]) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/Observable+BindingTest.swift b/Tests/RxSwiftTests/Tests/Observable+BindingTest.swift index 0b741218..4477879e 100644 --- a/Tests/RxSwiftTests/Tests/Observable+BindingTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+BindingTest.swift @@ -347,21 +347,21 @@ extension ObservableBindingTest { let res = xs.publish().refCount() _ = res.subscribe { event in switch event { - case .Next: + case .next: XCTAssertTrue(false) case .Error(let error): XCTAssertErrorEqual(error, testError) - case .Completed: + case .completed: XCTAssertTrue(false) } } _ = res.subscribe { event in switch event { - case .Next: + case .next: XCTAssertTrue(false) case .Error(let error): XCTAssertErrorEqual(error, testError) - case .Completed: + case .completed: XCTAssertTrue(false) } } @@ -1077,7 +1077,7 @@ extension ObservableBindingTest { // shareReplay(1) extension ObservableBindingTest { - func _testIdenticalBehaviorOfShareReplayOptimizedAndComposed(action: (transform: (Observable -> Observable)) -> Void) { + func _testIdenticalBehaviorOfShareReplayOptimizedAndComposed(_ action: (transform: ((Observable) -> Observable)) -> Void) { action { $0.shareReplay(1) } action { $0.replay(1).refCount() } } @@ -1630,4 +1630,4 @@ extension ObservableBindingTest { ]) } } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift b/Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift index 046827ef..623ac49c 100644 --- a/Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+BlockingTest.swift @@ -40,7 +40,7 @@ extension ObservableBlockingTest { } func testToArray_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(10) @@ -52,7 +52,7 @@ extension ObservableBlockingTest { func testToArray_independent() { for i in 0 ..< 10 { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) func operation1()->Observable{ return Observable.of(1, 2).subscribeOn(scheduler) @@ -97,7 +97,7 @@ extension ObservableBlockingTest { } func testFirst_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(10) @@ -109,7 +109,7 @@ extension ObservableBlockingTest { func testFirst_independent() { for i in 0 ..< 10 { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) func operation1()->Observable{ return Observable.just(1).subscribeOn(scheduler) @@ -154,7 +154,7 @@ extension ObservableBlockingTest { } func testLast_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(10) @@ -166,7 +166,7 @@ extension ObservableBlockingTest { func testLast_independent() { for i in 0 ..< 10 { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Background) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .background) func operation1()->Observable{ return Observable.just(1).subscribeOn(scheduler) @@ -195,7 +195,7 @@ extension ObservableBlockingTest { XCTFail() } catch let e { - XCTAssertTrue((e as! RxError)._code == RxError.NoElements._code) + XCTAssertTrue((e as! RxError)._code == RxError.noElements._code) } } @@ -209,7 +209,7 @@ extension ObservableBlockingTest { XCTFail() } catch let e { - XCTAssertTrue((e as! RxError)._code == RxError.MoreThanOneElement._code) + XCTAssertTrue((e as! RxError)._code == RxError.moreThanOneElement._code) } } @@ -219,7 +219,7 @@ extension ObservableBlockingTest { XCTFail() } catch let e { - XCTAssertTrue((e as! RxError)._code == RxError.MoreThanOneElement._code) + XCTAssertTrue((e as! RxError)._code == RxError.moreThanOneElement._code) } } @@ -234,7 +234,7 @@ extension ObservableBlockingTest { } func testSingle_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(1) @@ -251,7 +251,7 @@ extension ObservableBlockingTest { XCTFail() } catch let e { - XCTAssertTrue((e as! RxError)._code == RxError.NoElements._code) + XCTAssertTrue((e as! RxError)._code == RxError.noElements._code) } } @@ -283,7 +283,7 @@ extension ObservableBlockingTest { XCTFail() } catch let e { - XCTAssertTrue((e as! RxError)._code == RxError.MoreThanOneElement._code) + XCTAssertTrue((e as! RxError)._code == RxError.moreThanOneElement._code) } XCTAssertEqual(predicateVals, [42, 43, 44]) } @@ -299,7 +299,7 @@ extension ObservableBlockingTest { XCTFail() } catch let e { - XCTAssertTrue((e as! RxError)._code == RxError.NoElements._code) + XCTAssertTrue((e as! RxError)._code == RxError.noElements._code) } XCTAssertEqual(predicateVals, [42, 43, 44, 45]) } @@ -331,7 +331,7 @@ extension ObservableBlockingTest { } func testSingle_predicate_withRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) let array = try! Observable.interval(0.001, scheduler: scheduler) .take(4) @@ -343,7 +343,7 @@ extension ObservableBlockingTest { func testSingle_independent() { for i in 0 ..< 10 { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) func operation1()->Observable{ return Observable.just(1).subscribeOn(scheduler) diff --git a/Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift b/Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift index 93f26241..14cbcca3 100644 --- a/Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+ConcurrencyTest.swift @@ -13,9 +13,9 @@ import RxBlocking import RxTests class ObservableConcurrencyTestBase : RxTest { - var lock = NSLock() + var lock = Lock() - func performLocked(action: () -> Void) { + func performLocked(_ action: () -> Void) { lock.lock() action() lock.unlock() @@ -32,29 +32,29 @@ class ObservableConcurrencyTest : ObservableConcurrencyTestBase { // observeOn serial scheduler extension ObservableConcurrencyTest { - func runDispatchQueueSchedulerTests(tests: (scheduler: SerialDispatchQueueScheduler) -> Disposable) { + func runDispatchQueueSchedulerTests(_ tests: (scheduler: SerialDispatchQueueScheduler) -> Disposable) { let scheduler = SerialDispatchQueueScheduler(internalSerialQueueName: "testQueue1") runDispatchQueueSchedulerTests(scheduler, tests: tests).dispose() } - func runDispatchQueueSchedulerTests(scheduler: SerialDispatchQueueScheduler, tests: (scheduler: SerialDispatchQueueScheduler) -> Disposable) -> Disposable { + func runDispatchQueueSchedulerTests(_ scheduler: SerialDispatchQueueScheduler, tests: (scheduler: SerialDispatchQueueScheduler) -> Disposable) -> Disposable { // simplest possible solution, even though it has horrible efficiency in this case probably let disposable = tests(scheduler: scheduler) - let expectation = self.expectationWithDescription("Wait for all tests to complete") + let expectation = self.expectation(withDescription: "Wait for all tests to complete") scheduler.schedule(()) { s in expectation.fulfill() return NopDisposable.instance } - waitForExpectationsWithTimeout(1.0) { e in + waitForExpectations(withTimeout: 1.0) { e in XCTAssertTrue(e == nil, "Everything not completed in 1.0 sec.") } return disposable } - func runDispatchQueueSchedulerMultiplexedTests(tests: [(scheduler: SerialDispatchQueueScheduler) -> Disposable]) { + func runDispatchQueueSchedulerMultiplexedTests(_ tests: [(scheduler: SerialDispatchQueueScheduler) -> Disposable]) { let scheduler = SerialDispatchQueueScheduler(internalSerialQueueName: "testQueue1") let compositeDisposable = CompositeDisposable() @@ -69,7 +69,7 @@ extension ObservableConcurrencyTest { // tests func testObserveOnDispatchQueue_DoesPerformWorkOnQueue() { - let unitTestsThread = NSThread.currentThread() + let unitTestsThread = Thread.current() var didExecute = false @@ -78,7 +78,7 @@ extension ObservableConcurrencyTest { .observeOn(scheduler) return observable .subscribeNext { n in didExecute = true - XCTAssert(NSThread.currentThread() !== unitTestsThread) + XCTAssert(Thread.current() !== unitTestsThread) } } @@ -169,7 +169,7 @@ extension ObservableConcurrencyTest { { scheduler in let subscription = (xs.observeOn(scheduler)).subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Next(0)) + xs.on(.next(0)) return subscription }, @@ -177,8 +177,8 @@ extension ObservableConcurrencyTest { XCTAssertEqual(observer.events, [ next(0) ]) - xs.on(.Next(1)) - xs.on(.Next(2)) + xs.on(.next(1)) + xs.on(.next(2)) return NopDisposable.instance }, { scheduler in @@ -188,7 +188,7 @@ extension ObservableConcurrencyTest { next(2) ]) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Completed) + xs.on(.completed) return NopDisposable.instance }, { scheduler in @@ -212,7 +212,7 @@ extension ObservableConcurrencyTest { { scheduler in let subscription = (xs.observeOn(scheduler)).subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Completed) + xs.on(.completed) return subscription }, { scheduler in @@ -233,7 +233,7 @@ extension ObservableConcurrencyTest { { scheduler in let subscription = (xs.observeOn(scheduler)).subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Next(0)) + xs.on(.next(0)) return subscription }, @@ -241,8 +241,8 @@ extension ObservableConcurrencyTest { XCTAssertEqual(observer.events, [ next(0) ]) - xs.on(.Next(1)) - xs.on(.Next(2)) + xs.on(.next(1)) + xs.on(.next(2)) return NopDisposable.instance }, { scheduler in @@ -277,7 +277,7 @@ extension ObservableConcurrencyTest { { scheduler in subscription = (xs.observeOn(scheduler)).subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Next(0)) + xs.on(.next(0)) return subscription }, @@ -309,7 +309,7 @@ extension ObservableConcurrencyTest { class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBase { func createScheduler() -> ImmediateSchedulerType { - let operationQueue = NSOperationQueue() + let operationQueue = OperationQueue() operationQueue.maxConcurrentOperationCount = 8 return OperationQueueScheduler(operationQueue: operationQueue) } @@ -332,7 +332,7 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas let scheduler = createScheduler() - let condition = NSCondition() + let condition = Condition() var writtenStarted = 0 var writtenEnded = 0 @@ -362,7 +362,7 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas } condition.unlock() - stop.on(.Completed) + stop.on(.completed) return NopDisposable.instance } @@ -399,15 +399,15 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas let subscription = (xs.observeOn(scheduler)).subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Next(0)) + xs.on(.next(0)) sleep(0.1) XCTAssertEqual(observer.events, [ next(0) ]) - xs.on(.Next(1)) - xs.on(.Next(2)) + xs.on(.next(1)) + xs.on(.next(2)) sleep(0.1) @@ -417,7 +417,7 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas next(2) ]) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Completed) + xs.on(.completed) sleep(0.1) @@ -443,7 +443,7 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas xs.observeOn(scheduler).subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Completed) + xs.on(.completed) sleep(0.1) @@ -473,9 +473,9 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas let subscription = res.subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Next(0)) - xs.on(.Next(1)) - xs.on(.Completed) + xs.on(.next(0)) + xs.on(.next(1)) + xs.on(.completed) sleep(0.3) @@ -500,15 +500,15 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas xs.observeOn(scheduler).subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Next(0)) + xs.on(.next(0)) sleep(0.1) XCTAssertEqual(observer.events, [ next(0) ]) - xs.on(.Next(1)) - xs.on(.Next(2)) + xs.on(.next(1)) + xs.on(.next(2)) sleep(0.1) @@ -539,7 +539,7 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas let scheduler = createScheduler() let subscription = xs.observeOn(scheduler).subscribe(observer) XCTAssert(xs.subscriptions == [SubscribedToHotObservable]) - xs.on(.Next(0)) + xs.on(.next(0)) sleep(0.1) @@ -564,7 +564,7 @@ class ObservableConcurrentSchedulerConcurrencyTest: ObservableConcurrencyTestBas class ObservableConcurrentSchedulerConcurrencyTest2 : ObservableConcurrentSchedulerConcurrencyTest { override func createScheduler() -> ImmediateSchedulerType { - return ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + return ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) } } diff --git a/Tests/RxSwiftTests/Tests/Observable+CreationTest.swift b/Tests/RxSwiftTests/Tests/Observable+CreationTest.swift index ac3f4614..bf06c6a3 100644 --- a/Tests/RxSwiftTests/Tests/Observable+CreationTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+CreationTest.swift @@ -66,7 +66,7 @@ extension ObservableCreationTests { res.on(e) switch e { - case .Next: + case .next: d.dispose() default: break @@ -547,4 +547,4 @@ extension ObservableCreationTests { 200 ]) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift b/Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift index 240dfe66..8f105c3d 100644 --- a/Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift @@ -918,7 +918,7 @@ extension ObservableMultipleTest { // this generates // [generator(0), [generator(1), [generator(2), ..].concat()].concat()].concat() -func generateCollection(startIndex: Int, _ generator: Int -> Observable) -> Observable { +func generateCollection(_ startIndex: Int, _ generator: (Int) -> Observable) -> Observable { let all = [0, 1].lazy.map { i in return i == 0 ? generator(startIndex) : generateCollection(startIndex + 1, generator) } @@ -928,7 +928,7 @@ func generateCollection(startIndex: Int, _ generator: Int -> Observable) - // this generates // [generator(0), [generator(1), [generator(2), ..].concat()].concat()].concat() // This should -func generateSequence(startIndex: Int, _ generator: Int -> Observable) -> Observable { +func generateSequence(_ startIndex: Int, _ generator: (Int) -> Observable) -> Observable { let all = AnySequence([0, 1].lazy.map { i in return i == 0 ? generator(startIndex) : generateSequence(startIndex + 1, generator) }) @@ -4621,4 +4621,4 @@ extension ObservableMultipleTest { Subscription(200, 400) ]) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/Observable+SingleTest.swift b/Tests/RxSwiftTests/Tests/Observable+SingleTest.swift index 0d51ac77..1e1eada5 100644 --- a/Tests/RxSwiftTests/Tests/Observable+SingleTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+SingleTest.swift @@ -289,7 +289,7 @@ extension ObservableSingleTest { var sum = 2 + 3 + 4 + 5 let res = scheduler.start { xs.doOn { e in switch e { - case .Next: + case .next: i += 1 sum -= e.element ?? 0 @@ -332,7 +332,7 @@ extension ObservableSingleTest { var i = 0 let res = scheduler.start { xs.doOn { e in switch e { - case .Next(_): + case .next(_): i += 1 default: break } @@ -374,10 +374,10 @@ extension ObservableSingleTest { var completedEvaluation = false let res = scheduler.start { xs.doOn { e in switch e { - case .Next(let value): + case .next(let value): i += 1 sum -= value - case .Completed: + case .completed: completedEvaluation = true default: break } @@ -416,9 +416,9 @@ extension ObservableSingleTest { var completedEvaluation = false let res = scheduler.start { xs.doOn { e in switch e { - case .Next(_): + case .next(_): i += 1 - case .Completed: + case .completed: completedEvaluation = true default: break } @@ -456,7 +456,7 @@ extension ObservableSingleTest { var sawError = false let res = scheduler.start { xs.doOn { e in switch e { - case .Next(let value): + case .next(let value): i += 1 sum -= value case .Error: @@ -503,7 +503,7 @@ extension ObservableSingleTest { var sawError = false let res = scheduler.start { xs.doOn { e in switch e { - case .Next(let value): + case .next(let value): i += 1 sum -= value case .Error: @@ -973,17 +973,17 @@ extension ObservableSingleTest { func testRetry_tailRecursiveOptimizationsTest() { var count = 1 let sequenceSendingImmediateError: Observable = Observable.create { observer in - observer.on(.Next(0)) - observer.on(.Next(1)) - observer.on(.Next(2)) + observer.on(.next(0)) + observer.on(.next(1)) + observer.on(.next(2)) if count < 2 { observer.on(.Error(testError)) count += 1 } - observer.on(.Next(3)) - observer.on(.Next(4)) - observer.on(.Next(5)) - observer.on(.Completed) + observer.on(.next(3)) + observer.on(.next(4)) + observer.on(.next(5)) + observer.on(.completed) return NopDisposable.instance } @@ -1305,7 +1305,7 @@ extension ObservableSingleTest { let maxAttempts = 4 let res = scheduler.start(800) { - xs.retryWhen { (errors: Observable) in + xs.retryWhen { (errors: Observable) in return errors.flatMapWithIndex { (e, a) -> Observable in if a >= maxAttempts - 1 { return Observable.error(e) @@ -1365,17 +1365,17 @@ extension ObservableSingleTest { func testRetryWhen_tailRecursiveOptimizationsTest() { var count = 1 let sequenceSendingImmediateError: Observable = Observable.create { observer in - observer.on(.Next(0)) - observer.on(.Next(1)) - observer.on(.Next(2)) + observer.on(.next(0)) + observer.on(.next(1)) + observer.on(.next(2)) if count < 2 { observer.on(.Error(testError)) count += 1 } - observer.on(.Next(3)) - observer.on(.Next(4)) - observer.on(.Next(5)) - observer.on(.Completed) + observer.on(.next(3)) + observer.on(.next(4)) + observer.on(.next(5)) + observer.on(.completed) return NopDisposable.instance } diff --git a/Tests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift b/Tests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift index 31f0858d..e30baacd 100644 --- a/Tests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift @@ -24,7 +24,7 @@ class ObservableStandardSequenceOperatorsTest : RxTest { } } -func isPrime(i: Int) -> Bool { +func isPrime(_ i: Int) -> Bool { if i <= 1 { return false } @@ -3640,7 +3640,7 @@ extension ObservableStandardSequenceOperatorsTest { let k = BehaviorSubject(value: false) _ = k.take(1).subscribeNext { n in - k.on(.Next(!n)) + k.on(.next(!n)) } } } @@ -3890,10 +3890,10 @@ extension ObservableStandardSequenceOperatorsTest { var elements = [Bool]() _ = k.takeLast(1).subscribeNext { n in elements.append(n) - k.on(.Next(!n)) + k.on(.next(!n)) } - k.on(.Completed) + k.on(.completed) XCTAssertEqual(elements, [false]) } @@ -4791,7 +4791,7 @@ extension ObservableStandardSequenceOperatorsTest { } XCTAssertEqual(res.events, [ - error(320, RxError.ArgumentOutOfRange) + error(320, RxError.argumentOutOfRange) ]) XCTAssertEqual(xs.subscriptions, [ @@ -4992,7 +4992,7 @@ extension ObservableStandardSequenceOperatorsTest { } XCTAssertEqual(res.events, [ - error(250, RxError.NoElements) + error(250, RxError.noElements) ]) XCTAssertEqual(xs.subscriptions, [ @@ -5039,7 +5039,7 @@ extension ObservableStandardSequenceOperatorsTest { XCTAssertEqual(res.events, [ next(210, 2), - error(220, RxError.MoreThanOneElement) + error(220, RxError.moreThanOneElement) ]) XCTAssertEqual(xs.subscriptions, [ @@ -5072,7 +5072,7 @@ extension ObservableStandardSequenceOperatorsTest { let k = BehaviorSubject(value: false) _ = k.single { _ in true }.subscribeNext { n in - k.on(.Next(!n)) + k.on(.next(!n)) } } @@ -5091,7 +5091,7 @@ extension ObservableStandardSequenceOperatorsTest { } XCTAssertEqual(res.events, [ - error(250, RxError.NoElements) + error(250, RxError.noElements) ]) XCTAssertEqual(xs.subscriptions, [ @@ -5147,7 +5147,7 @@ extension ObservableStandardSequenceOperatorsTest { XCTAssertEqual(res.events, [ next(220, 3), - error(240, RxError.MoreThanOneElement) + error(240, RxError.moreThanOneElement) ]) XCTAssertEqual(xs.subscriptions, [ @@ -5212,7 +5212,7 @@ extension ObservableStandardSequenceOperatorsTest { let k = BehaviorSubject(value: false) _ = k.single { _ in true }.subscribeNext { n in - k.on(.Next(!n)) + k.on(.next(!n)) } } diff --git a/Tests/RxSwiftTests/Tests/Observable+SubscriptionTest.swift b/Tests/RxSwiftTests/Tests/Observable+SubscriptionTest.swift index 4f07bf4c..61bf173e 100644 --- a/Tests/RxSwiftTests/Tests/Observable+SubscriptionTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+SubscriptionTest.swift @@ -41,7 +41,7 @@ class ObservableSubscriptionTests : RxTest { XCTAssertTrue(onCompletedCalled == 0) XCTAssertTrue(onDisposedCalled == 0) - publishSubject.on(.Next(1)) + publishSubject.on(.next(1)) XCTAssertTrue(lastElement == 1) XCTAssertTrue(lastError == nil) @@ -51,7 +51,7 @@ class ObservableSubscriptionTests : RxTest { XCTAssertTrue(onDisposedCalled == 0) subscription.dispose() - publishSubject.on(.Next(2)) + publishSubject.on(.next(2)) XCTAssertTrue(lastElement == 1) XCTAssertTrue(lastError == nil) @@ -101,8 +101,8 @@ class ObservableSubscriptionTests : RxTest { XCTAssertTrue(onDisposedCalled == 1) subscription.dispose() - publishSubject.on(.Next(2)) - publishSubject.on(.Completed) + publishSubject.on(.next(2)) + publishSubject.on(.completed) XCTAssertTrue(lastElement == nil) XCTAssertTrue((lastError as? NSError) === testError) @@ -142,7 +142,7 @@ class ObservableSubscriptionTests : RxTest { XCTAssertTrue(onCompletedCalled == 0) XCTAssertTrue(onDisposedCalled == 0) - publishSubject.on(.Completed) + publishSubject.on(.completed) XCTAssertTrue(lastElement == nil) XCTAssertTrue(lastError == nil) @@ -152,7 +152,7 @@ class ObservableSubscriptionTests : RxTest { XCTAssertTrue(onDisposedCalled == 1) subscription.dispose() - publishSubject.on(.Next(2)) + publishSubject.on(.next(2)) publishSubject.on(.Error(testError)) XCTAssertTrue(lastElement == nil) @@ -193,11 +193,11 @@ class ObservableSubscriptionTests : RxTest { XCTAssertTrue(onCompletedCalled == 0) XCTAssertTrue(onDisposedCalled == 0) - publishSubject.on(.Next(1)) + publishSubject.on(.next(1)) subscription.dispose() - publishSubject.on(.Next(2)) + publishSubject.on(.next(2)) publishSubject.on(.Error(testError)) - publishSubject.on(.Completed) + publishSubject.on(.completed) XCTAssertTrue(lastElement == 1) XCTAssertTrue(lastError == nil) @@ -206,4 +206,4 @@ class ObservableSubscriptionTests : RxTest { XCTAssertTrue(onCompletedCalled == 0) XCTAssertTrue(onDisposedCalled == 1) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/Observable+TimeTest.swift b/Tests/RxSwiftTests/Tests/Observable+TimeTest.swift index 6e4ba7f0..644cf1e2 100644 --- a/Tests/RxSwiftTests/Tests/Observable+TimeTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+TimeTest.swift @@ -257,18 +257,18 @@ extension ObservableTimeTest { } func test_ThrottleWithRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) - let start = NSDate() + let start = Date() let a = try! [Observable.just(0), Observable.never()].toObservable().concat() .throttle(2.0, scheduler: scheduler) .toBlocking() .first() - let end = NSDate() + let end = Date() - XCTAssertEqualWithAccuracy(2, end.timeIntervalSinceDate(start), accuracy: 0.5) + XCTAssertEqualWithAccuracy(2, end.timeIntervalSince(start), accuracy: 0.5) XCTAssertEqual(a, 0) } } @@ -536,14 +536,14 @@ extension ObservableTimeTest { } func testInterval_TimeSpan_Zero_DefaultScheduler() { - let scheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .default) let observer = PrimitiveMockObserver() - let expectCompleted = expectationWithDescription("It will complete") + let expectCompleted = expectation(withDescription: "It will complete") let d = Observable.interval(0, scheduler: scheduler).takeWhile { $0 < 10 } .subscribe(onNext: { t in - observer.on(.Next(t)) + observer.on(.next(t)) }, onCompleted: { expectCompleted.fulfill() }) @@ -552,18 +552,18 @@ extension ObservableTimeTest { d.dispose() } - waitForExpectationsWithTimeout(1.0) { e in + waitForExpectations(withTimeout: 1.0) { e in XCTAssert(e == nil, "Did not complete") } - let cleanResources = expectationWithDescription("Clean resources") + let cleanResources = expectation(withDescription: "Clean resources") scheduler.schedule(()) { _ in cleanResources.fulfill() return NopDisposable.instance } - waitForExpectationsWithTimeout(1.0) { e in + waitForExpectations(withTimeout: 1.0) { e in XCTAssert(e == nil, "Did not clean up") } @@ -586,18 +586,18 @@ extension ObservableTimeTest { } func test_IntervalWithRealScheduler() { - let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let scheduler = ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .default) - let start = NSDate() + let start = Date() let a = try! Observable.interval(1, scheduler: scheduler) .take(2) .toBlocking() .toArray() - let end = NSDate() + let end = Date() - XCTAssertEqualWithAccuracy(2, end.timeIntervalSinceDate(start), accuracy: 0.5) + XCTAssertEqualWithAccuracy(2, end.timeIntervalSince(start), accuracy: 0.5) XCTAssertEqual(a, [0, 1]) } } @@ -1093,7 +1093,7 @@ extension ObservableTimeTest { } func testBufferWithTimeOrCount_Default() { - let backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .default) let result = try! Observable.range(start: 1, count: 10, scheduler: backgroundScheduler) .buffer(timeSpan: 1000, count: 3, scheduler: backgroundScheduler) @@ -1293,7 +1293,7 @@ extension ObservableTimeTest { }*/ func windowWithTimeOrCount_Default() { - let backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .Default) + let backgroundScheduler = SerialDispatchQueueScheduler(globalConcurrentQueueQOS: .default) let result = try! Observable.range(start: 1, count: 10, scheduler: backgroundScheduler) .window(timeSpan: 1000, count: 3, scheduler: backgroundScheduler) @@ -1450,7 +1450,7 @@ extension ObservableTimeTest { XCTAssertEqual(res.events, [ next(210, 42), next(220, 43), - error(245, RxError.Timeout) + error(245, RxError.timeout) ]) XCTAssertEqual(xs.subscriptions, [ @@ -1778,4 +1778,4 @@ extension ObservableTimeTest { XCTAssertEqual(ys.subscriptions, [ ]) } -} \ No newline at end of file +} diff --git a/Tests/RxSwiftTests/Tests/SubjectConcurrencyTest.swift b/Tests/RxSwiftTests/Tests/SubjectConcurrencyTest.swift index 2f4ffe28..7d34fc0e 100644 --- a/Tests/RxSwiftTests/Tests/SubjectConcurrencyTest.swift +++ b/Tests/RxSwiftTests/Tests/SubjectConcurrencyTest.swift @@ -49,17 +49,17 @@ extension SubjectConcurrencyTest { if state == 0 { state = 1 - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) { - o.value.on(.Next(1)) + DispatchQueue.global(attributes: DispatchQueue.GlobalAttributes.qosUserInitiated).async { + o.value.on(.next(1)) } // if other thread can't fulfill the condition in 0.5 sek, that means it is synchronized - NSThread.sleepForTimeInterval(0.5) + Thread.sleep(forTimeInterval: 0.5) XCTAssertEqual(state, 1) - dispatch_async(dispatch_get_main_queue()) { - o.value.on(.Next(2)) + DispatchQueue.main.async { + o.value.on(.next(2)) } } else if state == 1 { @@ -72,11 +72,11 @@ extension SubjectConcurrencyTest { } } - _observer.on(.Next(0)) + _observer.on(.next(0)) // wait for second for _ in 0 ..< 10 { - NSRunLoop.currentRunLoop().runUntilDate(NSDate().dateByAddingTimeInterval(0.1)) + RunLoop.current().run(until: Date().addingTimeInterval(0.1)) if allDone { break } @@ -103,16 +103,16 @@ extension SubjectConcurrencyTest { state = 1 // if isn't reentrant, this will cause deadlock - o.value.on(.Next(1)) + o.value.on(.next(1)) } else if state == 1 { // if isn't reentrant, this will cause deadlock - o.value.on(.Completed) + o.value.on(.completed) ranAll = true } } - o.value.on(.Next(0)) + o.value.on(.next(0)) XCTAssertTrue(ranAll) } @@ -134,7 +134,7 @@ extension SubjectConcurrencyTest { state = 1 // if isn't reentrant, this will cause deadlock - o.value.on(.Next(1)) + o.value.on(.next(1)) } else if state == 1 { // if isn't reentrant, this will cause deadlock @@ -143,7 +143,7 @@ extension SubjectConcurrencyTest { } } - o.value.on(.Next(0)) + o.value.on(.next(0)) XCTAssertTrue(ranAll) } } diff --git a/Tests/RxSwiftTests/Tests/VirtualSchedulerTest.swift b/Tests/RxSwiftTests/Tests/VirtualSchedulerTest.swift index 69e25956..a7500de5 100644 --- a/Tests/RxSwiftTests/Tests/VirtualSchedulerTest.swift +++ b/Tests/RxSwiftTests/Tests/VirtualSchedulerTest.swift @@ -20,7 +20,7 @@ class VirtualSchedulerTest : RxTest { extension VirtualSchedulerTest { func testVirtualScheduler_initialClock() { let scheduler = TestVirtualScheduler(initialClock: 10) - XCTAssertEqual(scheduler.now, NSDate(timeIntervalSince1970: 100.0)) + XCTAssertEqual(scheduler.now, Date(timeIntervalSince1970: 100.0)) XCTAssertEqual(scheduler.clock, 10) } @@ -230,7 +230,7 @@ extension VirtualSchedulerTest { scheduler.start() - times = times.sort() + times = times.sorted() XCTAssertEqual(times, ticks) } } diff --git a/Tests/RxTest.swift b/Tests/RxTest.swift index d5f4dbe4..c668c140 100644 --- a/Tests/RxTest.swift +++ b/Tests/RxTest.swift @@ -76,8 +76,8 @@ extension RxTest { static let disposed = 1000 } - func sleep(time: NSTimeInterval) { - NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate(timeIntervalSinceNow: time)) + func sleep(_ time: TimeInterval) { + RunLoop.current().run(mode: RunLoop Mode.defaultRunLoopMode, before: Date(timeIntervalSinceNow: time)) } func setUpActions(){ diff --git a/Tests/Tests/Foundation+Extensions.swift b/Tests/Tests/Foundation+Extensions.swift index 49362ef4..2bf93c21 100644 --- a/Tests/Tests/Foundation+Extensions.swift +++ b/Tests/Tests/Foundation+Extensions.swift @@ -9,5 +9,5 @@ import Foundation func isMainThread() -> Bool { - return NSThread.currentThread().isMainThread -} \ No newline at end of file + return Thread.current().isMainThread +} diff --git a/Tests/Tests/Recorded+Timeless.swift b/Tests/Tests/Recorded+Timeless.swift index 3f124bc7..d0b644e2 100644 --- a/Tests/Tests/Recorded+Timeless.swift +++ b/Tests/Tests/Recorded+Timeless.swift @@ -10,14 +10,14 @@ import Foundation import RxTests import RxSwift -func next(value: T) -> Recorded> { - return Recorded(time: 0, event: .Next(value)) +func next(_ value: T) -> Recorded> { + return Recorded(time: 0, event: .next(value)) } func completed() -> Recorded> { - return Recorded(time: 0, event: .Completed) + return Recorded(time: 0, event: .completed) } -func error(error: ErrorProtocol) -> Recorded> { +func error(_ error: ErrorProtocol) -> Recorded> { return Recorded(time: 0, event: .Error(error)) -} \ No newline at end of file +} diff --git a/Tests/Tests/XCTest+AllTests.swift b/Tests/Tests/XCTest+AllTests.swift index 27b55fbf..1ca884f5 100644 --- a/Tests/Tests/XCTest+AllTests.swift +++ b/Tests/Tests/XCTest+AllTests.swift @@ -11,14 +11,14 @@ import RxSwift import RxTests import XCTest -func XCTAssertErrorEqual(lhs: ErrorProtocol, _ rhs: ErrorProtocol) { +func XCTAssertErrorEqual(_ lhs: ErrorProtocol, _ rhs: ErrorProtocol) { let event1: Event = .Error(lhs) let event2: Event = .Error(rhs) XCTAssertTrue(event1 == event2) } -func NSValuesAreEqual(lhs: AnyObject, _ rhs: AnyObject) -> Bool { +func NSValuesAreEqual(_ lhs: AnyObject, _ rhs: AnyObject) -> Bool { if let lhsValue = lhs as? NSValue, rhsValue = rhs as? NSValue { #if os(Linux) return lhsValue.isEqual(rhsValue) @@ -31,7 +31,7 @@ func NSValuesAreEqual(lhs: AnyObject, _ rhs: AnyObject) -> Bool { return false } -func XCTAssertEqualNSValues(lhs: AnyObject, rhs: AnyObject) { +func XCTAssertEqualNSValues(_ lhs: AnyObject, rhs: AnyObject) { let areEqual = NSValuesAreEqual(lhs, rhs) XCTAssertTrue(areEqual) if !areEqual { @@ -40,7 +40,7 @@ func XCTAssertEqualNSValues(lhs: AnyObject, rhs: AnyObject) { } } -func XCTAssertEqualAnyObjectArrayOfArrays(lhs: [[AnyObject]], _ rhs: [[AnyObject]]) { +func XCTAssertEqualAnyObjectArrayOfArrays(_ lhs: [[AnyObject]], _ rhs: [[AnyObject]]) { XCTAssertEqual(lhs, rhs) { lhs, rhs in if lhs.count != rhs.count { return false @@ -53,7 +53,7 @@ func XCTAssertEqualAnyObjectArrayOfArrays(lhs: [[AnyObject]], _ rhs: [[AnyObject } } -func XCTAssertEqual(lhs: [T], _ rhs: [T], _ comparison: (T, T) -> Bool) { +func XCTAssertEqual(_ lhs: [T], _ rhs: [T], _ comparison: (T, T) -> Bool) { XCTAssertEqual(lhs.count, rhs.count) let areEqual = zip(lhs, rhs).reduce(true) { (a: Bool, z: (T, T)) in a && comparison(z.0, z.1) } XCTAssertTrue(areEqual) @@ -64,10 +64,10 @@ func XCTAssertEqual(lhs: [T], _ rhs: [T], _ comparison: (T, T) -> Bool) { } -func doOnBackgroundThread(action: () -> ()) { - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), action) +func doOnBackgroundThread(_ action: () -> ()) { + DispatchQueue.global(attributes: DispatchQueue.GlobalAttributes.qosDefault).async(execute: action) } -func doOnMainThread(action: () -> ()) { - dispatch_async(dispatch_get_main_queue(), action) -} \ No newline at end of file +func doOnMainThread(_ action: () -> ()) { + DispatchQueue.main.async(execute: action) +}