Build Information
Failed to build Attabench, reference v2.0.0 (df85ad
), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 13:50:52 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
Build Log
62 | override func activate() {
63 | let field = key(parent.value)
64 | field.add(FieldSink(owner: self))
| `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
65 | parent.add(ParentSink(owner: self))
66 | _field = field
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:71:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
69 | override func deactivate() {
70 | parent.remove(ParentSink(owner: self))
71 | _field!.remove(FieldSink(owner: self))
| `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
72 | _field = nil
73 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:76:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
74 |
75 | private func subscribe(to field: Field) {
76 | _field!.remove(FieldSink(owner: self))
| `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
77 | _field = field
78 | field.add(FieldSink(owner: self))
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:78:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
76 | _field!.remove(FieldSink(owner: self))
77 | _field = field
78 | field.add(FieldSink(owner: self))
| `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
79 | }
80 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:84:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
82 | switch update {
83 | case .beginTransaction:
84 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
85 | case .change(let change):
86 | let oldValue = self._field!.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:89:13: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
87 | let field = self.key(change.new)
88 | self.subscribe(to: field)
89 | sendChange(SetChange(removed: oldValue, inserted: field.value))
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
90 | case .endTransaction:
91 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:89:24: error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
87 | let field = self.key(change.new)
88 | self.subscribe(to: field)
89 | sendChange(SetChange(removed: oldValue, inserted: field.value))
| `- error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
90 | case .endTransaction:
91 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:89:24: error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
87 | let field = self.key(change.new)
88 | self.subscribe(to: field)
89 | sendChange(SetChange(removed: oldValue, inserted: field.value))
| `- error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
90 | case .endTransaction:
91 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Field.Element'
7 | //
8 |
9 | public struct SetChange<Element: Hashable>: ChangeType {
| `- note: where 'Element' = 'Field.Element'
10 | public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:91:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
89 | sendChange(SetChange(removed: oldValue, inserted: field.value))
90 | case .endTransaction:
91 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
92 | }
93 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:96:9: error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
94 |
95 | func applyFieldUpdate(_ update: SetUpdate<Field.Element>) {
96 | send(update)
| `- error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
97 | }
98 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:21:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
19 | var value: Set<Element> { get }
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
22 | func isSuperset(of other: Set<Element>) -> Bool
23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
31 | public var count: Int { return value.count }
32 | public func contains(_ member: Element) -> Bool { return value.contains(member) }
33 | public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
34 | public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:22:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
22 | func isSuperset(of other: Set<Element>) -> Bool
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
23 |
24 | var observableCount: AnyObservableValue<Int> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
32 | public func contains(_ member: Element) -> Bool { return value.contains(member) }
33 | public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
34 | public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
35 |
36 | public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:119:22: error: type of expression is ambiguous without a type annotation
117 |
118 | override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
119 | updateSource.add(sink)
| `- error: type of expression is ambiguous without a type annotation
120 | }
121 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:124:29: error: type of expression is ambiguous without a type annotation
122 | @discardableResult
123 | override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
124 | return updateSource.remove(sink)
| `- error: type of expression is ambiguous without a type annotation
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:15:22: error: type 'Self.Element' does not conform to protocol 'Hashable'
13 | associatedtype Element
14 |
15 | typealias Base = Set<Element>
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
16 |
17 | var isBuffered: Bool { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:11:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
9 | public protocol UpdatableSetType: ObservableSetType, UpdatableType {
10 | var value: Base { get nonmutating set }
11 | func apply(_ update: SetUpdate<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
12 |
13 | // Optional members
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:74:45: error: type 'Self.Element' does not conform to protocol 'Hashable'
72 | }
73 |
74 | public func apply(_ update: ValueUpdate<Set<Element>>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
75 | self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
76 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:17:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
15 | func insert(_ member: Element)
16 | func removeAll()
17 | func formUnion(_ other: Set<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
18 | func formIntersection(_ other: Set<Element>)
19 | func formSymmetricDifference(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:48:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
46 | }
47 |
48 | public func formUnion(_ other: Set<Element>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
49 | // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
50 | let difference = other.subtracting(value)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:18:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
16 | func removeAll()
17 | func formUnion(_ other: Set<Element>)
18 | func formIntersection(_ other: Set<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
19 | func formSymmetricDifference(_ other: Set<Element>)
20 | func subtract(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:54:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
52 | }
53 |
54 | public func formIntersection(_ other: Set<Element>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
55 | // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
56 | let difference = value.subtracting(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:19:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | func formUnion(_ other: Set<Element>)
18 | func formIntersection(_ other: Set<Element>)
19 | func formSymmetricDifference(_ other: Set<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func subtract(_ other: Set<Element>)
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:60:50: error: type 'Self.Element' does not conform to protocol 'Hashable'
58 | }
59 |
60 | public func formSymmetricDifference(_ other: Set<Element>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
61 | // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
62 | let value = self.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:20:28: error: type 'Self.Element' does not conform to protocol 'Hashable'
18 | func formIntersection(_ other: Set<Element>)
19 | func formSymmetricDifference(_ other: Set<Element>)
20 | func subtract(_ other: Set<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
21 |
22 | var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:68:35: error: type 'Self.Element' does not conform to protocol 'Hashable'
66 | }
67 |
68 | public func subtract(_ other: Set<Element>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
69 | // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
70 | let intersection = value.intersection(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:160:22: error: type of expression is ambiguous without a type annotation
158 |
159 | final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
160 | updateSource.add(sink)
| `- error: type of expression is ambiguous without a type annotation
161 | }
162 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:165:29: error: type of expression is ambiguous without a type annotation
163 | @discardableResult
164 | final override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
165 | return updateSource.remove(sink)
| `- error: type of expression is ambiguous without a type annotation
166 | }
167 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
[152/176] Compiling GlueKit Variable.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:19:121: error: type 'Field.Element' does not conform to protocol 'Hashable'
17 | }
18 |
19 | private final class UpdateSourceForSetField<Parent: ObservableValueType, Field: ObservableSetType>: TransactionalSource<SetChange<Field.Element>> {
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
20 | typealias Element = Field.Element
21 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:21:24: error: type 'UpdateSourceForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
19 | private final class UpdateSourceForSetField<Parent: ObservableValueType, Field: ObservableSetType>: TransactionalSource<SetChange<Field.Element>> {
20 | typealias Element = Field.Element
21 | typealias Change = SetChange<Element>
| `- error: type 'UpdateSourceForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
22 | typealias Value = Update<Change>
23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:41:32: error: type 'Field.Element' does not conform to protocol 'Hashable'
39 | let identifier = 2
40 |
41 | func receive(_ update: SetUpdate<Field.Element>) {
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
42 | owner.applyFieldUpdate(update)
43 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:35:20: error: type 'UpdateSourceForSetField<Parent, Field>.FieldSink' does not conform to protocol 'SinkType'
33 | }
34 |
35 | private struct FieldSink: OwnedSink {
| |- error: type 'UpdateSourceForSetField<Parent, Field>.FieldSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
36 | typealias Owner = UpdateSourceForSetField
37 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:95:37: error: type 'Field.Element' does not conform to protocol 'Hashable'
93 | }
94 |
95 | func applyFieldUpdate(_ update: SetUpdate<Field.Element>) {
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
96 | send(update)
97 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:100:101: error: type 'Field.Element' does not conform to protocol 'Hashable'
98 | }
99 |
100 | private final class ValueMappingForSetField<Parent: ObservableValueType, Field: ObservableSetType>: _AbstractObservableSet<Field.Element> {
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
101 | typealias Element = Field.Element
102 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:113:25: error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
111 | override var isBuffered: Bool { return field.isBuffered }
112 | override var count: Int { return field.count }
113 | override var value: Set<Element> { return field.value }
| `- error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
114 | override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 | override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:114:19: error: method does not override any method from its superclass
112 | override var count: Int { return field.count }
113 | override var value: Set<Element> { return field.value }
114 | override func contains(_ member: Element) -> Bool { return field.contains(member) }
| `- error: method does not override any method from its superclass
115 | override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
116 | override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:115:38: error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
113 | override var value: Set<Element> { return field.value }
114 | override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 | override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
| `- error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
116 | override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
117 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:116:40: error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
114 | override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 | override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
116 | override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
| `- error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
117 |
118 | override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:118:19: error: method does not override any method from its superclass
116 | override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
117 |
118 | override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
| `- error: method does not override any method from its superclass
119 | updateSource.add(sink)
120 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:123:19: error: method does not override any method from its superclass
121 |
122 | @discardableResult
123 | override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
| `- error: method does not override any method from its superclass
124 | return updateSource.remove(sink)
125 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:128:109: error: type 'Field.Element' does not conform to protocol 'Hashable'
126 | }
127 |
128 | private final class ValueMappingForUpdatableSetField<Parent: ObservableValueType, Field: UpdatableSetType>: _AbstractUpdatableSet<Field.Element> {
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
129 | typealias Element = Field.Element
130 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:141:25: error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
139 | override var isBuffered: Bool { return field.isBuffered }
140 | override var count: Int { return field.count }
141 | override var value: Set<Element> {
| `- error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
142 | get { return field.value }
143 | set { field.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:145:19: error: method does not override any method from its superclass
143 | set { field.value = newValue }
144 | }
145 | override func contains(_ member: Element) -> Bool { return field.contains(member) }
| `- error: method does not override any method from its superclass
146 | override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
147 | override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:146:38: error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
144 | }
145 | override func contains(_ member: Element) -> Bool { return field.contains(member) }
146 | override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
| `- error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
147 | override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
148 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:147:40: error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
145 | override func contains(_ member: Element) -> Bool { return field.contains(member) }
146 | override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
147 | override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
| `- error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
148 |
149 | override func apply(_ update: SetUpdate<Element>) { field.apply(update) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:149:35: error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
147 | override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
148 |
149 | override func apply(_ update: SetUpdate<Element>) { field.apply(update) }
| `- error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
150 |
151 | override func remove(_ member: Element) { field.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:151:19: error: method does not override any method from its superclass
149 | override func apply(_ update: SetUpdate<Element>) { field.apply(update) }
150 |
151 | override func remove(_ member: Element) { field.remove(member) }
| `- error: method does not override any method from its superclass
152 | override func insert(_ member: Element) { field.insert(member) }
153 | override func removeAll() { field.removeAll() }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:144:15: note: potential overridden instance method 'remove' here
142 | open func apply(_ update: SetUpdate<Element>) { abstract() }
143 |
144 | open func remove(_ member: Element) {
| `- note: potential overridden instance method 'remove' here
145 | // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
146 | if contains(member) {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:152:19: error: method does not override any method from its superclass
150 |
151 | override func remove(_ member: Element) { field.remove(member) }
152 | override func insert(_ member: Element) { field.insert(member) }
| `- error: method does not override any method from its superclass
153 | override func removeAll() { field.removeAll() }
154 | override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:151:15: note: potential overridden instance method 'insert' here
149 | }
150 |
151 | open func insert(_ member: Element) {
| `- note: potential overridden instance method 'insert' here
152 | // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
153 | if !contains(member) {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:154:38: error: type 'Field.Element' does not conform to protocol 'Hashable'
152 | override func insert(_ member: Element) { field.insert(member) }
153 | override func removeAll() { field.removeAll() }
154 | override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
155 | override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 | override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:155:45: error: type 'Field.Element' does not conform to protocol 'Hashable'
153 | override func removeAll() { field.removeAll() }
154 | override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
155 | override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
156 | override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
157 | override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:156:52: error: type 'Field.Element' does not conform to protocol 'Hashable'
154 | override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
155 | override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 | override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
157 | override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
158 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:157:37: error: type 'Field.Element' does not conform to protocol 'Hashable'
155 | override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 | override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
157 | override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
| `- error: type 'Field.Element' does not conform to protocol 'Hashable'
158 |
159 | final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:159:25: error: method does not override any method from its superclass
157 | override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
158 |
159 | final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
| `- error: method does not override any method from its superclass
160 | updateSource.add(sink)
161 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:164:25: error: method does not override any method from its superclass
162 |
163 | @discardableResult
164 | final override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
| `- error: method does not override any method from its superclass
165 | return updateSource.remove(sink)
166 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:68:34: error: type 'Self.Element' does not conform to protocol 'Hashable'
66 | }
67 |
68 | public var anyObservableSet: AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
69 | return AnyObservableSet(box: ObservableSetBox(self))
70 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:11:77: error: type of expression is ambiguous without a type annotation
9 | extension ObservableValueType {
10 | public func map<Field: ObservableSetType>(_ key: @escaping (Value) -> Field) -> AnyObservableSet<Field.Element> {
11 | return ValueMappingForSetField<Self, Field>(parent: self, key: key).anyObservableSet
| `- error: type of expression is ambiguous without a type annotation
12 | }
13 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:85:33: error: type 'Self.Element' does not conform to protocol 'Hashable'
83 | }
84 |
85 | public var anyUpdatableSet: AnyUpdatableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
86 | return AnyUpdatableSet(box: UpdatableSetBox(self))
87 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:15:86: error: type of expression is ambiguous without a type annotation
13 |
14 | public func map<Field: UpdatableSetType>(_ key: @escaping (Value) -> Field) -> AnyUpdatableSet<Field.Element> {
15 | return ValueMappingForUpdatableSetField<Self, Field>(parent: self, key: key).anyUpdatableSet
| `- error: type of expression is ambiguous without a type annotation
16 | }
17 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:64:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
62 | override func activate() {
63 | let field = key(parent.value)
64 | field.add(FieldSink(owner: self))
| `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
65 | parent.add(ParentSink(owner: self))
66 | _field = field
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:71:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
69 | override func deactivate() {
70 | parent.remove(ParentSink(owner: self))
71 | _field!.remove(FieldSink(owner: self))
| `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
72 | _field = nil
73 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:76:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
74 |
75 | private func subscribe(to field: Field) {
76 | _field!.remove(FieldSink(owner: self))
| `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
77 | _field = field
78 | field.add(FieldSink(owner: self))
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:78:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
76 | _field!.remove(FieldSink(owner: self))
77 | _field = field
78 | field.add(FieldSink(owner: self))
| `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
79 | }
80 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:84:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
82 | switch update {
83 | case .beginTransaction:
84 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
85 | case .change(let change):
86 | let oldValue = self._field!.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:89:13: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
87 | let field = self.key(change.new)
88 | self.subscribe(to: field)
89 | sendChange(SetChange(removed: oldValue, inserted: field.value))
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
90 | case .endTransaction:
91 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:89:24: error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
87 | let field = self.key(change.new)
88 | self.subscribe(to: field)
89 | sendChange(SetChange(removed: oldValue, inserted: field.value))
| `- error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
90 | case .endTransaction:
91 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:89:24: error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
87 | let field = self.key(change.new)
88 | self.subscribe(to: field)
89 | sendChange(SetChange(removed: oldValue, inserted: field.value))
| `- error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
90 | case .endTransaction:
91 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Field.Element'
7 | //
8 |
9 | public struct SetChange<Element: Hashable>: ChangeType {
| `- note: where 'Element' = 'Field.Element'
10 | public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:91:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
89 | sendChange(SetChange(removed: oldValue, inserted: field.value))
90 | case .endTransaction:
91 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
92 | }
93 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:96:9: error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
94 |
95 | func applyFieldUpdate(_ update: SetUpdate<Field.Element>) {
96 | send(update)
| `- error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
97 | }
98 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:21:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
19 | var value: Set<Element> { get }
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
22 | func isSuperset(of other: Set<Element>) -> Bool
23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
31 | public var count: Int { return value.count }
32 | public func contains(_ member: Element) -> Bool { return value.contains(member) }
33 | public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
34 | public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:22:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
22 | func isSuperset(of other: Set<Element>) -> Bool
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
23 |
24 | var observableCount: AnyObservableValue<Int> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
32 | public func contains(_ member: Element) -> Bool { return value.contains(member) }
33 | public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
34 | public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
35 |
36 | public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:119:22: error: type of expression is ambiguous without a type annotation
117 |
118 | override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
119 | updateSource.add(sink)
| `- error: type of expression is ambiguous without a type annotation
120 | }
121 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:124:29: error: type of expression is ambiguous without a type annotation
122 | @discardableResult
123 | override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
124 | return updateSource.remove(sink)
| `- error: type of expression is ambiguous without a type annotation
125 | }
126 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:15:22: error: type 'Self.Element' does not conform to protocol 'Hashable'
13 | associatedtype Element
14 |
15 | typealias Base = Set<Element>
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
16 |
17 | var isBuffered: Bool { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:11:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
9 | public protocol UpdatableSetType: ObservableSetType, UpdatableType {
10 | var value: Base { get nonmutating set }
11 | func apply(_ update: SetUpdate<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
12 |
13 | // Optional members
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:74:45: error: type 'Self.Element' does not conform to protocol 'Hashable'
72 | }
73 |
74 | public func apply(_ update: ValueUpdate<Set<Element>>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
75 | self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
76 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:17:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
15 | func insert(_ member: Element)
16 | func removeAll()
17 | func formUnion(_ other: Set<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
18 | func formIntersection(_ other: Set<Element>)
19 | func formSymmetricDifference(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:48:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
46 | }
47 |
48 | public func formUnion(_ other: Set<Element>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
49 | // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
50 | let difference = other.subtracting(value)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:18:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
16 | func removeAll()
17 | func formUnion(_ other: Set<Element>)
18 | func formIntersection(_ other: Set<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
19 | func formSymmetricDifference(_ other: Set<Element>)
20 | func subtract(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:54:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
52 | }
53 |
54 | public func formIntersection(_ other: Set<Element>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
55 | // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
56 | let difference = value.subtracting(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:19:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | func formUnion(_ other: Set<Element>)
18 | func formIntersection(_ other: Set<Element>)
19 | func formSymmetricDifference(_ other: Set<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func subtract(_ other: Set<Element>)
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:60:50: error: type 'Self.Element' does not conform to protocol 'Hashable'
58 | }
59 |
60 | public func formSymmetricDifference(_ other: Set<Element>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
61 | // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
62 | let value = self.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:20:28: error: type 'Self.Element' does not conform to protocol 'Hashable'
18 | func formIntersection(_ other: Set<Element>)
19 | func formSymmetricDifference(_ other: Set<Element>)
20 | func subtract(_ other: Set<Element>)
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
21 |
22 | var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:68:35: error: type 'Self.Element' does not conform to protocol 'Hashable'
66 | }
67 |
68 | public func subtract(_ other: Set<Element>) {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
69 | // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
70 | let intersection = value.intersection(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:160:22: error: type of expression is ambiguous without a type annotation
158 |
159 | final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
160 | updateSource.add(sink)
| `- error: type of expression is ambiguous without a type annotation
161 | }
162 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:165:29: error: type of expression is ambiguous without a type annotation
163 | @discardableResult
164 | final override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
165 | return updateSource.remove(sink)
| `- error: type of expression is ambiguous without a type annotation
166 | }
167 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
[153/176] Compiling GlueKit Sink.swift
[154/176] Compiling GlueKit Source.swift
[155/176] Compiling GlueKit TimerSource.swift
[156/176] Compiling GlueKit TransactionalThing.swift
[157/176] Compiling GlueKit TransformedSink.swift
[158/176] Compiling GlueKit TransformedSource.swift
[159/176] Compiling GlueKit TwoWayBinding.swift
[160/176] Compiling GlueKit Type Helpers.swift
[161/176] Compiling GlueKit UIBarButtonItem Extensions.swift
[162/176] Compiling GlueKit ArrayGatheringSource.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
[165/176] Compiling GlueKit ArrayMappingForValueField.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
[166/176] Compiling GlueKit ArrayReference.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
[167/176] Compiling GlueKit ArrayVariable.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
[168/176] Compiling GlueKit BracketingSource.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
[169/176] Compiling GlueKit BufferedArray.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
[170/176] Compiling GlueKit BufferedSet.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
[171/176] Compiling GlueKit BufferedSource.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableValueType where Value: ObservableSetType {
10 | public func unpacked() -> AnyObservableSet<Value.Element> {
| `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 | return UnpackedObservableSetReference(self).anyObservableSet
12 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
22 |
23 | // Required members
24 | var value: [Element] { get nonmutating set }
| `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
25 | func apply(_ update: ArrayUpdate<Element>)
26 | subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 | ///
58 | /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 | var value: Value { get nonmutating set }
| `- note: attempt to override property here
60 |
61 | func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
8 |
9 | extension ObservableSetType {
10 | public func buffered() -> AnyObservableSet<Element> {
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 | if isBuffered {
12 | return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 | typealias Element = Content.Element
20 | typealias Change = SetChange<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 | unowned(unsafe) let owner: Owner
26 |
27 | func receive(_ update: SetUpdate<Content.Element>) {
| `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 | owner.applyUpdate(update)
29 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 | typealias Change = SetChange<Element>
21 |
22 | private struct BufferedSink: UniqueOwnedSink {
| |- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
| `- note: add stubs for conformance
23 | typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
8 |
9 | public protocol SinkType: Hashable {
10 | associatedtype Value
| `- note: protocol requires nested type 'Value'
11 | func receive(_ value: Value)
12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 | private let _content: Content
33 | private var _value: Set<Element>
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 | private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 | }
46 |
47 | func applyUpdate(_ update: SetUpdate<Element>) {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 | switch update {
49 | case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 | }
75 |
76 | override var value: Set<Element> {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 | return _value
78 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 | }
79 |
80 | override func contains(_ member: Element) -> Bool {
| `- error: method does not override any method from its superclass
81 | return _value.contains(member)
82 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 | open var isBuffered: Bool { return false }
119 | open var count: Int { return value.count }
120 | open func contains(_ member: Element) -> Bool { return value.contains(member) }
| `- note: potential overridden instance method 'contains' here
121 | open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 | open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 | }
83 |
84 | override func isSubset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 | return _value.isSubset(of: other)
86 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 | }
87 |
88 | override func isSuperset(of other: Set<Element>) -> Bool {
| `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 | return _value.isSuperset(of: other)
90 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
17 | var isBuffered: Bool { get }
18 | var count: Int { get }
19 | var value: Set<Element> { get }
| `- error: type 'Self.Element' does not conform to protocol 'Hashable'
20 | func contains(_ member: Element) -> Bool
21 | func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 | _value = content.value
39 | super.init()
40 | _content.add(BufferedSink(owner: self))
| `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 | }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 | var value: Value { get }
15 |
16 | func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 | deinit {
44 | _content.remove(BufferedSink(owner: self))
| `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 | @discardableResult
19 | func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
| `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 | switch update {
49 | case .beginTransaction:
50 | beginTransaction()
| `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 | case .change(let change):
52 | if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 | _value.apply(change)
61 | _pendingChange = nil
62 | sendChange(change)
| `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 | }
64 | endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 | sendChange(change)
63 | }
64 | endTransaction()
| `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 | }
66 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
39 | }
40 |
41 | extension TransactionalThing {
| `- note: where 'Self' = 'BufferedObservableSet<Content>'
42 | var signal: TransactionalSignal<Change> {
43 | if let signal = _signal { return signal }
warning: 'bigint': ignoring duplicate product 'BigInt' (static library)
warning: 'spi-builder-workspace': dependency 'siphash' is not used by any target
BUILD FAILURE 6.1 macosSpm