diff --git a/RxSwift/Observables/Implementations/SkipWhile.swift b/RxSwift/Observables/Implementations/SkipWhile.swift index cd5d6e53..eb10c043 100644 --- a/RxSwift/Observables/Implementations/SkipWhile.swift +++ b/RxSwift/Observables/Implementations/SkipWhile.swift @@ -42,7 +42,7 @@ class SkipWhileSink : Sin } } -class SkipWhileSinkIndexed : Sink, ObserverType { +class SkipWhileSinkWithIndex : Sink, ObserverType { typealias Parent = SkipWhile typealias Element = ElementType @@ -61,7 +61,7 @@ class SkipWhileSinkIndexed: Producer { typealias Predicate = (Element) throws -> Bool - typealias PredicateIndexed = (Element, Int) throws -> Bool + typealias PredicateWithIndex = (Element, Int) throws -> Bool private let _source: Observable private let _predicate: Predicate! - private let _predicateIndexed: PredicateIndexed! + private let _predicateWithIndex: PredicateWithIndex! init(source: Observable, predicate: Predicate) { _source = source _predicate = predicate - _predicateIndexed = nil + _predicateWithIndex = nil } - init(source: Observable, predicate: PredicateIndexed) { + init(source: Observable, predicate: PredicateWithIndex) { _source = source _predicate = nil - _predicateIndexed = predicate + _predicateWithIndex = predicate } override func run(observer: O, cancel: Disposable, setSink: (Disposable) -> Void) -> Disposable { @@ -107,7 +107,7 @@ class SkipWhile: Producer { return _source.subscribeSafe(sink) } else { - let sink = SkipWhileSinkIndexed(parent: self, observer: observer, cancel: cancel) + let sink = SkipWhileSinkWithIndex(parent: self, observer: observer, cancel: cancel) setSink(sink) return _source.subscribeSafe(sink) } diff --git a/RxSwift/Observables/Observable+StandardSequenceOperators.swift b/RxSwift/Observables/Observable+StandardSequenceOperators.swift index f4cc161a..b2ddfefd 100644 --- a/RxSwift/Observables/Observable+StandardSequenceOperators.swift +++ b/RxSwift/Observables/Observable+StandardSequenceOperators.swift @@ -98,7 +98,7 @@ extension ObservableType { return SkipWhile(source: self.asObservable(), predicate: predicate) } - public func skipWhileIndexed(predicate: (E, Int) throws -> Bool) -> Observable { + public func skipWhileWithIndex(predicate: (E, Int) throws -> Bool) -> Observable { return SkipWhile(source: self.asObservable(), predicate: predicate) } } diff --git a/RxTests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift b/RxTests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift index bca0a779..7f0c0395 100644 --- a/RxTests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift +++ b/RxTests/RxSwiftTests/Tests/Observable+StandardSequenceOperatorsTest.swift @@ -3482,7 +3482,7 @@ extension ObservableStandardSequenceOperators { ]) let res = scheduler.start() { - xs.skipWhileIndexed { x, i in i < 5 } + xs.skipWhileWithIndex { x, i in i < 5 } } XCTAssertEqual(res.messages, [ @@ -3515,8 +3515,16 @@ extension ObservableStandardSequenceOperators { error(400, testError) ]) + let x = 0 + if x == Int.max { + throw // Error + } + let res = x + x += 1 + return res + let res = scheduler.start() { - xs.skipWhileIndexed { x, i in i < 5 } + xs.skipWhileWithIndex { x, i in i < 5 } } XCTAssertEqual(res.messages, [ @@ -3547,7 +3555,7 @@ extension ObservableStandardSequenceOperators { ]) let res = scheduler.start() { - xs.skipWhileIndexed { x, i in + xs.skipWhileWithIndex { x, i in if i < 5 { return true }