Build Information
Failed to build DSFValueBinders, reference 1.0.1 (8bbcac
), with Swift 6.1 for Linux on 29 Apr 2025 05:35:02 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dagronf/DSFValueBinders.git
Reference: 1.0.1
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/dagronf/DSFValueBinders
* tag 1.0.1 -> FETCH_HEAD
HEAD is now at 8bbcacd Fix issue where the binding value wasn't set correctly when first created
Cloned https://github.com/dagronf/DSFValueBinders.git
Revision (git rev-parse @):
8bbcacda087d1f0da384c8ad2fda061faabda3f1
SUCCESS checkout https://github.com/dagronf/DSFValueBinders.git at 1.0.1
========================================
Build
========================================
Selected platform: linux
Swift version: 6.1
Building package at path: $PWD
https://github.com/dagronf/DSFValueBinders.git
https://github.com/dagronf/DSFValueBinders.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "DSFValueBinders",
"name" : "DSFValueBinders",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.11"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "DSFValueBinders",
"targets" : [
"DSFValueBinders"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "DSFValueBinders-static",
"targets" : [
"DSFValueBinders"
],
"type" : {
"library" : [
"static"
]
}
},
{
"name" : "DSFValueBinders-shared",
"targets" : [
"DSFValueBinders"
],
"type" : {
"library" : [
"dynamic"
]
}
}
],
"targets" : [
{
"c99name" : "DSFValueBindersTests",
"module_type" : "SwiftTarget",
"name" : "DSFValueBindersTests",
"path" : "Tests/DSFValueBindersTests",
"sources" : [
"DSFValueBindersTests.swift",
"DSFValueBindersTransformTests.swift",
"PropertyWrapperTests.swift",
"Utils.swift"
],
"target_dependencies" : [
"DSFValueBinders"
],
"type" : "test"
},
{
"c99name" : "DSFValueBinders",
"module_type" : "SwiftTarget",
"name" : "DSFValueBinders",
"path" : "Sources/DSFValueBinders",
"product_memberships" : [
"DSFValueBinders",
"DSFValueBinders-static",
"DSFValueBinders-shared"
],
"sources" : [
"CombiningValueBinder.swift",
"DSFValueBinders.swift",
"EnumKeyPathBinder.swift",
"KeyPathBinder.swift",
"PropertyWrapper.swift",
"ValueBinder+transform.swift",
"ValueBinder+transformers.swift",
"ValueBinder.swift",
"private/ValueBinder+Binding.swift",
"private/WrappedPublisher.swift",
"utils/SemLock.swift"
],
"type" : "library"
}
],
"tools_version" : "5.4"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Building for debugging...
[0/7] Write sources
[1/7] Write swift-version-24593BA9C3E375BF.txt
[3/18] Compiling DSFValueBinders ValueBinder+transformers.swift
[4/19] Compiling DSFValueBinders ValueBinder.swift
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:179:62: error: cannot find type 'AnyCancellable' in scope
177 | /// Attaches a subscriber with closure-based behavior to a publisher that never fails.
178 | /// Returns `nil` if the publisher isn't available
179 | func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable? {
| `- error: cannot find type 'AnyCancellable' in scope
180 | self.publisher?.passthroughSubject.sink(receiveValue: receiveValue)
181 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:187:7: error: cannot find type 'AnyCancellable' in scope
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
| `- error: cannot find type 'AnyCancellable' in scope
188 | self.publisher?.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
189 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:185:35: error: cannot find type 'Subscribers' in scope
183 | /// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | func sink(
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: cannot find type 'Subscribers' in scope
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:185:23: error: @escaping attribute only applies to function types
183 | /// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | func sink(
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: @escaping attribute only applies to function types
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
[5/19] Compiling DSFValueBinders ValueBinder+Binding.swift
[6/19] Compiling DSFValueBinders WrappedPublisher.swift
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:51:17: error: cannot find type 'AnyPublisher' in scope
49 | /// Note that the publisher will send events on non-main threads, so its important
50 | /// for your listeners to swap to the main thread if they are updating UI
51 | var publisher: AnyPublisher<ValueType, Never> {
| `- error: cannot find type 'AnyPublisher' in scope
52 | return self.passthroughSubject.eraseToAnyPublisher()
53 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:66:62: error: cannot find type 'AnyCancellable' in scope
64 |
65 | /// Attaches a subscriber with closure-based behavior to a publisher that never fails.
66 | func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable {
| `- error: cannot find type 'AnyCancellable' in scope
67 | self.passthroughSubject.sink(receiveValue: receiveValue)
68 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:74:7: error: cannot find type 'AnyCancellable' in scope
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
| `- error: cannot find type 'AnyCancellable' in scope
75 | self.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
76 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:34: error: cannot find type 'Subscribers' in scope
70 | /// Attaches a subscriber with closure-based behavior.
71 | func sink(
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: cannot find type 'Subscribers' in scope
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:22: error: @escaping attribute only applies to function types
70 | /// Attaches a subscriber with closure-based behavior.
71 | func sink(
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: @escaping attribute only applies to function types
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:86:26: error: cannot find type 'PassthroughSubject' in scope
84 | internal extension WrappedPublisher {
85 | // Internal publisher to allow us to send new values
86 | var passthroughSubject: PassthroughSubject<ValueType, Never> {
| `- error: cannot find type 'PassthroughSubject' in scope
87 | return self._publisher as! PassthroughSubject<ValueType, Never>
88 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:36:21: error: cannot find 'PassthroughSubject' in scope
34 | return nil
35 | }
36 | self._publisher = PassthroughSubject<ValueType, Never>()
| `- error: cannot find 'PassthroughSubject' in scope
37 | }
38 |
[7/19] Compiling DSFValueBinders EnumKeyPathBinder.swift
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | private weak var object: ClassType?
104 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
105 | private let stringPath: String
106 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
65 |
66 | // A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
67 | let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
| `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
68 | guard !stringKeyPath.isEmpty else {
69 | throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:76:21: error: value of type 'ClassType' has no member 'value'
74 | // If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
75 | guard
76 | let raw = object.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
| `- error: value of type 'ClassType' has no member 'value'
77 | let initialValue = ValueType(rawValue: raw)
78 | else {
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:32: error: value of type 'ClassType' has no member 'observe'
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: value of type 'ClassType' has no member 'observe'
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:60: error: reference to member 'new' cannot be resolved without a contextual type
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: reference to member 'new' cannot be resolved without a contextual type
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:80: error: cannot infer type of closure parameter 'obj' without a type annotation
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: cannot infer type of closure parameter 'obj' without a type annotation
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:85: error: cannot infer type of closure parameter 'value' without a type annotation
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: cannot infer type of closure parameter 'value' without a type annotation
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:124:12: error: value of type 'ClassType' has no member 'setValue'
122 | self.lock.tryLock {
123 | // Push the new value through to the bound keypath
124 | object?.setValue(self.wrappedValue.rawValue, forKey: stringPath)
| `- error: value of type 'ClassType' has no member 'setValue'
125 | self.callback?(self.wrappedValue)
126 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
95 |
96 | private weak var object: ClassType?
97 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
98 | private let stringPath: String
99 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | // MARK: - Change handling
103 |
104 | private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
| `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | if let value = value.newValue {
106 | self.update(with: value)
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
65 |
66 | // A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
67 | let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
| `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
68 | guard !stringKeyPath.isEmpty else {
69 | throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:75:35: error: value of type 'ClassType' has no member 'value'
73 | // Grab out the initial value from the bound keypath.
74 | // If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
75 | guard let initialValue = object.value(forKeyPath: stringKeyPath) as? ValueType else {
| `- error: value of type 'ClassType' has no member 'value'
76 | Swift.print("The specified key path couldn't be resolved.")
77 | Swift.print("If `keyPath` refers to an enum (eg, `NSToolbar.SizeMode`) use `EnumKeyPathBinder` instead")
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:32: error: value of type 'ClassType' has no member 'observe'
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: value of type 'ClassType' has no member 'observe'
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:60: error: reference to member 'new' cannot be resolved without a contextual type
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: reference to member 'new' cannot be resolved without a contextual type
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:80: error: cannot infer type of closure parameter '_' without a type annotation
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: cannot infer type of closure parameter '_' without a type annotation
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:83: error: cannot infer type of closure parameter 'value' without a type annotation
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: cannot infer type of closure parameter 'value' without a type annotation
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:122:12: error: value of type 'ClassType' has no member 'setValue'
120 | self.lock.tryLock {
121 | // Push the new value through to the bound keypath
122 | object?.setValue(self.wrappedValue, forKey: stringPath)
| `- error: value of type 'ClassType' has no member 'setValue'
123 | self.callback?(self.wrappedValue)
124 | }
[8/19] Compiling DSFValueBinders KeyPathBinder.swift
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | private weak var object: ClassType?
104 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
105 | private let stringPath: String
106 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
65 |
66 | // A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
67 | let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
| `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
68 | guard !stringKeyPath.isEmpty else {
69 | throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:76:21: error: value of type 'ClassType' has no member 'value'
74 | // If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
75 | guard
76 | let raw = object.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
| `- error: value of type 'ClassType' has no member 'value'
77 | let initialValue = ValueType(rawValue: raw)
78 | else {
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:32: error: value of type 'ClassType' has no member 'observe'
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: value of type 'ClassType' has no member 'observe'
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:60: error: reference to member 'new' cannot be resolved without a contextual type
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: reference to member 'new' cannot be resolved without a contextual type
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:80: error: cannot infer type of closure parameter 'obj' without a type annotation
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: cannot infer type of closure parameter 'obj' without a type annotation
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:85: error: cannot infer type of closure parameter 'value' without a type annotation
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: cannot infer type of closure parameter 'value' without a type annotation
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:124:12: error: value of type 'ClassType' has no member 'setValue'
122 | self.lock.tryLock {
123 | // Push the new value through to the bound keypath
124 | object?.setValue(self.wrappedValue.rawValue, forKey: stringPath)
| `- error: value of type 'ClassType' has no member 'setValue'
125 | self.callback?(self.wrappedValue)
126 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
95 |
96 | private weak var object: ClassType?
97 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
98 | private let stringPath: String
99 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | // MARK: - Change handling
103 |
104 | private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
| `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | if let value = value.newValue {
106 | self.update(with: value)
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
65 |
66 | // A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
67 | let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
| `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
68 | guard !stringKeyPath.isEmpty else {
69 | throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:75:35: error: value of type 'ClassType' has no member 'value'
73 | // Grab out the initial value from the bound keypath.
74 | // If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
75 | guard let initialValue = object.value(forKeyPath: stringKeyPath) as? ValueType else {
| `- error: value of type 'ClassType' has no member 'value'
76 | Swift.print("The specified key path couldn't be resolved.")
77 | Swift.print("If `keyPath` refers to an enum (eg, `NSToolbar.SizeMode`) use `EnumKeyPathBinder` instead")
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:32: error: value of type 'ClassType' has no member 'observe'
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: value of type 'ClassType' has no member 'observe'
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:60: error: reference to member 'new' cannot be resolved without a contextual type
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: reference to member 'new' cannot be resolved without a contextual type
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:80: error: cannot infer type of closure parameter '_' without a type annotation
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: cannot infer type of closure parameter '_' without a type annotation
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:83: error: cannot infer type of closure parameter 'value' without a type annotation
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: cannot infer type of closure parameter 'value' without a type annotation
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:122:12: error: value of type 'ClassType' has no member 'setValue'
120 | self.lock.tryLock {
121 | // Push the new value through to the bound keypath
122 | object?.setValue(self.wrappedValue, forKey: stringPath)
| `- error: value of type 'ClassType' has no member 'setValue'
123 | self.callback?(self.wrappedValue)
124 | }
[9/19] Compiling DSFValueBinders CombiningValueBinder.swift
[10/19] Compiling DSFValueBinders DSFValueBinders.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[11/19] Emitting module DSFValueBinders
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | private weak var object: ClassType?
104 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
105 | private let stringPath: String
106 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
95 |
96 | private weak var object: ClassType?
97 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
98 | private let stringPath: String
99 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | // MARK: - Change handling
103 |
104 | private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
| `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | if let value = value.newValue {
106 | self.update(with: value)
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:179:62: error: cannot find type 'AnyCancellable' in scope
177 | /// Attaches a subscriber with closure-based behavior to a publisher that never fails.
178 | /// Returns `nil` if the publisher isn't available
179 | func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable? {
| `- error: cannot find type 'AnyCancellable' in scope
180 | self.publisher?.passthroughSubject.sink(receiveValue: receiveValue)
181 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:187:7: error: cannot find type 'AnyCancellable' in scope
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
| `- error: cannot find type 'AnyCancellable' in scope
188 | self.publisher?.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
189 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:185:35: error: cannot find type 'Subscribers' in scope
183 | /// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | func sink(
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: cannot find type 'Subscribers' in scope
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:185:23: error: @escaping attribute only applies to function types
183 | /// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | func sink(
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: @escaping attribute only applies to function types
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:51:17: error: cannot find type 'AnyPublisher' in scope
49 | /// Note that the publisher will send events on non-main threads, so its important
50 | /// for your listeners to swap to the main thread if they are updating UI
51 | var publisher: AnyPublisher<ValueType, Never> {
| `- error: cannot find type 'AnyPublisher' in scope
52 | return self.passthroughSubject.eraseToAnyPublisher()
53 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:66:62: error: cannot find type 'AnyCancellable' in scope
64 |
65 | /// Attaches a subscriber with closure-based behavior to a publisher that never fails.
66 | func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable {
| `- error: cannot find type 'AnyCancellable' in scope
67 | self.passthroughSubject.sink(receiveValue: receiveValue)
68 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:74:7: error: cannot find type 'AnyCancellable' in scope
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
| `- error: cannot find type 'AnyCancellable' in scope
75 | self.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
76 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:34: error: cannot find type 'Subscribers' in scope
70 | /// Attaches a subscriber with closure-based behavior.
71 | func sink(
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: cannot find type 'Subscribers' in scope
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:22: error: @escaping attribute only applies to function types
70 | /// Attaches a subscriber with closure-based behavior.
71 | func sink(
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: @escaping attribute only applies to function types
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:86:26: error: cannot find type 'PassthroughSubject' in scope
84 | internal extension WrappedPublisher {
85 | // Internal publisher to allow us to send new values
86 | var passthroughSubject: PassthroughSubject<ValueType, Never> {
| `- error: cannot find type 'PassthroughSubject' in scope
87 | return self._publisher as! PassthroughSubject<ValueType, Never>
88 | }
[12/19] Compiling DSFValueBinders PropertyWrapper.swift
[13/19] Compiling DSFValueBinders ValueBinder+transform.swift
[14/19] Compiling DSFValueBinders SemLock.swift
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
[0/1] Planning build
Building for debugging...
[0/6] Write swift-version-24593BA9C3E375BF.txt
[2/17] Compiling DSFValueBinders WrappedPublisher.swift
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:51:17: error: cannot find type 'AnyPublisher' in scope
49 | /// Note that the publisher will send events on non-main threads, so its important
50 | /// for your listeners to swap to the main thread if they are updating UI
51 | var publisher: AnyPublisher<ValueType, Never> {
| `- error: cannot find type 'AnyPublisher' in scope
52 | return self.passthroughSubject.eraseToAnyPublisher()
53 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:66:62: error: cannot find type 'AnyCancellable' in scope
64 |
65 | /// Attaches a subscriber with closure-based behavior to a publisher that never fails.
66 | func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable {
| `- error: cannot find type 'AnyCancellable' in scope
67 | self.passthroughSubject.sink(receiveValue: receiveValue)
68 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:74:7: error: cannot find type 'AnyCancellable' in scope
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
| `- error: cannot find type 'AnyCancellable' in scope
75 | self.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
76 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:34: error: cannot find type 'Subscribers' in scope
70 | /// Attaches a subscriber with closure-based behavior.
71 | func sink(
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: cannot find type 'Subscribers' in scope
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:22: error: @escaping attribute only applies to function types
70 | /// Attaches a subscriber with closure-based behavior.
71 | func sink(
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: @escaping attribute only applies to function types
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:86:26: error: cannot find type 'PassthroughSubject' in scope
84 | internal extension WrappedPublisher {
85 | // Internal publisher to allow us to send new values
86 | var passthroughSubject: PassthroughSubject<ValueType, Never> {
| `- error: cannot find type 'PassthroughSubject' in scope
87 | return self._publisher as! PassthroughSubject<ValueType, Never>
88 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:36:21: error: cannot find 'PassthroughSubject' in scope
34 | return nil
35 | }
36 | self._publisher = PassthroughSubject<ValueType, Never>()
| `- error: cannot find 'PassthroughSubject' in scope
37 | }
38 |
[3/18] Compiling DSFValueBinders EnumKeyPathBinder.swift
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | private weak var object: ClassType?
104 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
105 | private let stringPath: String
106 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
65 |
66 | // A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
67 | let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
| `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
68 | guard !stringKeyPath.isEmpty else {
69 | throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:76:21: error: value of type 'ClassType' has no member 'value'
74 | // If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
75 | guard
76 | let raw = object.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
| `- error: value of type 'ClassType' has no member 'value'
77 | let initialValue = ValueType(rawValue: raw)
78 | else {
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:32: error: value of type 'ClassType' has no member 'observe'
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: value of type 'ClassType' has no member 'observe'
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:60: error: reference to member 'new' cannot be resolved without a contextual type
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: reference to member 'new' cannot be resolved without a contextual type
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:80: error: cannot infer type of closure parameter 'obj' without a type annotation
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: cannot infer type of closure parameter 'obj' without a type annotation
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:85: error: cannot infer type of closure parameter 'value' without a type annotation
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: cannot infer type of closure parameter 'value' without a type annotation
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:124:12: error: value of type 'ClassType' has no member 'setValue'
122 | self.lock.tryLock {
123 | // Push the new value through to the bound keypath
124 | object?.setValue(self.wrappedValue.rawValue, forKey: stringPath)
| `- error: value of type 'ClassType' has no member 'setValue'
125 | self.callback?(self.wrappedValue)
126 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
95 |
96 | private weak var object: ClassType?
97 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
98 | private let stringPath: String
99 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | // MARK: - Change handling
103 |
104 | private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
| `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | if let value = value.newValue {
106 | self.update(with: value)
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
65 |
66 | // A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
67 | let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
| `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
68 | guard !stringKeyPath.isEmpty else {
69 | throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:75:35: error: value of type 'ClassType' has no member 'value'
73 | // Grab out the initial value from the bound keypath.
74 | // If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
75 | guard let initialValue = object.value(forKeyPath: stringKeyPath) as? ValueType else {
| `- error: value of type 'ClassType' has no member 'value'
76 | Swift.print("The specified key path couldn't be resolved.")
77 | Swift.print("If `keyPath` refers to an enum (eg, `NSToolbar.SizeMode`) use `EnumKeyPathBinder` instead")
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:32: error: value of type 'ClassType' has no member 'observe'
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: value of type 'ClassType' has no member 'observe'
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:60: error: reference to member 'new' cannot be resolved without a contextual type
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: reference to member 'new' cannot be resolved without a contextual type
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:80: error: cannot infer type of closure parameter '_' without a type annotation
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: cannot infer type of closure parameter '_' without a type annotation
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:83: error: cannot infer type of closure parameter 'value' without a type annotation
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: cannot infer type of closure parameter 'value' without a type annotation
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:122:12: error: value of type 'ClassType' has no member 'setValue'
120 | self.lock.tryLock {
121 | // Push the new value through to the bound keypath
122 | object?.setValue(self.wrappedValue, forKey: stringPath)
| `- error: value of type 'ClassType' has no member 'setValue'
123 | self.callback?(self.wrappedValue)
124 | }
[4/18] Compiling DSFValueBinders KeyPathBinder.swift
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | private weak var object: ClassType?
104 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
105 | private let stringPath: String
106 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
65 |
66 | // A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
67 | let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
| `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
68 | guard !stringKeyPath.isEmpty else {
69 | throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:76:21: error: value of type 'ClassType' has no member 'value'
74 | // If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
75 | guard
76 | let raw = object.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
| `- error: value of type 'ClassType' has no member 'value'
77 | let initialValue = ValueType(rawValue: raw)
78 | else {
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:32: error: value of type 'ClassType' has no member 'observe'
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: value of type 'ClassType' has no member 'observe'
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:60: error: reference to member 'new' cannot be resolved without a contextual type
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: reference to member 'new' cannot be resolved without a contextual type
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:80: error: cannot infer type of closure parameter 'obj' without a type annotation
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: cannot infer type of closure parameter 'obj' without a type annotation
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:89:85: error: cannot infer type of closure parameter 'value' without a type annotation
87 |
88 | // Start listening for kvo changes
89 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] obj, value in
| `- error: cannot infer type of closure parameter 'value' without a type annotation
90 | if
91 | let raw = obj.value(forKeyPath: stringKeyPath) as? ValueType.RawValue,
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:124:12: error: value of type 'ClassType' has no member 'setValue'
122 | self.lock.tryLock {
123 | // Push the new value through to the bound keypath
124 | object?.setValue(self.wrappedValue.rawValue, forKey: stringPath)
| `- error: value of type 'ClassType' has no member 'setValue'
125 | self.callback?(self.wrappedValue)
126 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
95 |
96 | private weak var object: ClassType?
97 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
98 | private let stringPath: String
99 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | // MARK: - Change handling
103 |
104 | private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
| `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | if let value = value.newValue {
106 | self.update(with: value)
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:67:48: error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
65 |
66 | // A bit hacky - we need the STRING representation of the keypath for NSObject's calls later.
67 | let stringKeyPath = NSExpression(forKeyPath: keyPath).keyPath
| `- error: cannot convert value of type 'KeyPath<ClassType, ValueType>' to expected argument type 'String'
68 | guard !stringKeyPath.isEmpty else {
69 | throw ValueBinderErrors.invalidKeyPath
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:75:35: error: value of type 'ClassType' has no member 'value'
73 | // Grab out the initial value from the bound keypath.
74 | // If we cannot get a valid value from the keypath then throw an error (maybe it's a type mismatch?)
75 | guard let initialValue = object.value(forKeyPath: stringKeyPath) as? ValueType else {
| `- error: value of type 'ClassType' has no member 'value'
76 | Swift.print("The specified key path couldn't be resolved.")
77 | Swift.print("If `keyPath` refers to an enum (eg, `NSToolbar.SizeMode`) use `EnumKeyPathBinder` instead")
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:32: error: value of type 'ClassType' has no member 'observe'
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: value of type 'ClassType' has no member 'observe'
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:60: error: reference to member 'new' cannot be resolved without a contextual type
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: reference to member 'new' cannot be resolved without a contextual type
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:80: error: cannot infer type of closure parameter '_' without a type annotation
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: cannot infer type of closure parameter '_' without a type annotation
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:87:83: error: cannot infer type of closure parameter 'value' without a type annotation
85 |
86 | // Start listening for kvo changes
87 | self.kvoObservation = object.observe(keyPath, options: [.new]) { [weak self] _, value in
| `- error: cannot infer type of closure parameter 'value' without a type annotation
88 | self?.kvoUpdate(value)
89 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:122:12: error: value of type 'ClassType' has no member 'setValue'
120 | self.lock.tryLock {
121 | // Push the new value through to the bound keypath
122 | object?.setValue(self.wrappedValue, forKey: stringPath)
| `- error: value of type 'ClassType' has no member 'setValue'
123 | self.callback?(self.wrappedValue)
124 | }
[5/18] Compiling DSFValueBinders ValueBinder+Binding.swift
[6/18] Compiling DSFValueBinders ValueBinder.swift
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:179:62: error: cannot find type 'AnyCancellable' in scope
177 | /// Attaches a subscriber with closure-based behavior to a publisher that never fails.
178 | /// Returns `nil` if the publisher isn't available
179 | func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable? {
| `- error: cannot find type 'AnyCancellable' in scope
180 | self.publisher?.passthroughSubject.sink(receiveValue: receiveValue)
181 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:187:7: error: cannot find type 'AnyCancellable' in scope
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
| `- error: cannot find type 'AnyCancellable' in scope
188 | self.publisher?.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
189 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:185:35: error: cannot find type 'Subscribers' in scope
183 | /// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | func sink(
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: cannot find type 'Subscribers' in scope
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:185:23: error: @escaping attribute only applies to function types
183 | /// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | func sink(
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: @escaping attribute only applies to function types
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
[7/18] Compiling DSFValueBinders PropertyWrapper.swift
[8/18] Compiling DSFValueBinders ValueBinder+transform.swift
[9/18] Compiling DSFValueBinders ValueBinder+transformers.swift
[10/18] Compiling DSFValueBinders SemLock.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[11/18] Compiling DSFValueBinders CombiningValueBinder.swift
[12/18] Compiling DSFValueBinders DSFValueBinders.swift
[13/18] Emitting module DSFValueBinders
/host/spi-builder-workspace/Sources/DSFValueBinders/EnumKeyPathBinder.swift:104:30: error: cannot find type 'NSKeyValueObservation' in scope
102 |
103 | private weak var object: ClassType?
104 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
105 | private let stringPath: String
106 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:97:30: error: cannot find type 'NSKeyValueObservation' in scope
95 |
96 | private weak var object: ClassType?
97 | private var kvoObservation: NSKeyValueObservation?
| `- error: cannot find type 'NSKeyValueObservation' in scope
98 | private let stringPath: String
99 | private let lock = SemLock()
/host/spi-builder-workspace/Sources/DSFValueBinders/KeyPathBinder.swift:104:34: error: cannot find type 'NSKeyValueObservedChange' in scope
102 | // MARK: - Change handling
103 |
104 | private func kvoUpdate(_ value: NSKeyValueObservedChange<ValueType>) {
| `- error: cannot find type 'NSKeyValueObservedChange' in scope
105 | if let value = value.newValue {
106 | self.update(with: value)
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:179:62: error: cannot find type 'AnyCancellable' in scope
177 | /// Attaches a subscriber with closure-based behavior to a publisher that never fails.
178 | /// Returns `nil` if the publisher isn't available
179 | func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable? {
| `- error: cannot find type 'AnyCancellable' in scope
180 | self.publisher?.passthroughSubject.sink(receiveValue: receiveValue)
181 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:187:7: error: cannot find type 'AnyCancellable' in scope
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
| `- error: cannot find type 'AnyCancellable' in scope
188 | self.publisher?.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
189 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:185:35: error: cannot find type 'Subscribers' in scope
183 | /// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | func sink(
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: cannot find type 'Subscribers' in scope
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
/host/spi-builder-workspace/Sources/DSFValueBinders/ValueBinder.swift:185:23: error: @escaping attribute only applies to function types
183 | /// Attaches a subscriber with closure-based behavior. Returns `nil` if the publisher isn't available
184 | func sink(
185 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: @escaping attribute only applies to function types
186 | receiveValue: @escaping ((ValueType) -> Void)
187 | ) -> AnyCancellable? {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:51:17: error: cannot find type 'AnyPublisher' in scope
49 | /// Note that the publisher will send events on non-main threads, so its important
50 | /// for your listeners to swap to the main thread if they are updating UI
51 | var publisher: AnyPublisher<ValueType, Never> {
| `- error: cannot find type 'AnyPublisher' in scope
52 | return self.passthroughSubject.eraseToAnyPublisher()
53 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:66:62: error: cannot find type 'AnyCancellable' in scope
64 |
65 | /// Attaches a subscriber with closure-based behavior to a publisher that never fails.
66 | func sink(receiveValue: @escaping ((ValueType) -> Void)) -> AnyCancellable {
| `- error: cannot find type 'AnyCancellable' in scope
67 | self.passthroughSubject.sink(receiveValue: receiveValue)
68 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:74:7: error: cannot find type 'AnyCancellable' in scope
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
| `- error: cannot find type 'AnyCancellable' in scope
75 | self.passthroughSubject.sink(receiveCompletion: receiveCompletion, receiveValue: receiveValue)
76 | }
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:34: error: cannot find type 'Subscribers' in scope
70 | /// Attaches a subscriber with closure-based behavior.
71 | func sink(
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: cannot find type 'Subscribers' in scope
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:72:22: error: @escaping attribute only applies to function types
70 | /// Attaches a subscriber with closure-based behavior.
71 | func sink(
72 | receiveCompletion: @escaping ((Subscribers.Completion<Never>) -> Void),
| `- error: @escaping attribute only applies to function types
73 | receiveValue: @escaping ((ValueType) -> Void)
74 | ) -> AnyCancellable {
/host/spi-builder-workspace/Sources/DSFValueBinders/private/WrappedPublisher.swift:86:26: error: cannot find type 'PassthroughSubject' in scope
84 | internal extension WrappedPublisher {
85 | // Internal publisher to allow us to send new values
86 | var passthroughSubject: PassthroughSubject<ValueType, Never> {
| `- error: cannot find type 'PassthroughSubject' in scope
87 | return self._publisher as! PassthroughSubject<ValueType, Never>
88 | }
BUILD FAILURE 6.1 linux