The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build DSFAppKitBuilder, reference main (d188d6), with Swift 6.1 for Android on 29 May 2025 18:39:36 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dagronf/DSFAppKitBuilder.git
Reference: main
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/DSFAppKitBuilder
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at d188d61 Update to latest focusoverlay
Cloned https://github.com/dagronf/DSFAppKitBuilder.git
Revision (git rev-parse @):
d188d61b706d8cac88bf9ba6a5bdd98f408f202b
SUCCESS checkout https://github.com/dagronf/DSFAppKitBuilder.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.1
Building package at path:  $PWD
https://github.com/dagronf/DSFAppKitBuilder.git
https://github.com/dagronf/DSFAppKitBuilder.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "dsfpagercontrol",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.5.2",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFPagerControl"
    },
    {
      "identity" : "dsfmenubuilder",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFMenuBuilder"
    },
    {
      "identity" : "dsfvaluebinders",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "1.1.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFValueBinders"
    },
    {
      "identity" : "dsfcombobutton",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFComboButton"
    },
    {
      "identity" : "dsftogglebutton",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "7.1.0",
            "upper_bound" : "8.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFToggleButton"
    },
    {
      "identity" : "dsfstepperview",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.3.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFStepperView"
    },
    {
      "identity" : "dsfsearchfield",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.2.2",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/dagronf/DSFSearchField"
    }
  ],
  "manifest_display_name" : "DSFAppKitBuilder",
  "name" : "DSFAppKitBuilder",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    }
  ],
  "products" : [
    {
      "name" : "DSFAppKitBuilder",
      "targets" : [
        "DSFAppKitBuilder"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "DSFAppKitBuilder-static",
      "targets" : [
        "DSFAppKitBuilder"
      ],
      "type" : {
        "library" : [
          "static"
        ]
      }
    },
    {
      "name" : "DSFAppKitBuilder-shared",
      "targets" : [
        "DSFAppKitBuilder"
      ],
      "type" : {
        "library" : [
          "dynamic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "DSFAppKitBuilderTests",
      "module_type" : "SwiftTarget",
      "name" : "DSFAppKitBuilderTests",
      "path" : "Tests/DSFAppKitBuilderTests",
      "sources" : [
        "DSFAppKitDSLTests.swift"
      ],
      "target_dependencies" : [
        "DSFAppKitBuilder"
      ],
      "type" : "test"
    },
    {
      "c99name" : "DSFAppKitBuilder",
      "module_type" : "SwiftTarget",
      "name" : "DSFAppKitBuilder",
      "path" : "Sources/DSFAppKitBuilder",
      "product_dependencies" : [
        "DSFMenuBuilder",
        "DSFPagerControl",
        "DSFValueBinders",
        "DSFComboButton",
        "DSFToggleButton",
        "DSFStepperView",
        "DSFSearchField"
      ],
      "product_memberships" : [
        "DSFAppKitBuilder",
        "DSFAppKitBuilder-static",
        "DSFAppKitBuilder-shared"
      ],
      "sources" : [
        "DSFAppKitBuilder.swift",
        "DSFAppKitBuilderViewHandler.swift",
        "binders/DoubleStringBinder.swift",
        "binders/ElementBinder.swift",
        "binders/WindowBinder.swift",
        "components/Accessibility.swift",
        "components/AttributedString.swift",
        "components/AutoLayout.swift",
        "components/Box.swift",
        "components/Button+radio.swift",
        "components/Button.swift",
        "components/ButtonStyle.swift",
        "components/CheckBox.swift",
        "components/ColorWell.swift",
        "components/ComboBox.swift",
        "components/ComboButton.swift",
        "components/Control.swift",
        "components/DatePicker.swift",
        "components/DisclosureGroup.swift",
        "components/DisclosureView.swift",
        "components/Divider.swift",
        "components/DynamicElement.swift",
        "components/EmptyView.swift",
        "components/FlatButton.swift",
        "components/Flow.swift",
        "components/ForEach.swift",
        "components/Form.swift",
        "components/Grid.swift",
        "components/Group.swift",
        "components/IfElse.swift",
        "components/Image.swift",
        "components/ImageView.swift",
        "components/Label.swift",
        "components/LabelStyle.swift",
        "components/LevelIndicator.swift",
        "components/Link.swift",
        "components/List.swift",
        "components/ManagedWindow.swift",
        "components/Maybe.swift",
        "components/Nothing.swift",
        "components/OneOf.swift",
        "components/Pager.swift",
        "components/PathControl.swift",
        "components/PlainTextView.swift",
        "components/PopupButton.swift",
        "components/ProgressBar.swift",
        "components/RadioGroup.swift",
        "components/ScrollView.swift",
        "components/SecureTextField.swift",
        "components/Segmented.swift",
        "components/Shape.swift",
        "components/Slider.swift",
        "components/SplitView.swift",
        "components/Stack.swift",
        "components/StackStyle.swift",
        "components/Stepper.swift",
        "components/StepperView.swift",
        "components/Switch.swift",
        "components/TabView.swift",
        "components/Toggle.swift",
        "components/View+SwiftUI.swift",
        "components/View.swift",
        "components/VisualEffectView.swift",
        "components/Window.swift",
        "components/ZStack.swift",
        "components/ZoomableScrollView.swift",
        "components/element/Element+Alert.swift",
        "components/element/Element+Change.swift",
        "components/element/Element+Gestures.swift",
        "components/element/Element+Panel.swift",
        "components/element/Element+Popover.swift",
        "components/element/Element+Sheet.swift",
        "components/element/Element+Size.swift",
        "components/element/Element.swift",
        "components/text-field/NumberField.swift",
        "components/text-field/SearchField.swift",
        "components/text-field/TextField.swift",
        "components/text-field/TokenField.swift",
        "fonts/DynamicFont.swift",
        "fonts/DynamicFontService.swift",
        "fonts/Font.swift",
        "presentation/DSFAppKitBuilderAssignableViewController.swift",
        "presentation/DSFAppKitBuilderView.swift",
        "presentation/DSFAppKitBuilderViewController.swift",
        "presentation/SwiftUIPreviews.swift",
        "utils/Animations.swift",
        "utils/Autolayout+helpers.swift",
        "utils/BindingBag.swift",
        "utils/CGColor+extensions.swift",
        "utils/CGSize+extensions.swift",
        "utils/CSFlatButton.swift",
        "utils/CenteringClipView.swift",
        "utils/CustomValueTransformers.swift",
        "utils/EmbeddedLayoutType.swift",
        "utils/Logging.swift",
        "utils/NSBezierPath+extensions.swift",
        "utils/NSColor+extensions.swift",
        "utils/NSGestureRecognizer+actionblock.swift",
        "utils/NumberFormatter+extensions.swift",
        "utils/PaddableTextField.swift",
        "utils/ProtectedLock.swift",
        "utils/RangeComponentBinder.swift",
        "utils/ScrollableTextView.swift",
        "utils/Shadow.swift",
        "utils/TrackingArea.swift",
        "utils/Utilities.swift",
        "utils/VerticalSizingTokenField.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Fetching https://github.com/dagronf/DSFSearchField
Fetching https://github.com/dagronf/DSFValueBinders
Fetching https://github.com/dagronf/DSFToggleButton
Fetching https://github.com/dagronf/DSFComboButton
[1/494] Fetching dsftogglebutton
[31/729] Fetching dsftogglebutton, dsfvaluebinders
[730/896] Fetching dsftogglebutton, dsfvaluebinders, dsfcombobutton
[842/1079] Fetching dsftogglebutton, dsfvaluebinders, dsfcombobutton, dsfsearchfield
Fetched https://github.com/dagronf/DSFComboButton from cache (0.52s)
Fetching https://github.com/dagronf/DSFMenuBuilder
Fetching https://github.com/dagronf/DSFStepperView
Fetched https://github.com/dagronf/DSFValueBinders from cache (0.53s)
Fetched https://github.com/dagronf/DSFToggleButton from cache (0.53s)
Fetched https://github.com/dagronf/DSFSearchField from cache (0.55s)
[1/698] Fetching dsfstepperview
[699/1022] Fetching dsfstepperview, dsfmenubuilder
Fetching https://github.com/dagronf/DSFPagerControl
Fetched https://github.com/dagronf/DSFMenuBuilder from cache (0.41s)
Fetched https://github.com/dagronf/DSFStepperView from cache (0.42s)
[1/312] Fetching dsfpagercontrol
Fetched https://github.com/dagronf/DSFPagerControl from cache (0.34s)
Computing version for https://github.com/dagronf/DSFSearchField
Computed https://github.com/dagronf/DSFSearchField at 2.2.2 (2.65s)
Computing version for https://github.com/dagronf/DSFToggleButton
Computed https://github.com/dagronf/DSFToggleButton at 7.1.0 (0.56s)
Fetching https://github.com/dagronf/DSFAppearanceManager
[1/459] Fetching dsfappearancemanager
Fetched https://github.com/dagronf/DSFAppearanceManager from cache (0.56s)
Computing version for https://github.com/dagronf/DSFComboButton
Computed https://github.com/dagronf/DSFComboButton at 1.0.0 (1.44s)
Computing version for https://github.com/dagronf/DSFMenuBuilder
Computed https://github.com/dagronf/DSFMenuBuilder at 1.2.1 (1.00s)
Computing version for https://github.com/dagronf/DSFPagerControl
Computed https://github.com/dagronf/DSFPagerControl at 2.5.2 (0.99s)
Computing version for https://github.com/dagronf/DSFStepperView
Computed https://github.com/dagronf/DSFStepperView at 4.4.0 (0.91s)
Computing version for https://github.com/dagronf/DSFAppearanceManager
Computed https://github.com/dagronf/DSFAppearanceManager at 3.5.1 (1.43s)
Computing version for https://github.com/dagronf/DSFValueBinders
Computed https://github.com/dagronf/DSFValueBinders at 1.0.1 (0.97s)
Creating working copy for https://github.com/dagronf/DSFPagerControl
Working copy of https://github.com/dagronf/DSFPagerControl resolved at 2.5.2
Creating working copy for https://github.com/dagronf/DSFToggleButton
Working copy of https://github.com/dagronf/DSFToggleButton resolved at 7.1.0
Creating working copy for https://github.com/dagronf/DSFValueBinders
Working copy of https://github.com/dagronf/DSFValueBinders resolved at 1.0.1
Creating working copy for https://github.com/dagronf/DSFComboButton
Working copy of https://github.com/dagronf/DSFComboButton resolved at 1.0.0
Creating working copy for https://github.com/dagronf/DSFSearchField
Working copy of https://github.com/dagronf/DSFSearchField resolved at 2.2.2
Creating working copy for https://github.com/dagronf/DSFStepperView
Working copy of https://github.com/dagronf/DSFStepperView resolved at 4.4.0
Creating working copy for https://github.com/dagronf/DSFAppearanceManager
Working copy of https://github.com/dagronf/DSFAppearanceManager resolved at 3.5.1
Creating working copy for https://github.com/dagronf/DSFMenuBuilder
Working copy of https://github.com/dagronf/DSFMenuBuilder resolved at 1.2.1
Building for debugging...
[0/26] Write sources
[3/26] Copying PrivacyInfo.xcprivacy
[3/26] Write sources
[3/26] Copying Localizable.strings
[4/26] Copying Info.plist
[8/26] Write sources
[12/26] Write swift-version-24593BA9C3E375BF.txt
[14/70] Compiling DSFComboButton DelayedMenuButton.swift
[15/70] Emitting module DSFComboButton
[16/70] Compiling DSFComboButton DSFComboButton+private.swift
[17/70] Compiling DSFComboButton DSFComboButton.swift
[18/71] Wrapping AST for DSFComboButton for debugging
[20/71] Compiling DSFAppearanceManager NSAppearance+extensions.swift
[21/72] Emitting module DSFSearchField
[22/72] Compiling DSFAppearanceManager WeakBox.swift
[23/72] Compiling DSFValueBinders ValueBinder+Binding.swift
[24/72] Compiling DSFValueBinders WrappedPublisher.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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 |
[25/73] Compiling DSFValueBinders PropertyWrapper.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[26/73] Compiling DSFValueBinders ValueBinder+transform.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[27/74] Compiling DSFSearchField DSFSearchField+SwiftUI.swift
[28/74] Compiling DSFMenuBuilder ViewItem.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[29/74] Compiling DSFMenuBuilder MenuItemTarget.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[30/74] Compiling DSFMenuBuilder AnyMenuItem.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[31/74] Compiling DSFValueBinders ValueBinder.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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? {
[32/74] Compiling DSFSearchField resource_bundle_accessor.swift
[33/74] Compiling DSFValueBinders EnumKeyPathBinder.swift
[34/74] Compiling DSFValueBinders KeyPathBinder.swift
[37/74] Compiling DSFValueBinders CombiningValueBinder.swift
[38/74] Compiling DSFValueBinders DSFValueBinders.swift
[39/74] Emitting module DSFAppearanceManager
[40/74] Compiling DSFAppearanceManager DSFAppearanceManager+Listeners.swift
[41/74] Compiling DSFAppearanceManager DSFDebounce.swift
[42/74] Compiling DSFMenuBuilder ViewItem+NSViewController.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[43/74] Compiling DSFMenuBuilder NSMenuItemHighlightableView.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[46/74] Compiling DSFSearchField DSFSearchField.swift
[47/74] Compiling DSFSearchField LocalizationHelpers.swift
[48/74] Compiling DSFSearchField SwiftUIHelpers.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
error: emit-module command failed with exit code 1 (use -v to see invocation)
[51/74] Emitting module DSFMenuBuilder
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[54/75] Compiling DSFAppearanceManager WeakBag.swift
[55/75] Compiling DSFAppearanceManager DSFSimpleLock.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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 | 		}
error: emit-module command failed with exit code 1 (use -v to see invocation)
[58/76] Emitting module DSFValueBinders
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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 | 	}
[59/76] Compiling DSFValueBinders SemLock.swift
[62/76] Compiling DSFValueBinders ValueBinder+transformers.swift
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
[0/1] Planning build
Building for debugging...
[0/14] Write swift-version-24593BA9C3E375BF.txt
[2/58] Compiling DSFValueBinders ValueBinder+Binding.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/59] Emitting module DSFMenuBuilder
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[4/60] Compiling DSFComboButton DSFComboButton+private.swift
[5/60] Compiling DSFComboButton DSFComboButton.swift
[6/60] Compiling DSFComboButton DelayedMenuButton.swift
[7/60] Compiling DSFValueBinders SemLock.swift
[8/60] Emitting module DSFComboButton
[9/60] Compiling DSFMenuBuilder ViewItem+NSViewController.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[10/61] Compiling DSFMenuBuilder NSMenuItemHighlightableView.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[11/61] Compiling DSFAppearanceManager NSAppearance+extensions.swift
[12/61] Compiling DSFAppearanceManager WeakBag.swift
[14/62] Compiling DSFMenuBuilder MenuItemTarget.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[15/62] Compiling DSFMenuBuilder ViewItem.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[16/62] Compiling DSFMenuBuilder AnyMenuItem.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[17/62] Compiling DSFValueBinders PropertyWrapper.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[18/62] Compiling DSFValueBinders ValueBinder+transform.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[19/62] Compiling DSFValueBinders CombiningValueBinder.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[20/62] Compiling DSFValueBinders DSFValueBinders.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[21/62] Compiling DSFValueBinders EnumKeyPathBinder.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[22/62] Compiling DSFValueBinders KeyPathBinder.swift
/host/spi-builder-workspace/.build/checkouts/DSFMenuBuilder/Sources/DSFMenuBuilder/Menu.swift:27:8: error: no such module 'AppKit'
 25 | //
 26 |
 27 | import AppKit
    |        `- error: no such module 'AppKit'
 28 |
 29 | /// A representation of a menu
[23/62] Compiling DSFValueBinders WrappedPublisher.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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 |
[24/62] Compiling DSFValueBinders ValueBinder+transformers.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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 | 		}
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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 | 		}
[29/62] Compiling DSFValueBinders ValueBinder.swift
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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? {
[38/62] Emitting module DSFAppearanceManager
[39/62] Compiling DSFAppearanceManager DSFAppearanceCache.swift
[40/62] Compiling DSFAppearanceManager DSFAppearanceManager+ChangeDetector.swift
[41/62] Compiling DSFAppearanceManager DSFSimpleLock.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[42/62] Emitting module DSFValueBinders
/host/spi-builder-workspace/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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/.build/checkouts/DSFValueBinders/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 | 	}
[43/62] Compiling DSFSearchField SwiftUIHelpers.swift
[44/62] Compiling DSFSearchField LocalizationHelpers.swift
[45/62] Compiling DSFSearchField DSFSearchField+SwiftUI.swift
[46/62] Compiling DSFSearchField DSFSearchField.swift
[47/62] Emitting module DSFSearchField
[48/62] Compiling DSFSearchField resource_bundle_accessor.swift
[49/62] Compiling DSFAppearanceManager WeakBox.swift
BUILD FAILURE 6.1 android