0001    //
0002    //  CombineLatest.swift
0003    //  Rx
0004    //
0005    //  Created by Krunoslav Zaher on 3/21/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    protocol CombineLatestProtocol
CombineLatest.swift:19
    , CombineLatestProtocol {
CombineLatest.swift:102
    private let _parent: CombineLatestProtocol
CombineLatest.swift:109
    init(lock: NSRecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: ValueSetter, this: Disposable) {
: class { 0012 func next
CombineLatest.swift:125
            _parent.next(_index)
(index: Int) 0013 func fail
CombineLatest.swift:128
            _parent.fail(error)
(error: ErrorType) 0014 func done
CombineLatest.swift:131
            _parent.done(_index)
(index: Int) 0015 } 0016 0017 class CombineLatestSink
CombineLatest+arity.swift:36
class CombineLatestSink2_<E1, E2, O: ObserverType> : CombineLatestSink<O> {
CombineLatest+arity.swift:117
class CombineLatestSink3_<E1, E2, E3, O: ObserverType> : CombineLatestSink<O> {
CombineLatest+arity.swift:205
class CombineLatestSink4_<E1, E2, E3, E4, O: ObserverType> : CombineLatestSink<O> {
CombineLatest+arity.swift:300
class CombineLatestSink5_<E1, E2, E3, E4, E5, O: ObserverType> : CombineLatestSink<O> {
CombineLatest+arity.swift:402
class CombineLatestSink6_<E1, E2, E3, E4, E5, E6, O: ObserverType> : CombineLatestSink<O> {
CombineLatest+arity.swift:511
class CombineLatestSink7_<E1, E2, E3, E4, E5, E6, E7, O: ObserverType> : CombineLatestSink<O> {
CombineLatest+arity.swift:627
class CombineLatestSink8_<E1, E2, E3, E4, E5, E6, E7, E8, O: ObserverType> : CombineLatestSink<O> {
<O
CombineLatest.swift:18
    : Sink<O>
CombineLatest.swift:20
    typealias Element = O.E
CombineLatest.swift:30
    init(arity: Int, observer: O) {
: ObserverType> 0018 : Sink<O> 0019 , CombineLatestProtocol { 0020 typealias Element
CombineLatest.swift:38
    func getResult() throws -> Element {
= O.E 0021 0022 let _lock
CombineLatest+arity.swift:54
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:55
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:137
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:138
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:139
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:227
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:228
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:229
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:230
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:324
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:325
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:326
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:327
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:328
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:428
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:429
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:430
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:431
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:432
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:433
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:539
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:540
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:541
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:542
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:543
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:544
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:545
        let observer7 = CombineLatestObserver(lock: _lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7)
CombineLatest+arity.swift:657
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:658
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:659
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:660
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:661
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:662
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:663
        let observer7 = CombineLatestObserver(lock: _lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7)
CombineLatest+arity.swift:664
        let observer8 = CombineLatestObserver(lock: _lock, parent: self, index: 7, setLatestValue: { (e: E8) -> Void in self._latestElement8 = e }, this: subscription8)
= NSRecursiveLock() 0023 0024 private let _arity
CombineLatest.swift:31
        _arity = arity
CombineLatest.swift:48
        if _numberOfValues == _arity {
CombineLatest.swift:61
            for i in 0 ..< _arity {
CombineLatest.swift:88
        if _numberOfDone == _arity {
: Int 0025 private var _numberOfValues
CombineLatest.swift:45
            _numberOfValues += 1
CombineLatest.swift:48
        if _numberOfValues == _arity {
= 0 0026 private var _numberOfDone
CombineLatest.swift:86
        _numberOfDone += 1
CombineLatest.swift:88
        if _numberOfDone == _arity {
= 0 0027 private var _hasValue
CombineLatest.swift:32
        _hasValue = [Bool](count: arity, repeatedValue: false)
CombineLatest.swift:43
        if !_hasValue[index] {
CombineLatest.swift:44
            _hasValue[index] = true
: [Bool] 0028 private var _isDone
CombineLatest.swift:33
        _isDone = [Bool](count: arity, repeatedValue: false)
CombineLatest.swift:62
                if i != index && !_isDone[i] {
CombineLatest.swift:81
        if _isDone[index] {
CombineLatest.swift:85
        _isDone[index] = true
: [Bool] 0029 0030 init
CombineLatest+arity.swift:47
        super.init(arity: 2, observer: observer)
CombineLatest+arity.swift:129
        super.init(arity: 3, observer: observer)
CombineLatest+arity.swift:218
        super.init(arity: 4, observer: observer)
CombineLatest+arity.swift:314
        super.init(arity: 5, observer: observer)
CombineLatest+arity.swift:417
        super.init(arity: 6, observer: observer)
CombineLatest+arity.swift:527
        super.init(arity: 7, observer: observer)
CombineLatest+arity.swift:644
        super.init(arity: 8, observer: observer)
(arity: Int, observer: O) { 0031 _arity = arity 0032 _hasValue = [Bool](count: arity, repeatedValue: false) 0033 _isDone = [Bool](count: arity, repeatedValue: false) 0034 0035 super.init(observer: observer) 0036 } 0037 0038 func getResult
CombineLatest.swift:50
                let result = try getResult()
() throws -> Element { 0039 abstractMethod() 0040 } 0041 0042 func next(index: Int) { 0043 if !_hasValue[index] { 0044 _hasValue[index] = true 0045 _numberOfValues += 1 0046 } 0047 0048 if _numberOfValues == _arity { 0049 do { 0050 let result = try getResult() 0051 forwardOn(.Next(result)) 0052 } 0053 catch let e { 0054 forwardOn(.Error(e)) 0055 dispose() 0056 } 0057 } 0058 else { 0059 var allOthersDone = true 0060 0061 for i in 0 ..< _arity { 0062 if i != index && !_isDone[i] { 0063 allOthersDone = false 0064 break 0065 } 0066 } 0067 0068 if allOthersDone { 0069 forwardOn(.Completed) 0070 dispose() 0071 } 0072 } 0073 } 0074 0075 func fail(error: ErrorType) { 0076 forwardOn(.Error(error)) 0077 dispose() 0078 } 0079 0080 func done(index: Int) { 0081 if _isDone[index] { 0082 return 0083 } 0084 0085 _isDone[index] = true 0086 _numberOfDone += 1 0087 0088 if _numberOfDone == _arity { 0089 forwardOn(.Completed) 0090 dispose() 0091 } 0092 } 0093 } 0094 0095 class CombineLatestObserver
CombineLatest+arity.swift:54
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:55
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:137
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:138
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:139
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:227
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:228
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:229
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:230
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:324
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:325
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:326
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:327
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:328
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:428
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:429
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:430
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:431
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:432
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:433
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:539
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:540
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:541
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:542
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:543
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:544
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:545
        let observer7 = CombineLatestObserver(lock: _lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7)
CombineLatest+arity.swift:657
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:658
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:659
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:660
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:661
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:662
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:663
        let observer7 = CombineLatestObserver(lock: _lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7)
CombineLatest+arity.swift:664
        let observer8 = CombineLatestObserver(lock: _lock, parent: self, index: 7, setLatestValue: { (e: E8) -> Void in self._latestElement8 = e }, this: subscription8)
<ElementType
CombineLatest.swift:99
    typealias Element = ElementType
> 0096 : ObserverType 0097 , LockOwnerType 0098 , SynchronizedOnType { 0099 typealias Element
CombineLatest.swift:100
    typealias ValueSetter = (Element) -> Void
CombineLatest.swift:117
    func on(event: Event<Element>) {
CombineLatest.swift:121
    func _synchronized_on(event: Event<Element>) {
= ElementType 0100 typealias ValueSetter
CombineLatest.swift:107
    private let _setLatestValue: ValueSetter
CombineLatest.swift:109
    init(lock: NSRecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: ValueSetter, this: Disposable) {
= (Element) -> Void 0101 0102 private let _parent
CombineLatest.swift:111
        _parent = parent
CombineLatest.swift:125
            _parent.next(_index)
CombineLatest.swift:128
            _parent.fail(error)
CombineLatest.swift:131
            _parent.done(_index)
: CombineLatestProtocol 0103 0104 let _lock
CombineLatest.swift:110
        _lock = lock
: NSRecursiveLock 0105 private let _index
CombineLatest.swift:112
        _index = index
CombineLatest.swift:125
            _parent.next(_index)
CombineLatest.swift:131
            _parent.done(_index)
: Int 0106 private let _this
CombineLatest.swift:113
        _this = this
CombineLatest.swift:127
            _this.dispose()
CombineLatest.swift:130
            _this.dispose()
: Disposable 0107 private let _setLatestValue
CombineLatest.swift:114
        _setLatestValue = setLatestValue
CombineLatest.swift:124
            _setLatestValue(value)
: ValueSetter 0108 0109 init
CombineLatest+arity.swift:54
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:55
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:137
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:138
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:139
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:227
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:228
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:229
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:230
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:324
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:325
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:326
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:327
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:328
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:428
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:429
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:430
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:431
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:432
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:433
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:539
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:540
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:541
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:542
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:543
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:544
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:545
        let observer7 = CombineLatestObserver(lock: _lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7)
CombineLatest+arity.swift:657
        let observer1 = CombineLatestObserver(lock: _lock, parent: self, index: 0, setLatestValue: { (e: E1) -> Void in self._latestElement1 = e }, this: subscription1)
CombineLatest+arity.swift:658
        let observer2 = CombineLatestObserver(lock: _lock, parent: self, index: 1, setLatestValue: { (e: E2) -> Void in self._latestElement2 = e }, this: subscription2)
CombineLatest+arity.swift:659
        let observer3 = CombineLatestObserver(lock: _lock, parent: self, index: 2, setLatestValue: { (e: E3) -> Void in self._latestElement3 = e }, this: subscription3)
CombineLatest+arity.swift:660
        let observer4 = CombineLatestObserver(lock: _lock, parent: self, index: 3, setLatestValue: { (e: E4) -> Void in self._latestElement4 = e }, this: subscription4)
CombineLatest+arity.swift:661
        let observer5 = CombineLatestObserver(lock: _lock, parent: self, index: 4, setLatestValue: { (e: E5) -> Void in self._latestElement5 = e }, this: subscription5)
CombineLatest+arity.swift:662
        let observer6 = CombineLatestObserver(lock: _lock, parent: self, index: 5, setLatestValue: { (e: E6) -> Void in self._latestElement6 = e }, this: subscription6)
CombineLatest+arity.swift:663
        let observer7 = CombineLatestObserver(lock: _lock, parent: self, index: 6, setLatestValue: { (e: E7) -> Void in self._latestElement7 = e }, this: subscription7)
CombineLatest+arity.swift:664
        let observer8 = CombineLatestObserver(lock: _lock, parent: self, index: 7, setLatestValue: { (e: E8) -> Void in self._latestElement8 = e }, this: subscription8)
(lock: NSRecursiveLock, parent: CombineLatestProtocol, index: Int, setLatestValue: ValueSetter, this: Disposable) { 0110 _lock = lock 0111 _parent = parent 0112 _index = index 0113 _this = this 0114 _setLatestValue = setLatestValue 0115 } 0116 0117 func on(event: Event<Element>) { 0118 synchronizedOn(event) 0119 } 0120 0121 func _synchronized_on(event: Event<Element>) { 0122 switch event { 0123 case .Next(let value): 0124 _setLatestValue(value) 0125 _parent.next(_index) 0126 case .Error(let error): 0127 _this.dispose() 0128 _parent.fail(error) 0129 case .Completed: 0130 _this.dispose() 0131 _parent.done(_index) 0132 } 0133 } 0134 }