Build Information
Successful build of SwiftSpellbook, reference main (ba9e30
), with Swift 6.0 for macOS (SPM) on 5 Mar 2025 02:14:08 UTC.
Swift 6 data race errors: 95
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64 -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
Build Log
| `- note: parameter 'work' is implicitly non-sendable
59 | ) {
60 | asyncAfter(deadline: .now() + delay, qos: qos, flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
61 | }
62 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:76:20: warning: capture of 'execute' with non-sendable type '() -> Bool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | func schedule(firstRun: Bool) {
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
| |- warning: capture of 'execute' with non-sendable type '() -> Bool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | schedule(firstRun: false)
78 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:77:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
77 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
78 | }
79 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:74:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
72 | execute: @escaping () -> Bool
73 | ) {
74 | func schedule(firstRun: Bool) {
| `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:93:17: warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
91 | func schedule(firstRun: Bool) {
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
| |- warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
94 | schedule(firstRun: false)
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
94 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
94 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:91:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
89 | execute: @escaping (@escaping () -> Void) -> Void
90 | ) {
91 | func schedule(firstRun: Bool) {
| `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:222:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
219 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
220 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
221 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
222 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
223 | }
224 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:222:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
220 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
221 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
222 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
223 | }
224 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:238:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
235 | }
236 |
237 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
238 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
239 | }
240 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:33:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
31 | completion: @escaping (Result<R, Error>) -> Void
32 | ) where Success == Void, Failure == Never {
33 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
34 | let result: Result<R, Error>
35 | do {
:
38 | result = .failure(error)
39 | }
40 | queue.async { completion(result) }
| `- note: closure captures 'completion' which is accessible to code in the current task
41 | }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:49:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
47 | completion: @escaping (R) -> Void
48 | ) where Success == Void, Failure == Never {
49 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
50 | let result = await body()
51 | queue.async { completion(result) }
| `- note: closure captures 'completion' which is accessible to code in the current task
52 | }
53 | }
[56/69] Compiling SpellbookFoundation Synchronized.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:60:79: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
56 | qos: DispatchQoS = .unspecified,
57 | flags: DispatchWorkItemFlags = [],
58 | execute work: @escaping () -> Void
| `- note: parameter 'work' is implicitly non-sendable
59 | ) {
60 | asyncAfter(deadline: .now() + delay, qos: qos, flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
61 | }
62 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:76:20: warning: capture of 'execute' with non-sendable type '() -> Bool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | func schedule(firstRun: Bool) {
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
| |- warning: capture of 'execute' with non-sendable type '() -> Bool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | schedule(firstRun: false)
78 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:77:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
77 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
78 | }
79 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:74:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
72 | execute: @escaping () -> Bool
73 | ) {
74 | func schedule(firstRun: Bool) {
| `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:93:17: warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
91 | func schedule(firstRun: Bool) {
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
| |- warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
94 | schedule(firstRun: false)
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
94 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
94 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:91:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
89 | execute: @escaping (@escaping () -> Void) -> Void
90 | ) {
91 | func schedule(firstRun: Bool) {
| `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:222:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
219 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
220 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
221 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
222 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
223 | }
224 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:222:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
220 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
221 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
222 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
223 | }
224 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:238:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
235 | }
236 |
237 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
238 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
239 | }
240 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:33:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
31 | completion: @escaping (Result<R, Error>) -> Void
32 | ) where Success == Void, Failure == Never {
33 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
34 | let result: Result<R, Error>
35 | do {
:
38 | result = .failure(error)
39 | }
40 | queue.async { completion(result) }
| `- note: closure captures 'completion' which is accessible to code in the current task
41 | }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:49:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
47 | completion: @escaping (R) -> Void
48 | ) where Success == Void, Failure == Never {
49 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
50 | let result = await body()
51 | queue.async { completion(result) }
| `- note: closure captures 'completion' which is accessible to code in the current task
52 | }
53 | }
[57/69] Compiling SpellbookFoundation SynchronizedObjC.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:60:79: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
56 | qos: DispatchQoS = .unspecified,
57 | flags: DispatchWorkItemFlags = [],
58 | execute work: @escaping () -> Void
| `- note: parameter 'work' is implicitly non-sendable
59 | ) {
60 | asyncAfter(deadline: .now() + delay, qos: qos, flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
61 | }
62 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:76:20: warning: capture of 'execute' with non-sendable type '() -> Bool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | func schedule(firstRun: Bool) {
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
| |- warning: capture of 'execute' with non-sendable type '() -> Bool' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | schedule(firstRun: false)
78 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:77:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
77 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
78 | }
79 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:74:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
72 | execute: @escaping () -> Bool
73 | ) {
74 | func schedule(firstRun: Bool) {
| `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
75 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
76 | if execute() {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:93:17: warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
91 | func schedule(firstRun: Bool) {
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
| |- warning: capture of 'execute' with non-sendable type '(@escaping () -> Void) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
94 | schedule(firstRun: false)
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
94 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:94:21: warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
94 | schedule(firstRun: false)
| |- warning: capture of 'schedule(firstRun:)' with non-sendable type '(Bool) -> ()' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - DispatchQueue.swift:91:14: warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
89 | execute: @escaping (@escaping () -> Void) -> Void
90 | ) {
91 | func schedule(firstRun: Bool) {
| `- warning: concurrently-executed local function 'schedule(firstRun:)' must be marked as '@Sendable'; this is an error in the Swift 6 language mode
92 | asyncAfter(delay: (firstRun && immediately) ? 0 : interval, qos: qos, flags: flags) {
93 | execute {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:222:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
219 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
220 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
221 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
222 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
223 | }
224 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:222:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
220 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
221 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
222 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
223 | }
224 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:238:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
235 | }
236 |
237 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
238 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
239 | }
240 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:33:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
31 | completion: @escaping (Result<R, Error>) -> Void
32 | ) where Success == Void, Failure == Never {
33 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
34 | let result: Result<R, Error>
35 | do {
:
38 | result = .failure(error)
39 | }
40 | queue.async { completion(result) }
| `- note: closure captures 'completion' which is accessible to code in the current task
41 | }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:49:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
47 | completion: @escaping (R) -> Void
48 | ) where Success == Void, Failure == Never {
49 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
50 | let result = await body()
51 | queue.async { completion(result) }
| `- note: closure captures 'completion' which is accessible to code in the current task
52 | }
53 | }
[58/69] Compiling SpellbookFoundation EventAsk.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
24 | import os
25 |
26 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
27 | func _custom(
28 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 | private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:97:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
97 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | }
99 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:23:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
21 | // SOFTWARE.
22 |
23 | import Combine
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
24 | import Foundation
25 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:104:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
104 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
105 | }
106 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:96:103: warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
94 | public func stream(suppressInitialNotify: Bool = false) -> AsyncStream<(Value, Any?)> {
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
| `- warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
97 | continuation.onTermination = { _ in subscription.cancel() }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:103:103: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
101 | public func valueStream(suppressInitialNotify: Bool = false) -> AsyncStream<Value> {
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
104 | continuation.onTermination = { _ in subscription.cancel() }
105 | }
[59/69] Compiling SpellbookFoundation EventNotify.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
24 | import os
25 |
26 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
27 | func _custom(
28 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 | private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:97:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
97 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | }
99 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:23:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
21 | // SOFTWARE.
22 |
23 | import Combine
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
24 | import Foundation
25 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:104:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
104 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
105 | }
106 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:96:103: warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
94 | public func stream(suppressInitialNotify: Bool = false) -> AsyncStream<(Value, Any?)> {
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
| `- warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
97 | continuation.onTermination = { _ in subscription.cancel() }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:103:103: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
101 | public func valueStream(suppressInitialNotify: Bool = false) -> AsyncStream<Value> {
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
104 | continuation.onTermination = { _ in subscription.cancel() }
105 | }
[60/69] Compiling SpellbookFoundation ValueObservable.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
24 | import os
25 |
26 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
27 | func _custom(
28 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 | private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:97:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
97 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | }
99 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:23:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
21 | // SOFTWARE.
22 |
23 | import Combine
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
24 | import Foundation
25 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:104:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
104 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
105 | }
106 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:96:103: warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
94 | public func stream(suppressInitialNotify: Bool = false) -> AsyncStream<(Value, Any?)> {
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
| `- warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
97 | continuation.onTermination = { _ in subscription.cancel() }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:103:103: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
101 | public func valueStream(suppressInitialNotify: Bool = false) -> AsyncStream<Value> {
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
104 | continuation.onTermination = { _ in subscription.cancel() }
105 | }
[61/69] Compiling SpellbookFoundation ValueObserving.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
24 | import os
25 |
26 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
27 | func _custom(
28 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 | private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:97:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
97 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | }
99 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:23:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
21 | // SOFTWARE.
22 |
23 | import Combine
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
24 | import Foundation
25 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:104:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
104 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
105 | }
106 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:96:103: warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
94 | public func stream(suppressInitialNotify: Bool = false) -> AsyncStream<(Value, Any?)> {
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
| `- warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
97 | continuation.onTermination = { _ in subscription.cancel() }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:103:103: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
101 | public func valueStream(suppressInitialNotify: Bool = false) -> AsyncStream<Value> {
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
104 | continuation.onTermination = { _ in subscription.cancel() }
105 | }
[62/69] Compiling SpellbookFoundation ValueStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
24 | import os
25 |
26 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
27 | func _custom(
28 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 | private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:97:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
97 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | }
99 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:23:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
21 | // SOFTWARE.
22 |
23 | import Combine
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
24 | import Foundation
25 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:104:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
104 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
105 | }
106 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:96:103: warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
94 | public func stream(suppressInitialNotify: Bool = false) -> AsyncStream<(Value, Any?)> {
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
| `- warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
97 | continuation.onTermination = { _ in subscription.cancel() }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:103:103: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
101 | public func valueStream(suppressInitialNotify: Bool = false) -> AsyncStream<Value> {
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
104 | continuation.onTermination = { _ in subscription.cancel() }
105 | }
[63/69] Compiling SpellbookFoundation ValueView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:26:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
24 | import os
25 |
26 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
27 | func _custom(
28 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:58:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
56 | }
57 |
58 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
59 | private let pointer: UnsafeMutablePointer<atomic_flag>
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:97:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
97 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | }
99 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:23:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
21 | // SOFTWARE.
22 |
23 | import Combine
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
24 | import Foundation
25 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:104:49: warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
104 | continuation.onTermination = { _ in subscription.cancel() }
| `- warning: capture of 'subscription' with non-sendable type 'AnyCancellable' in a `@Sendable` closure; this is an error in the Swift 6 language mode
105 | }
106 | }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
2 | final public class AnyCancellable : Cancellable, Hashable {
| `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
3 | public init(_ cancel: @escaping () -> Void)
4 | public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:96:103: warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
94 | public func stream(suppressInitialNotify: Bool = false) -> AsyncStream<(Value, Any?)> {
95 | .init { continuation in
96 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield(($0, $1)) }
| `- warning: task-isolated value of type '(Self.Value, Any?)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
97 | continuation.onTermination = { _ in subscription.cancel() }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:103:103: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
101 | public func valueStream(suppressInitialNotify: Bool = false) -> AsyncStream<Value> {
102 | .init { continuation in
103 | let subscription = subscribe(suppressInitialNotify: suppressInitialNotify) { continuation.yield($0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
104 | continuation.onTermination = { _ in subscription.cancel() }
105 | }
[64/69] Compiling SpellbookFoundation Internal.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[65/69] Compiling SpellbookFoundation AuditToken.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[66/69] Compiling SpellbookFoundation BridgedCEnum.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[67/69] Compiling SpellbookFoundation MachTime.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[68/69] Compiling SpellbookFoundation POD+Swift.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[69/69] Compiling SpellbookFoundation Unsafe.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[70/84] Compiling SpellbookHTTP HTTPResult.swift
[71/84] Compiling SpellbookHTTP HTTPTypes.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:33:23: warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
31 |
32 | extension HTTPMethod {
33 | public static let get = Self(rawValue: "GET")
| |- warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'get' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
34 | public static let post = Self(rawValue: "POST")
35 | public static let patch = Self(rawValue: "PATCH")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:34:23: warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
32 | extension HTTPMethod {
33 | public static let get = Self(rawValue: "GET")
34 | public static let post = Self(rawValue: "POST")
| |- warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'post' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 | public static let patch = Self(rawValue: "PATCH")
36 | public static let delete = Self(rawValue: "DELETE")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:35:23: warning: static property 'patch' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
33 | public static let get = Self(rawValue: "GET")
34 | public static let post = Self(rawValue: "POST")
35 | public static let patch = Self(rawValue: "PATCH")
| |- warning: static property 'patch' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'patch' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | public static let delete = Self(rawValue: "DELETE")
37 | public static let put = Self(rawValue: "PUT")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:36:23: warning: static property 'delete' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
34 | public static let post = Self(rawValue: "POST")
35 | public static let patch = Self(rawValue: "PATCH")
36 | public static let delete = Self(rawValue: "DELETE")
| |- warning: static property 'delete' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'delete' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 | public static let put = Self(rawValue: "PUT")
38 | public static let options = Self(rawValue: "OPTIONS")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:37:23: warning: static property 'put' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
35 | public static let patch = Self(rawValue: "PATCH")
36 | public static let delete = Self(rawValue: "DELETE")
37 | public static let put = Self(rawValue: "PUT")
| |- warning: static property 'put' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'put' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | public static let options = Self(rawValue: "OPTIONS")
39 | public static let head = Self(rawValue: "HEAD")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:38:23: warning: static property 'options' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
36 | public static let delete = Self(rawValue: "DELETE")
37 | public static let put = Self(rawValue: "PUT")
38 | public static let options = Self(rawValue: "OPTIONS")
| |- warning: static property 'options' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'options' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | public static let head = Self(rawValue: "HEAD")
40 | public static let trace = Self(rawValue: "TRACE")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:39:23: warning: static property 'head' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
37 | public static let put = Self(rawValue: "PUT")
38 | public static let options = Self(rawValue: "OPTIONS")
39 | public static let head = Self(rawValue: "HEAD")
| |- warning: static property 'head' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'head' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | public static let trace = Self(rawValue: "TRACE")
41 | public static let connect = Self(rawValue: "CONNECT")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:40:23: warning: static property 'trace' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
38 | public static let options = Self(rawValue: "OPTIONS")
39 | public static let head = Self(rawValue: "HEAD")
40 | public static let trace = Self(rawValue: "TRACE")
| |- warning: static property 'trace' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'trace' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 | public static let connect = Self(rawValue: "CONNECT")
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:41:23: warning: static property 'connect' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
39 | public static let head = Self(rawValue: "HEAD")
40 | public static let trace = Self(rawValue: "TRACE")
41 | public static let connect = Self(rawValue: "CONNECT")
| |- warning: static property 'connect' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'connect' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:57:23: warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
48 | }
49 |
50 | public struct HTTPHeader: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPHeader' conform to the 'Sendable' protocol
51 | public var rawValue: String
52 | public init(rawValue: String) { self.rawValue = rawValue }
:
55 |
56 | extension HTTPHeader {
57 | public static let userAgent = HTTPHeader(rawValue: "user-agent")
| |- warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'userAgent' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 | public static let authorization = HTTPHeader(rawValue: "authorization")
59 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:58:23: warning: static property 'authorization' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
48 | }
49 |
50 | public struct HTTPHeader: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPHeader' conform to the 'Sendable' protocol
51 | public var rawValue: String
52 | public init(rawValue: String) { self.rawValue = rawValue }
:
56 | extension HTTPHeader {
57 | public static let userAgent = HTTPHeader(rawValue: "user-agent")
58 | public static let authorization = HTTPHeader(rawValue: "authorization")
| |- warning: static property 'authorization' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'authorization' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 | }
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:85:23: warning: static property 'basic' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | public struct HTTPAuthorizationType: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPAuthorizationType' conform to the 'Sendable' protocol
66 | public var rawValue: String
67 | public init(rawValue: String) { self.rawValue = rawValue }
:
83 |
84 | extension HTTPAuthorizationType {
85 | public static let basic = HTTPAuthorizationType(rawValue: "Basic")
| |- warning: static property 'basic' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'basic' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | public static let bearer = HTTPAuthorizationType(rawValue: "Bearer")
87 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:86:23: warning: static property 'bearer' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | public struct HTTPAuthorizationType: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPAuthorizationType' conform to the 'Sendable' protocol
66 | public var rawValue: String
67 | public init(rawValue: String) { self.rawValue = rawValue }
:
84 | extension HTTPAuthorizationType {
85 | public static let basic = HTTPAuthorizationType(rawValue: "Basic")
86 | public static let bearer = HTTPAuthorizationType(rawValue: "Bearer")
| |- warning: static property 'bearer' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bearer' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
87 | }
88 |
[72/84] Compiling SpellbookBinaryParsing BinaryWriterOutput.swift
[73/84] Compiling SpellbookBinaryParsing BinaryWriter.swift
[74/84] Compiling SpellbookBinaryParsing BinaryParsingError.swift
[75/84] Compiling SpellbookBinaryParsing BinaryReaderInput.swift
[76/84] Compiling SpellbookBinaryParsing BinaryReader.swift
[77/84] Emitting module SpellbookBinaryParsing
[78/84] Compiling SpellbookHTTP HTTPRequest.swift
[79/84] Compiling SpellbookHTTP HTTPClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPClient.swift:80:17: warning: capture of 'completion' with non-sendable type '(Result<HTTPResult<Data>, any Error>) -> Void' in a `@Sendable` closure
78 | session.dataTask(with: urlRequest) { data, response, error in
79 | if let error {
80 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<HTTPResult<Data>, any Error>) -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
81 | return
82 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPClient.swift:38:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
36 | public func data(for request: () throws -> URLRequest, completion: @escaping (Result<HTTPResult<Data>, any Error>) -> Void) {
37 | let request = Result(catching: request)
38 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
39 | do {
40 | let result = try await data(for: request.get, delegate: nil)
| `- note: closure captures non-Sendable 'self'
41 | completion(.success(result))
| `- note: closure captures non-Sendable 'completion'
42 | } catch {
43 | completion(.failure(error))
[80/84] Emitting module SpellbookHTTP
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:33:23: warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
31 |
32 | extension HTTPMethod {
33 | public static let get = Self(rawValue: "GET")
| |- warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'get' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
34 | public static let post = Self(rawValue: "POST")
35 | public static let patch = Self(rawValue: "PATCH")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:34:23: warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
32 | extension HTTPMethod {
33 | public static let get = Self(rawValue: "GET")
34 | public static let post = Self(rawValue: "POST")
| |- warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'post' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
35 | public static let patch = Self(rawValue: "PATCH")
36 | public static let delete = Self(rawValue: "DELETE")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:35:23: warning: static property 'patch' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
33 | public static let get = Self(rawValue: "GET")
34 | public static let post = Self(rawValue: "POST")
35 | public static let patch = Self(rawValue: "PATCH")
| |- warning: static property 'patch' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'patch' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | public static let delete = Self(rawValue: "DELETE")
37 | public static let put = Self(rawValue: "PUT")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:36:23: warning: static property 'delete' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
34 | public static let post = Self(rawValue: "POST")
35 | public static let patch = Self(rawValue: "PATCH")
36 | public static let delete = Self(rawValue: "DELETE")
| |- warning: static property 'delete' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'delete' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 | public static let put = Self(rawValue: "PUT")
38 | public static let options = Self(rawValue: "OPTIONS")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:37:23: warning: static property 'put' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
35 | public static let patch = Self(rawValue: "PATCH")
36 | public static let delete = Self(rawValue: "DELETE")
37 | public static let put = Self(rawValue: "PUT")
| |- warning: static property 'put' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'put' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | public static let options = Self(rawValue: "OPTIONS")
39 | public static let head = Self(rawValue: "HEAD")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:38:23: warning: static property 'options' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
36 | public static let delete = Self(rawValue: "DELETE")
37 | public static let put = Self(rawValue: "PUT")
38 | public static let options = Self(rawValue: "OPTIONS")
| |- warning: static property 'options' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'options' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | public static let head = Self(rawValue: "HEAD")
40 | public static let trace = Self(rawValue: "TRACE")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:39:23: warning: static property 'head' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
37 | public static let put = Self(rawValue: "PUT")
38 | public static let options = Self(rawValue: "OPTIONS")
39 | public static let head = Self(rawValue: "HEAD")
| |- warning: static property 'head' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'head' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | public static let trace = Self(rawValue: "TRACE")
41 | public static let connect = Self(rawValue: "CONNECT")
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:40:23: warning: static property 'trace' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
38 | public static let options = Self(rawValue: "OPTIONS")
39 | public static let head = Self(rawValue: "HEAD")
40 | public static let trace = Self(rawValue: "TRACE")
| |- warning: static property 'trace' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'trace' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 | public static let connect = Self(rawValue: "CONNECT")
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:41:23: warning: static property 'connect' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public struct HTTPMethod: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPMethod' conform to the 'Sendable' protocol
28 | public var rawValue: String
29 | public init(rawValue: String) { self.rawValue = rawValue }
:
39 | public static let head = Self(rawValue: "HEAD")
40 | public static let trace = Self(rawValue: "TRACE")
41 | public static let connect = Self(rawValue: "CONNECT")
| |- warning: static property 'connect' is not concurrency-safe because non-'Sendable' type 'HTTPMethod' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'connect' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:57:23: warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
48 | }
49 |
50 | public struct HTTPHeader: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPHeader' conform to the 'Sendable' protocol
51 | public var rawValue: String
52 | public init(rawValue: String) { self.rawValue = rawValue }
:
55 |
56 | extension HTTPHeader {
57 | public static let userAgent = HTTPHeader(rawValue: "user-agent")
| |- warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'userAgent' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
58 | public static let authorization = HTTPHeader(rawValue: "authorization")
59 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:58:23: warning: static property 'authorization' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
48 | }
49 |
50 | public struct HTTPHeader: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPHeader' conform to the 'Sendable' protocol
51 | public var rawValue: String
52 | public init(rawValue: String) { self.rawValue = rawValue }
:
56 | extension HTTPHeader {
57 | public static let userAgent = HTTPHeader(rawValue: "user-agent")
58 | public static let authorization = HTTPHeader(rawValue: "authorization")
| |- warning: static property 'authorization' is not concurrency-safe because non-'Sendable' type 'HTTPHeader' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'authorization' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 | }
60 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:85:23: warning: static property 'basic' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | public struct HTTPAuthorizationType: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPAuthorizationType' conform to the 'Sendable' protocol
66 | public var rawValue: String
67 | public init(rawValue: String) { self.rawValue = rawValue }
:
83 |
84 | extension HTTPAuthorizationType {
85 | public static let basic = HTTPAuthorizationType(rawValue: "Basic")
| |- warning: static property 'basic' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'basic' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | public static let bearer = HTTPAuthorizationType(rawValue: "Bearer")
87 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPTypes.swift:86:23: warning: static property 'bearer' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | public struct HTTPAuthorizationType: RawRepresentable, Hashable {
| `- note: consider making struct 'HTTPAuthorizationType' conform to the 'Sendable' protocol
66 | public var rawValue: String
67 | public init(rawValue: String) { self.rawValue = rawValue }
:
84 | extension HTTPAuthorizationType {
85 | public static let basic = HTTPAuthorizationType(rawValue: "Basic")
86 | public static let bearer = HTTPAuthorizationType(rawValue: "Bearer")
| |- warning: static property 'bearer' is not concurrency-safe because non-'Sendable' type 'HTTPAuthorizationType' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bearer' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
87 | }
88 |
[81/84] Compiling SpellbookTestUtils Testing.swift
[82/84] Compiling SpellbookTestUtils TestError.swift
[83/84] Compiling SpellbookTestUtils Extensions - XCTestCase.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:38:23: warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | public static var waitRate = 100.0
37 | #else
38 | public static var waitRate = 1.0
| |- warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'waitRate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'waitRate' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | #endif
40 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:41:23: warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | #endif
40 |
41 | public static var waitTimeout: TimeInterval = 0.5
| |- warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'waitTimeout' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'waitTimeout' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | public static var testBundle: Bundle {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:67:9: warning: call to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
63 |
64 | @discardableResult
65 | public func waitForExpectations(timeout: TimeInterval = XCTestCase.waitTimeout, ignoreWaitRate: Bool) -> Error? {
| `- note: add '@MainActor' to make instance method 'waitForExpectations(timeout:ignoreWaitRate:)' part of global actor 'MainActor'
66 | var error: Error?
67 | waitForExpectations(timeout: timeout * Self.waitRate) {
| `- warning: call to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
68 | error = $0
69 | }
XCTest.XCTestCase:5:26: note: calls to instance method 'waitForExpectations(timeout:handler:)' from outside of its actor context are implicitly asynchronous
3 | @available(swift, obsoleted: 3, renamed: "expectation(description:)")
4 | open func expectationWithDescription(_ description: String) -> XCTestExpectation
5 | @MainActor open func waitForExpectations(timeout: TimeInterval, handler: (@Sendable ((any Error)?) -> Void)? = nil)
| `- note: calls to instance method 'waitForExpectations(timeout:handler:)' from outside of its actor context are implicitly asynchronous
6 | @available(swift, obsoleted: 3, renamed: "waitForExpectations(timeout:handler:)")
7 | @MainActor open func waitForExpectationsWithTimeout(_ timeout: TimeInterval, handler: (@Sendable ((any Error)?) -> Void)? = nil)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:68:13: warning: mutation of captured var 'error' in concurrently-executing code
66 | var error: Error?
67 | waitForExpectations(timeout: timeout * Self.waitRate) {
68 | error = $0
| `- warning: mutation of captured var 'error' in concurrently-executing code
69 | }
70 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:67:9: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
65 | public func waitForExpectations(timeout: TimeInterval = XCTestCase.waitTimeout, ignoreWaitRate: Bool) -> Error? {
66 | var error: Error?
67 | waitForExpectations(timeout: timeout * Self.waitRate) {
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' risks causing data races between main actor-isolated and task-isolated uses
68 | error = $0
69 | }
[84/84] Emitting module SpellbookTestUtils
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:38:23: warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | public static var waitRate = 100.0
37 | #else
38 | public static var waitRate = 1.0
| |- warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'waitRate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'waitRate' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | #endif
40 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:41:23: warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | #endif
40 |
41 | public static var waitTimeout: TimeInterval = 0.5
| |- warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'waitTimeout' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'waitTimeout' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | public static var testBundle: Bundle {
Build complete! (29.46s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SwiftSpellbook",
"name" : "SwiftSpellbook",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
}
],
"products" : [
{
"name" : "SpellbookFoundation",
"targets" : [
"SpellbookFoundation"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SpellbookHTTP",
"targets" : [
"SpellbookHTTP"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SpellbookBinaryParsing",
"targets" : [
"SpellbookBinaryParsing"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SpellbookTestUtils",
"targets" : [
"SpellbookTestUtils"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "_SpellbookFoundationObjC",
"module_type" : "ClangTarget",
"name" : "_SpellbookFoundationObjC",
"path" : "Sources/SpellbookFoundationObjC",
"product_memberships" : [
"SpellbookFoundation",
"SpellbookHTTP",
"SpellbookBinaryParsing",
"SpellbookTestUtils"
],
"sources" : [
"SpellbookObjC.mm"
],
"type" : "library"
},
{
"c99name" : "SpellbookTests",
"module_type" : "SwiftTarget",
"name" : "SpellbookTests",
"path" : "Tests/SpellbookTests",
"sources" : [
"BinaryParsing/BinaryParsingTests.swift",
"Common/BlockingQueueTests.swift",
"Common/CancellationTokenTests.swift",
"Common/CollectionDiffTests.swift",
"Common/ObjectBuilderTests.swift",
"Common/OtherCommonTests.swift",
"Common/SBLogTests.swift",
"Common/SBUnitTests.swift",
"Common/UtilsTests.swift",
"Common/WildcardExpressionTests.swift",
"DictionaryParsing/DictionaryParsingTests.swift",
"Errors/CommonErrorTests.swift",
"Errors/ErrorExtensionsTests.swift",
"Errors/NSErrorTests.swift",
"Extensions Tests/CodableTests.swift",
"Extensions Tests/CollectionsTests.swift",
"Extensions Tests/StandardTypesTests.swift",
"Filesystem & Bundle/FileEnumeratorTests.swift",
"Filesystem & Bundle/FileManagerTests.swift",
"Filesystem & Bundle/FileStoreTests.swift",
"Filesystem & Bundle/TemporaryDirectoryTests.swift",
"GUITests/GUITests.swift",
"LowLevel/AuditTokenTests.swift",
"LowLevel/MachTests.swift",
"LowLevel/UnsafeTests.swift",
"Observing/EventAskTests.swift",
"Observing/EventNotifyTests.swift",
"Observing/ObservableTests.swift",
"Observing/ValueObservingTests.swift",
"Observing/ValueStoreTests.swift",
"Other/ObjCTests.swift",
"Threading & Concurrency/ConcurrentBlockOperationTests.swift",
"Threading & Concurrency/DispatchQueueExtensionsTests.swift",
"Threading & Concurrency/SynchronousExecutorTests.swift",
"Types & PropertyWrappers/PropertyWrapperTests.swift",
"Types & PropertyWrappers/RefreshableTests.swift",
"Types & PropertyWrappers/ResourceTests.swift",
"Types & PropertyWrappers/TypesTests.swift"
],
"target_dependencies" : [
"SpellbookFoundation",
"SpellbookBinaryParsing",
"SpellbookTestUtils"
],
"type" : "test"
},
{
"c99name" : "SpellbookTestUtilsTests",
"module_type" : "SwiftTarget",
"name" : "SpellbookTestUtilsTests",
"path" : "Tests/SpellbookTestUtilsTests",
"sources" : [
"TestingTests.swift"
],
"target_dependencies" : [
"SpellbookFoundation",
"SpellbookTestUtils"
],
"type" : "test"
},
{
"c99name" : "SpellbookTestUtils",
"module_type" : "SwiftTarget",
"name" : "SpellbookTestUtils",
"path" : "Sources/SpellbookTestUtils",
"product_memberships" : [
"SpellbookTestUtils"
],
"sources" : [
"Extensions - XCTestCase.swift",
"TestError.swift",
"Testing.swift"
],
"target_dependencies" : [
"SpellbookFoundation"
],
"type" : "library"
},
{
"c99name" : "SpellbookHTTP",
"module_type" : "SwiftTarget",
"name" : "SpellbookHTTP",
"path" : "Sources/SpellbookHTTP",
"product_memberships" : [
"SpellbookHTTP"
],
"sources" : [
"HTTPClient.swift",
"HTTPRequest.swift",
"HTTPResult.swift",
"HTTPTypes.swift"
],
"target_dependencies" : [
"SpellbookFoundation"
],
"type" : "library"
},
{
"c99name" : "SpellbookFoundation",
"module_type" : "SwiftTarget",
"name" : "SpellbookFoundation",
"path" : "Sources/SpellbookFoundation",
"product_memberships" : [
"SpellbookFoundation",
"SpellbookHTTP",
"SpellbookBinaryParsing",
"SpellbookTestUtils"
],
"sources" : [
"Combine/Extensions - Combine.swift",
"Combine/Proxies - Combine.swift",
"Common/Benchmark.swift",
"Common/CancellationToken.swift",
"Common/CollectionDiff.swift",
"Common/Environment.swift",
"Common/Exceptions.swift",
"Common/Extensions - Codable.swift",
"Common/Extensions - Collections.swift",
"Common/Extensions - Comparable.swift",
"Common/Extensions - Formatters.swift",
"Common/Extensions - StandardTypes.swift",
"Common/SBUnit.swift",
"Common/SpellbookLog.swift",
"Common/Utils.swift",
"Common/ValueBuilder.swift",
"Common/WildcardExpression.swift",
"DictionaryParsing/DictionaryCodingKey.swift",
"DictionaryParsing/DictionaryReader.swift",
"DictionaryParsing/DictionaryWriter.swift",
"Errors/CommonError.swift",
"Errors/CustomErrorUpdating.swift",
"Errors/Extensions - Error.swift",
"Errors/Extensions - NSError.swift",
"Errors/IOKitError.swift",
"Filesystem & Bundle/Extensions - Bundle.swift",
"Filesystem & Bundle/Extensions - FileManager.swift",
"Filesystem & Bundle/FileEnumerator.swift",
"Filesystem & Bundle/FileStore.swift",
"Filesystem & Bundle/TemporaryDirectory.swift",
"GUI/Extensions - CoreGraphics.swift",
"GUI/RGBColor.swift",
"Internal.swift",
"Low Level/AuditToken.swift",
"Low Level/BridgedCEnum.swift",
"Low Level/MachTime.swift",
"Low Level/POD+Swift.swift",
"Low Level/Unsafe.swift",
"Private/_ValueUpdateWrapping.swift",
"System & Hardware/DeviceInfo.swift",
"System & Hardware/Extensions - ProcessInfo.swift",
"Threading & Concurrency/Atomic.swift",
"Threading & Concurrency/BlockingQueue.swift",
"Threading & Concurrency/ConcurrentBlockOperation.swift",
"Threading & Concurrency/Extensions - DispatchQueue.swift",
"Threading & Concurrency/Extensions - Locks.swift",
"Threading & Concurrency/Extensions - Task.swift",
"Threading & Concurrency/PosixLocks.swift",
"Threading & Concurrency/Synchronized.swift",
"Threading & Concurrency/SynchronizedObjC.swift",
"Threading & Concurrency/SynchronousExecutor.swift",
"Types & PropertyWrappers/Boxing.swift",
"Types & PropertyWrappers/Closure.swift",
"Types & PropertyWrappers/Refreshable.swift",
"Types & PropertyWrappers/Resource (RAII).swift",
"Types & PropertyWrappers/Types.swift",
"ValueObserving/EventAsk.swift",
"ValueObserving/EventNotify.swift",
"ValueObserving/ValueObservable.swift",
"ValueObserving/ValueObserving.swift",
"ValueObserving/ValueStore.swift",
"ValueObserving/ValueView.swift"
],
"target_dependencies" : [
"_SpellbookFoundationObjC"
],
"type" : "library"
},
{
"c99name" : "SpellbookBinaryParsing",
"module_type" : "SwiftTarget",
"name" : "SpellbookBinaryParsing",
"path" : "Sources/SpellbookBinaryParsing",
"product_memberships" : [
"SpellbookBinaryParsing"
],
"sources" : [
"BinaryParsingError.swift",
"BinaryReader.swift",
"BinaryReaderInput.swift",
"BinaryWriter.swift",
"BinaryWriterOutput.swift"
],
"target_dependencies" : [
"SpellbookFoundation"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.