Build Information
Successful build of swift-tools-support-async, reference main (8fcd85
), with Swift 6.0 for macOS (SPM) on 24 Jan 2025 13:02:57 UTC.
Swift 6 data race errors: 20
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
128 | switch promise.state {
129 | case .inProgress:
130 | return operation(value)
| |- warning: capture of 'operation' with non-sendable type '(Value) -> LLBFuture<O>' (aka '(Value) -> EventLoopFuture<O>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
131 | case .fulfilled:
132 | return self.eventLoop.makeFailedFuture(LLBCancellablePromiseError.promiseFulfilled)
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/CancellablePromise.swift:132:24: warning: capture of 'self' with non-sendable type 'EventLoopFuture<Value>' in a `@Sendable` closure
130 | return operation(value)
131 | case .fulfilled:
132 | return self.eventLoop.makeFailedFuture(LLBCancellablePromiseError.promiseFulfilled)
| `- warning: capture of 'self' with non-sendable type 'EventLoopFuture<Value>' in a `@Sendable` closure
133 | case .cancelled:
134 | return self.eventLoop.makeFailedFuture(LLBCancellablePromiseError.promiseCancelled)
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/CancellablePromise.swift:146:24: warning: capture of 'operation' with non-sendable type '(Value) -> O' in a `@Sendable` closure
144 | switch promise.state {
145 | case .inProgress:
146 | return operation(value)
| |- warning: capture of 'operation' with non-sendable type '(Value) -> O' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
147 | case .fulfilled:
148 | throw LLBCancellablePromiseError.promiseFulfilled
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:126:13: warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: generic class 'LLBFutureDeduplicator' does not conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
124 |
125 | resolver(key).map { result in
126 | self.lock.withLockVoid {
| `- warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in a `@Sendable` closure
127 | guard self.inFlightRequests[key]?.result.futureResult === future else {
128 | return
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:127:45: warning: capture of 'key' with non-sendable type 'Key' in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
125 | resolver(key).map { result in
126 | self.lock.withLockVoid {
127 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'key' with non-sendable type 'Key' in a `@Sendable` closure
128 | return
129 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:127:75: warning: capture of 'future' with non-sendable type 'LLBFuture<Value>' (aka 'EventLoopFuture<Value>') in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
125 | resolver(key).map { result in
126 | self.lock.withLockVoid {
127 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'future' with non-sendable type 'LLBFuture<Value>' (aka 'EventLoopFuture<Value>') in a `@Sendable` closure
128 | return
129 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:127:23: warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: generic class 'LLBFutureDeduplicator' does not conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
125 | resolver(key).map { result in
126 | self.lock.withLockVoid {
127 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in an isolated closure; this is an error in the Swift 6 language mode
128 | return
129 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:127:45: warning: capture of 'key' with non-sendable type 'Key' in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
125 | resolver(key).map { result in
126 | self.lock.withLockVoid {
127 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'key' with non-sendable type 'Key' in an isolated closure; this is an error in the Swift 6 language mode
128 | return
129 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:127:75: warning: capture of 'future' with non-sendable type 'LLBFuture<Value>' (aka 'EventLoopFuture<Value>') in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
125 | resolver(key).map { result in
126 | self.lock.withLockVoid {
127 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'future' with non-sendable type 'LLBFuture<Value>' (aka 'EventLoopFuture<Value>') in an isolated closure; this is an error in the Swift 6 language mode
128 | return
129 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:136:50: warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: generic class 'LLBFutureDeduplicator' does not conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
134 | return result
135 | }.flatMapErrorThrowing { error in
136 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
| `- warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in a `@Sendable` closure
137 | self.lock.withLockVoid {
138 | guard self.inFlightRequests[key]?.result.futureResult === future else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:138:45: warning: capture of 'key' with non-sendable type 'Key' in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
136 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
137 | self.lock.withLockVoid {
138 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'key' with non-sendable type 'Key' in a `@Sendable` closure
139 | return
140 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:138:75: warning: capture of 'future' with non-sendable type 'LLBFuture<Value>' (aka 'EventLoopFuture<Value>') in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
136 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
137 | self.lock.withLockVoid {
138 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'future' with non-sendable type 'LLBFuture<Value>' (aka 'EventLoopFuture<Value>') in a `@Sendable` closure
139 | return
140 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:142:51: warning: capture of 'promise' with non-sendable type 'LLBPromise<Value>' (aka 'EventLoopPromise<Value>') in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
140 | }
141 | if let interval = expires {
142 | self.inFlightRequests[key] = (promise, now + interval)
| `- warning: capture of 'promise' with non-sendable type 'LLBPromise<Value>' (aka 'EventLoopPromise<Value>') in a `@Sendable` closure
143 | } else {
144 | self.inFlightRequests[key] = nil
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:138:23: warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: generic class 'LLBFutureDeduplicator' does not conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
136 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
137 | self.lock.withLockVoid {
138 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in an isolated closure; this is an error in the Swift 6 language mode
139 | return
140 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:138:45: warning: capture of 'key' with non-sendable type 'Key' in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
136 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
137 | self.lock.withLockVoid {
138 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'key' with non-sendable type 'Key' in an isolated closure; this is an error in the Swift 6 language mode
139 | return
140 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:138:75: warning: capture of 'future' with non-sendable type 'LLBFuture<Value>' (aka 'EventLoopFuture<Value>') in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
136 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
137 | self.lock.withLockVoid {
138 | guard self.inFlightRequests[key]?.result.futureResult === future else {
| `- warning: capture of 'future' with non-sendable type 'LLBFuture<Value>' (aka 'EventLoopFuture<Value>') in an isolated closure; this is an error in the Swift 6 language mode
139 | return
140 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:142:51: warning: capture of 'promise' with non-sendable type 'LLBPromise<Value>' (aka 'EventLoopPromise<Value>') in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
140 | }
141 | if let interval = expires {
142 | self.inFlightRequests[key] = (promise, now + interval)
| `- warning: capture of 'promise' with non-sendable type 'LLBPromise<Value>' (aka 'EventLoopPromise<Value>') in an isolated closure; this is an error in the Swift 6 language mode
143 | } else {
144 | self.inFlightRequests[key] = nil
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:200:13: warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: generic class 'LLBFutureDeduplicator' does not conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
198 |
199 | resolver(created).map { results in
200 | self.lock.withLockVoid {
| `- warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in a `@Sendable` closure
201 | for idx in 0..<created.count {
202 | let key = created[idx]
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:201:32: warning: capture of 'created' with non-sendable type '[Key]' in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
199 | resolver(created).map { results in
200 | self.lock.withLockVoid {
201 | for idx in 0..<created.count {
| `- warning: capture of 'created' with non-sendable type '[Key]' in a `@Sendable` closure
202 | let key = created[idx]
203 | let promise = promises[idx]
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:203:35: warning: capture of 'promises' with non-sendable type '[LLBPromise<Value>]' (aka 'Array<EventLoopPromise<Value>>') in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
201 | for idx in 0..<created.count {
202 | let key = created[idx]
203 | let promise = promises[idx]
| `- warning: capture of 'promises' with non-sendable type '[LLBPromise<Value>]' (aka 'Array<EventLoopPromise<Value>>') in a `@Sendable` closure
204 | guard self.inFlightRequests[key]?.result.futureResult === promise.futureResult else {
205 | continue
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:201:32: warning: capture of 'created' with non-sendable type '[Key]' in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
199 | resolver(created).map { results in
200 | self.lock.withLockVoid {
201 | for idx in 0..<created.count {
| `- warning: capture of 'created' with non-sendable type '[Key]' in an isolated closure; this is an error in the Swift 6 language mode
202 | let key = created[idx]
203 | let promise = promises[idx]
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:203:35: warning: capture of 'promises' with non-sendable type '[LLBPromise<Value>]' (aka 'Array<EventLoopPromise<Value>>') in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
201 | for idx in 0..<created.count {
202 | let key = created[idx]
203 | let promise = promises[idx]
| `- warning: capture of 'promises' with non-sendable type '[LLBPromise<Value>]' (aka 'Array<EventLoopPromise<Value>>') in an isolated closure; this is an error in the Swift 6 language mode
204 | guard self.inFlightRequests[key]?.result.futureResult === promise.futureResult else {
205 | continue
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:204:27: warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: generic class 'LLBFutureDeduplicator' does not conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
202 | let key = created[idx]
203 | let promise = promises[idx]
204 | guard self.inFlightRequests[key]?.result.futureResult === promise.futureResult else {
| `- warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in an isolated closure; this is an error in the Swift 6 language mode
205 | continue
206 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:219:50: warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: generic class 'LLBFutureDeduplicator' does not conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
217 | }.whenFailure { error in
218 | let now = DispatchTime.now()
219 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
| `- warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in a `@Sendable` closure
220 | self.lock.withLockVoid {
221 | for (key, promise) in zip(created, promises) {
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:221:43: warning: capture of 'created' with non-sendable type '[Key]' in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
219 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
220 | self.lock.withLockVoid {
221 | for (key, promise) in zip(created, promises) {
| `- warning: capture of 'created' with non-sendable type '[Key]' in a `@Sendable` closure
222 | guard self.inFlightRequests[key]?.result.futureResult === promise.futureResult else {
223 | continue
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:221:52: warning: capture of 'promises' with non-sendable type '[LLBPromise<Value>]' (aka 'Array<EventLoopPromise<Value>>') in a `@Sendable` closure
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
219 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
220 | self.lock.withLockVoid {
221 | for (key, promise) in zip(created, promises) {
| `- warning: capture of 'promises' with non-sendable type '[LLBPromise<Value>]' (aka 'Array<EventLoopPromise<Value>>') in a `@Sendable` closure
222 | guard self.inFlightRequests[key]?.result.futureResult === promise.futureResult else {
223 | continue
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:221:43: warning: capture of 'created' with non-sendable type '[Key]' in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
219 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
220 | self.lock.withLockVoid {
221 | for (key, promise) in zip(created, promises) {
| `- warning: capture of 'created' with non-sendable type '[Key]' in an isolated closure; this is an error in the Swift 6 language mode
222 | guard self.inFlightRequests[key]?.result.futureResult === promise.futureResult else {
223 | continue
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:221:52: warning: capture of 'promises' with non-sendable type '[LLBPromise<Value>]' (aka 'Array<EventLoopPromise<Value>>') in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
219 | let expires: DispatchTimeInterval? = self.expirationInterval(error)
220 | self.lock.withLockVoid {
221 | for (key, promise) in zip(created, promises) {
| `- warning: capture of 'promises' with non-sendable type '[LLBPromise<Value>]' (aka 'Array<EventLoopPromise<Value>>') in an isolated closure; this is an error in the Swift 6 language mode
222 | guard self.inFlightRequests[key]?.result.futureResult === promise.futureResult else {
223 | continue
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureDeduplicator.swift:222:27: warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in an isolated closure; this is an error in the Swift 6 language mode
16 | ///
17 | /// This cache coalesces requests and avoids re-obtaining values multiple times.
18 | public class LLBFutureDeduplicator<Key: Hashable, Value> {
| `- note: generic class 'LLBFutureDeduplicator' does not conform to the 'Sendable' protocol
19 | /// The futures group.
20 | @usableFromInline
:
220 | self.lock.withLockVoid {
221 | for (key, promise) in zip(created, promises) {
222 | guard self.inFlightRequests[key]?.result.futureResult === promise.futureResult else {
| `- warning: capture of 'self' with non-sendable type 'LLBFutureDeduplicator<Key, Value>' in an isolated closure; this is an error in the Swift 6 language mode
223 | continue
224 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureOperationQueue.swift:29:13: warning: stored property 'workQueue' of 'Sendable'-conforming struct 'State' has non-sendable type 'CircularBuffer<LLBFutureOperationQueue.WorkItem>'; this is an error in the Swift 6 language mode
27 |
28 | /// The queue of operations to run.
29 | var workQueue = NIO.CircularBuffer<WorkItem>()
| `- warning: stored property 'workQueue' of 'Sendable'-conforming struct 'State' has non-sendable type 'CircularBuffer<LLBFutureOperationQueue.WorkItem>'; this is an error in the Swift 6 language mode
30 | }
31 |
32 | struct WorkItem {
| `- note: consider making struct 'WorkItem' conform to the 'Sendable' protocol
33 | let loop: LLBFuturesDispatchLoop
34 | let share: Int
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/FutureOperationQueue.swift:146:17: warning: capture of 'run' with non-sendable type '() -> Void' in a `@Sendable` closure
144 | loop.execute {
145 | notify?.succeed(())
146 | run()
| |- warning: capture of 'run' with non-sendable type '() -> Void' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
147 | }
148 | }
[432/432] Compiling TSFFutures BatchingFutureOperationQueue.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/BatchingFutureOperationQueue.swift:75:13: warning: capture of 'promise' with non-sendable type 'EventLoopPromise<T>' in a `@Sendable` closure
70 |
71 | @inlinable
72 | public func execute<T>(_ body: @escaping () throws -> T) -> LLBFuture<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
73 | let promise = group.next().makePromise(of: T.self)
74 | operationQueue.addOperation {
75 | promise.fulfill(body)
| `- warning: capture of 'promise' with non-sendable type 'EventLoopPromise<T>' in a `@Sendable` closure
76 | }
77 | return promise.futureResult
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/BatchingFutureOperationQueue.swift:75:29: warning: capture of 'body' with non-sendable type '() throws -> T' in a `@Sendable` closure
73 | let promise = group.next().makePromise(of: T.self)
74 | operationQueue.addOperation {
75 | promise.fulfill(body)
| |- warning: capture of 'body' with non-sendable type '() throws -> T' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | return promise.futureResult
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/BatchingFutureOperationQueue.swift:84:21: warning: capture of 'body' with non-sendable type '() -> LLBFuture<T>' (aka '() -> EventLoopFuture<T>') in a `@Sendable` closure
82 | let promise = group.next().makePromise(of: T.self)
83 | operationQueue.addOperation {
84 | let f = body()
| |- warning: capture of 'body' with non-sendable type '() -> LLBFuture<T>' (aka '() -> EventLoopFuture<T>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
85 | f.cascade(to: promise)
86 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFFutures/BatchingFutureOperationQueue.swift:85:27: warning: capture of 'promise' with non-sendable type 'EventLoopPromise<T>' in a `@Sendable` closure
79 |
80 | @inlinable
81 | public func execute<T>(_ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
82 | let promise = group.next().makePromise(of: T.self)
83 | operationQueue.addOperation {
84 | let f = body()
85 | f.cascade(to: promise)
| `- warning: capture of 'promise' with non-sendable type 'EventLoopPromise<T>' in a `@Sendable` closure
86 |
87 | // Wait for completion, to ensure we maintain at most N concurrent operations.
[433/437] Compiling TSFUtility Serializable.swift
[434/437] Compiling TSFUtility ByteBuffer.swift
[435/437] Compiling TSFUtility FastData.swift
[436/437] Emitting module TSFUtility
[437/437] Compiling TSFUtility FutureFileSystem.swift
[438/447] Compiling TSFCAS Object.swift
[439/447] Compiling TSFCAS InMemoryCASDatabase.swift
[440/447] Compiling TSFCAS cas_object.pb.swift
[441/447] Compiling TSFCAS Blake3DataID.swift
[442/447] Compiling TSFCAS data_id.pb.swift
[443/447] Compiling TSFCAS DatabaseSpec.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCAS/DatabaseSpec.swift:35:24: warning: static property 'registeredSchemes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | public struct LLBCASDatabaseSpec {
34 | /// The map of registered schemes.
35 | private static var registeredSchemes: [String: LLBCASDatabaseScheme.Type] = [
| |- warning: static property 'registeredSchemes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'registeredSchemes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'registeredSchemes' 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 | "mem": LLBInMemoryCASDatabaseScheme.self,
37 | "file": LLBFileBackedCASDatabaseScheme.self,
[444/447] Compiling TSFCAS Database.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCAS/Database.swift:150:83: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
148 | public extension Context {
149 | static func with(_ db: LLBCASDatabase) -> Context {
150 | return Context(dictionaryLiteral: (ObjectIdentifier(LLBCASDatabase.self), db as Any))
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
151 | }
152 |
[445/447] Compiling TSFCAS DataID.swift
[446/447] Emitting module TSFCAS
/Users/admin/builder/spi-builder-workspace/Sources/TSFCAS/DatabaseSpec.swift:35:24: warning: static property 'registeredSchemes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | public struct LLBCASDatabaseSpec {
34 | /// The map of registered schemes.
35 | private static var registeredSchemes: [String: LLBCASDatabaseScheme.Type] = [
| |- warning: static property 'registeredSchemes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'registeredSchemes' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'registeredSchemes' 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 | "mem": LLBInMemoryCASDatabaseScheme.self,
37 | "file": LLBFileBackedCASDatabaseScheme.self,
[447/447] Compiling TSFCAS FileBackedCASDatabase.swift
[448/466] Compiling TSFCASFileTree file_tree.pb.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Generated/CASFileTreeProtocol/file_tree.pb.swift:77:21: warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 | extension LLBFileType: CaseIterable {
76 | // The compiler won't synthesize support with the UNRECOGNIZED case.
77 | public static var allCases: [LLBFileType] = [
| |- warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allCases' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allCases' 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
78 | .plainFile,
79 | .executable,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Generated/CASFileTreeProtocol/file_tree.pb.swift:118:21: warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
116 | extension LLBFileDataCompressionMethod: CaseIterable {
117 | // The compiler won't synthesize support with the UNRECOGNIZED case.
118 | public static var allCases: [LLBFileDataCompressionMethod] = [
| |- warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allCases' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allCases' 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
119 | .none,
120 | ]
[449/466] Compiling TSFCASFileTree ConcurrentFilesystemScanner.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Generated/CASFileTreeProtocol/file_tree.pb.swift:77:21: warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 | extension LLBFileType: CaseIterable {
76 | // The compiler won't synthesize support with the UNRECOGNIZED case.
77 | public static var allCases: [LLBFileType] = [
| |- warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allCases' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allCases' 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
78 | .plainFile,
79 | .executable,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Generated/CASFileTreeProtocol/file_tree.pb.swift:118:21: warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
116 | extension LLBFileDataCompressionMethod: CaseIterable {
117 | // The compiler won't synthesize support with the UNRECOGNIZED case.
118 | public static var allCases: [LLBFileDataCompressionMethod] = [
| |- warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allCases' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allCases' 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
119 | .none,
120 | ]
[450/467] Compiling TSFCASFileTree TSCCASFileSystem.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/TSCCASFileSystem.swift:19:9: warning: stored property 'rootTree' of 'Sendable'-conforming class 'TSCCASFileSystem' has non-sendable type 'LLBCASFileTree'; this is an error in the Swift 6 language mode
17 | public final class TSCCASFileSystem: FileSystem {
18 |
19 | let rootTree: LLBCASFileTree
| `- warning: stored property 'rootTree' of 'Sendable'-conforming class 'TSCCASFileSystem' has non-sendable type 'LLBCASFileTree'; this is an error in the Swift 6 language mode
20 | let db: LLBCASDatabase
21 | let client: LLBCASFSClient
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:47:20: note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/TSCCASFileSystem.swift:21:9: warning: stored property 'client' of 'Sendable'-conforming class 'TSCCASFileSystem' has non-sendable type 'LLBCASFSClient'; this is an error in the Swift 6 language mode
19 | let rootTree: LLBCASFileTree
20 | let db: LLBCASDatabase
21 | let client: LLBCASFSClient
| `- warning: stored property 'client' of 'Sendable'-conforming class 'TSCCASFileSystem' has non-sendable type 'LLBCASFSClient'; this is an error in the Swift 6 language mode
22 | let ctx: Context
23 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:18:15: note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/TSCCASFileSystem.swift:55:76: warning: 'init(_:)' is deprecated: use throwing variant instead
53 | if result.info.type == .symlink, isDirectory(path) {
54 | let symlinkContents = try readFileContents(path).cString
55 | return try getDirectoryContents(path.parentDirectory.appending(RelativePath(symlinkContents)))
| `- warning: 'init(_:)' is deprecated: use throwing variant instead
56 | }
57 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/TSCCASFileSystem.swift:75:63: warning: 'init(_:)' is deprecated: use throwing variant instead
73 | return false
74 | }
75 | return isDirectory(path.parentDirectory.appending(RelativePath(symlinkContents)))
| `- warning: 'init(_:)' is deprecated: use throwing variant instead
76 | }
77 |
[451/467] Compiling TSFCASFileTree FileSegmenter.swift
[452/467] Compiling TSFCASFileTree FileTreeParser.swift
[453/467] Compiling TSFCASFileTree Errors.swift
[454/467] Compiling TSFCASFileTree FileInfo.swift
[455/467] Compiling TSFCASFileTree FileTree.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:147:73: warning: reference to captured var 'refs' in concurrently-executing code
145 | // API should be fixed. One option would be to change this class so
146 | // it can directly operate on the encoded representation.
147 | return try self.init(id: id, object: LLBCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'refs' in concurrently-executing code
148 | }
149 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:147:85: warning: reference to captured var 'dirBytes' in concurrently-executing code
145 | // API should be fixed. One option would be to change this class so
146 | // it can directly operate on the encoded representation.
147 | return try self.init(id: id, object: LLBCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'dirBytes' in concurrently-executing code
148 | }
149 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:262:17: warning: capture of 'files' with non-sendable type '[LLBDirectoryEntryID]' in a `@Sendable` closure
25 | }
26 |
27 | public struct LLBDirectoryEntryID {
| `- note: consider making struct 'LLBDirectoryEntryID' conform to the 'Sendable' protocol
28 | public let info: LLBDirectoryEntry
29 | public let id: LLBDataID
:
260 | return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
261 | for (idx, name, result, posixDetails) in mergedEntries {
262 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
| `- warning: capture of 'files' with non-sendable type '[LLBDirectoryEntryID]' in a `@Sendable` closure
263 | }
264 | return LLBCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:264:78: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
262 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
263 | }
264 | return LLBCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:262:17: warning: mutation of captured var 'files' in concurrently-executing code
260 | return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
261 | for (idx, name, result, posixDetails) in mergedEntries {
262 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
| `- warning: mutation of captured var 'files' in concurrently-executing code
263 | }
264 | return LLBCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:264:49: warning: reference to captured var 'files' in concurrently-executing code
262 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
263 | }
264 | return LLBCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:358:17: warning: capture of 'files' with non-sendable type '[LLBDirectoryEntryID]' in a `@Sendable` closure
25 | }
26 |
27 | public struct LLBDirectoryEntryID {
| `- note: consider making struct 'LLBDirectoryEntryID' conform to the 'Sendable' protocol
28 | public let info: LLBDirectoryEntry
29 | public let id: LLBDataID
:
356 | return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
357 | for (idx, name, result, posixDetails) in mergedEntries {
358 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
| `- warning: capture of 'files' with non-sendable type '[LLBDirectoryEntryID]' in a `@Sendable` closure
359 | }
360 | return LLBCASFileTree.create(files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:360:78: warning: capture of 'reversedTrees' with non-sendable type '[LLBCASFileTree]' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
358 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
359 | }
360 | return LLBCASFileTree.create(files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
| `- warning: capture of 'reversedTrees' with non-sendable type '[LLBCASFileTree]' in a `@Sendable` closure
361 | }
362 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:358:17: warning: mutation of captured var 'files' in concurrently-executing code
356 | return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
357 | for (idx, name, result, posixDetails) in mergedEntries {
358 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
| `- warning: mutation of captured var 'files' in concurrently-executing code
359 | }
360 | return LLBCASFileTree.create(files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:360:49: warning: reference to captured var 'files' in concurrently-executing code
358 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
359 | }
360 | return LLBCASFileTree.create(files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
361 | }
362 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:421:64: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
419 | .init(info: LLBDirectoryEntry(name: component, type: .directory, size: tree.aggregateSize,
420 | posixDetails: tree.posixDetails),
421 | id: tree.id)], in: db, posixDetails: self.posixDetails, ctx)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
422 | }
423 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:426:13: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
424 |
425 | return rerootedTree.flatMap { tree in
426 | self.merge(with: tree, in: db, ctx)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
427 | }
428 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:458:32: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
456 | }
457 | return subtree.remove(components: components.dropFirst(), in: db, ctx).flatMap { newSubtree in
458 | var newFiles = self.files
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
459 | var newRefs = self.object.refs
460 | newFiles[index].size = .init(clamping: newSubtree.aggregateSize)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:458:32: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
456 | }
457 | return subtree.remove(components: components.dropFirst(), in: db, ctx).flatMap { newSubtree in
458 | var newFiles = self.files
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
459 | var newRefs = self.object.refs
460 | newFiles[index].size = .init(clamping: newSubtree.aggregateSize)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeExport.swift:211:13: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
180 |
181 |
182 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
183 | let db: LLBCASDatabase
184 | let exportPathPrefix: AbsolutePath
:
209 |
210 | let casObjectFuture: LLBFuture<LLBCASObject> = db.get(item.id, ctx).flatMapThrowing { casObject in
211 | self.stats.downloadsInProgressObjects_.wrappingDecrement(ordering: .relaxed)
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
212 |
213 | guard let casObject = casObject else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeExport.swift:226:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
180 |
181 |
182 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
183 | let db: LLBCASDatabase
184 | let exportPathPrefix: AbsolutePath
:
224 | // Unblock the current NIO thread.
225 | batcher.execute {
226 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
227 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
228 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeExport.swift:226:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
180 |
181 |
182 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
183 | let db: LLBCASDatabase
184 | let exportPathPrefix: AbsolutePath
:
224 | // Unblock the current NIO thread.
225 | batcher.execute {
226 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
227 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
228 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeExport.swift:233:17: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
180 |
181 |
182 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
183 | let db: LLBCASDatabase
184 | let exportPathPrefix: AbsolutePath
:
231 | } else {
232 | return casObjectFuture.flatMapThrowing { casObject in
233 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
234 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
235 | }
[456/467] Compiling TSFCASFileTree FileTreeExport.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:147:73: warning: reference to captured var 'refs' in concurrently-executing code
145 | // API should be fixed. One option would be to change this class so
146 | // it can directly operate on the encoded representation.
147 | return try self.init(id: id, object: LLBCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'refs' in concurrently-executing code
148 | }
149 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:147:85: warning: reference to captured var 'dirBytes' in concurrently-executing code
145 | // API should be fixed. One option would be to change this class so
146 | // it can directly operate on the encoded representation.
147 | return try self.init(id: id, object: LLBCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'dirBytes' in concurrently-executing code
148 | }
149 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:262:17: warning: capture of 'files' with non-sendable type '[LLBDirectoryEntryID]' in a `@Sendable` closure
25 | }
26 |
27 | public struct LLBDirectoryEntryID {
| `- note: consider making struct 'LLBDirectoryEntryID' conform to the 'Sendable' protocol
28 | public let info: LLBDirectoryEntry
29 | public let id: LLBDataID
:
260 | return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
261 | for (idx, name, result, posixDetails) in mergedEntries {
262 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
| `- warning: capture of 'files' with non-sendable type '[LLBDirectoryEntryID]' in a `@Sendable` closure
263 | }
264 | return LLBCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:264:78: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
262 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
263 | }
264 | return LLBCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:262:17: warning: mutation of captured var 'files' in concurrently-executing code
260 | return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
261 | for (idx, name, result, posixDetails) in mergedEntries {
262 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
| `- warning: mutation of captured var 'files' in concurrently-executing code
263 | }
264 | return LLBCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:264:49: warning: reference to captured var 'files' in concurrently-executing code
262 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
263 | }
264 | return LLBCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:358:17: warning: capture of 'files' with non-sendable type '[LLBDirectoryEntryID]' in a `@Sendable` closure
25 | }
26 |
27 | public struct LLBDirectoryEntryID {
| `- note: consider making struct 'LLBDirectoryEntryID' conform to the 'Sendable' protocol
28 | public let info: LLBDirectoryEntry
29 | public let id: LLBDataID
:
356 | return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
357 | for (idx, name, result, posixDetails) in mergedEntries {
358 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
| `- warning: capture of 'files' with non-sendable type '[LLBDirectoryEntryID]' in a `@Sendable` closure
359 | }
360 | return LLBCASFileTree.create(files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:360:78: warning: capture of 'reversedTrees' with non-sendable type '[LLBCASFileTree]' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
358 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
359 | }
360 | return LLBCASFileTree.create(files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
| `- warning: capture of 'reversedTrees' with non-sendable type '[LLBCASFileTree]' in a `@Sendable` closure
361 | }
362 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:358:17: warning: mutation of captured var 'files' in concurrently-executing code
356 | return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
357 | for (idx, name, result, posixDetails) in mergedEntries {
358 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
| `- warning: mutation of captured var 'files' in concurrently-executing code
359 | }
360 | return LLBCASFileTree.create(files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:360:49: warning: reference to captured var 'files' in concurrently-executing code
358 | files[idx] = .init(info: LLBDirectoryEntry(name: name, type: .directory, size: result.aggregateSize, posixDetails: posixDetails), id: result.id)
359 | }
360 | return LLBCASFileTree.create(files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
361 | }
362 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:421:64: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
419 | .init(info: LLBDirectoryEntry(name: component, type: .directory, size: tree.aggregateSize,
420 | posixDetails: tree.posixDetails),
421 | id: tree.id)], in: db, posixDetails: self.posixDetails, ctx)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
422 | }
423 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:426:13: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
424 |
425 | return rerootedTree.flatMap { tree in
426 | self.merge(with: tree, in: db, ctx)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
427 | }
428 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:458:32: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
456 | }
457 | return subtree.remove(components: components.dropFirst(), in: db, ctx).flatMap { newSubtree in
458 | var newFiles = self.files
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
459 | var newRefs = self.object.refs
460 | newFiles[index].size = .init(clamping: newSubtree.aggregateSize)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:458:32: warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
:
456 | }
457 | return subtree.remove(components: components.dropFirst(), in: db, ctx).flatMap { newSubtree in
458 | var newFiles = self.files
| `- warning: capture of 'self' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
459 | var newRefs = self.object.refs
460 | newFiles[index].size = .init(clamping: newSubtree.aggregateSize)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeExport.swift:211:13: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
180 |
181 |
182 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
183 | let db: LLBCASDatabase
184 | let exportPathPrefix: AbsolutePath
:
209 |
210 | let casObjectFuture: LLBFuture<LLBCASObject> = db.get(item.id, ctx).flatMapThrowing { casObject in
211 | self.stats.downloadsInProgressObjects_.wrappingDecrement(ordering: .relaxed)
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
212 |
213 | guard let casObject = casObject else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeExport.swift:226:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
180 |
181 |
182 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
183 | let db: LLBCASDatabase
184 | let exportPathPrefix: AbsolutePath
:
224 | // Unblock the current NIO thread.
225 | batcher.execute {
226 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
227 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
228 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeExport.swift:226:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
180 |
181 |
182 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
183 | let db: LLBCASDatabase
184 | let exportPathPrefix: AbsolutePath
:
224 | // Unblock the current NIO thread.
225 | batcher.execute {
226 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
227 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
228 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeExport.swift:233:17: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
180 |
181 |
182 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
183 | let db: LLBCASDatabase
184 | let exportPathPrefix: AbsolutePath
:
231 | } else {
232 | return casObjectFuture.flatMapThrowing { casObject in
233 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a `@Sendable` closure
234 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
235 | }
[457/467] Compiling TSFCASFileTree DeclFileTree.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/DeclFileTree.swift:52:81: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
50 | switch declTree {
51 | case .directory:
52 | return storeDir(declTree, ctx).map { LLBCASFSNode(tree: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
53 | case .file:
54 | return storeFile(declTree, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:18:15: note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/DeclFileTree.swift:54:82: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
52 | return storeDir(declTree, ctx).map { LLBCASFSNode(tree: $0, db: self.db) }
53 | case .file:
54 | return storeFile(declTree, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:18:15: note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/DeclFileTree.swift:78:60: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
76 | }
77 | return LLBFuture.whenAllSucceed(infosFutures, on: loop).flatMap { infos in
78 | return LLBCASFileTree.create(files: infos, in: self.db, ctx)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
79 | }
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:18:15: note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
[458/467] Compiling TSFCASFileTree DirectoryEntry.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/DeclFileTree.swift:52:81: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
50 | switch declTree {
51 | case .directory:
52 | return storeDir(declTree, ctx).map { LLBCASFSNode(tree: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
53 | case .file:
54 | return storeFile(declTree, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:18:15: note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/DeclFileTree.swift:54:82: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
52 | return storeDir(declTree, ctx).map { LLBCASFSNode(tree: $0, db: self.db) }
53 | case .file:
54 | return storeFile(declTree, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:18:15: note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/DeclFileTree.swift:78:60: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
76 | }
77 | return LLBFuture.whenAllSucceed(infosFutures, on: loop).flatMap { infos in
78 | return LLBCASFileTree.create(files: infos, in: self.db, ctx)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
79 | }
80 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:18:15: note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
[459/467] Compiling TSFCASFileTree ConcurrentFileTreeWalker.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:45:38: warning: capture of 'self' with non-sendable type 'ConcurrentHierarchyWalker<Item>' in a `@Sendable` closure
25 |
26 | /// Walk the hierarchy with bounded concurrency.
27 | final class ConcurrentHierarchyWalker<Item> {
| `- note: generic class 'ConcurrentHierarchyWalker' does not conform to the 'Sendable' protocol
28 |
29 | private let group: LLBFuturesDispatchGroup
:
43 | self.getChildren(item, ctx)
44 | }.flatMap { more in
45 | let futures = more.map { self.walk($0, ctx) }
| `- warning: capture of 'self' with non-sendable type 'ConcurrentHierarchyWalker<Item>' in a `@Sendable` closure
46 | return LLBFuture.whenAllSucceed(futures, on: self.group.next()).map { _ in () }
47 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:45:38: warning: capture of 'self' with non-sendable type 'ConcurrentHierarchyWalker<Item>' in an isolated closure; this is an error in the Swift 6 language mode
25 |
26 | /// Walk the hierarchy with bounded concurrency.
27 | final class ConcurrentHierarchyWalker<Item> {
| `- note: generic class 'ConcurrentHierarchyWalker' does not conform to the 'Sendable' protocol
28 |
29 | private let group: LLBFuturesDispatchGroup
:
43 | self.getChildren(item, ctx)
44 | }.flatMap { more in
45 | let futures = more.map { self.walk($0, ctx) }
| `- warning: capture of 'self' with non-sendable type 'ConcurrentHierarchyWalker<Item>' in an isolated closure; this is an error in the Swift 6 language mode
46 | return LLBFuture.whenAllSucceed(futures, on: self.group.next()).map { _ in () }
47 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:100:13: warning: capture of 'root' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a `@Sendable` closure
60 | }
61 |
62 | public struct Item {
| `- note: consider making struct 'Item' conform to the 'Sendable' protocol
63 | /// The description of the current CAS filesystem entry.
64 | let arg: FilterArgument
:
98 | let walker = ConcurrentHierarchyWalker(group: db.group, delegate: self)
99 | return walker.walk(root, ctx).map { () in
100 | root.scanResult.reapResult()
| `- warning: capture of 'root' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a `@Sendable` closure
101 | }
102 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:115:33: warning: capture of 'item' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a `@Sendable` closure
60 | }
61 |
62 | public struct Item {
| `- note: consider making struct 'Item' conform to the 'Sendable' protocol
63 | /// The description of the current CAS filesystem entry.
64 | let arg: FilterArgument
:
113 |
114 | return client.load(item.id, type: typeHint, ctx).map { node in
115 | if typeHint == nil, item.arg.path == .root, item.arg.size == 0 {
| `- warning: capture of 'item' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a `@Sendable` closure
116 | // This is our root. Check if we're allowed to go past it.
117 | let dirEntry = node.asDirectoryEntry(filename: "-")
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:119:23: warning: capture of 'self' with non-sendable type 'LLBConcurrentFileTreeWalker' in a `@Sendable` closure
49 | }
50 |
51 | public class LLBConcurrentFileTreeWalker: RetrieveChildrenProtocol {
| `- note: class 'LLBConcurrentFileTreeWalker' does not conform to the 'Sendable' protocol
52 | let db: LLBCASDatabase
53 | let client: LLBCASFSClient
:
117 | let dirEntry = node.asDirectoryEntry(filename: "-")
118 | let rootItem = Item(arg: FilterArgument(path: node.tree != nil ? .root : nil, type: dirEntry.info.type, size: Int(clamping: dirEntry.info.size)), id: dirEntry.id, scanResult: item.scanResult)
119 | guard self.filter(rootItem) else {
| `- warning: capture of 'self' with non-sendable type 'LLBConcurrentFileTreeWalker' in a `@Sendable` closure
120 | return []
121 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Context.swift:35:24: warning: static property 'fileTreeExportStorageBatcherKey' is not concurrency-safe because non-'Sendable' type 'ContextKey' may have shared mutable state; this is an error in the Swift 6 language mode
9 | import TSCUtility
10 |
11 | private final class ContextKey {}
| `- note: class 'ContextKey' does not conform to the 'Sendable' protocol
12 |
13 | /// Support storing and retrieving file tree import options from a context
:
33 | /// Support storing and retrieving file tree export storage batcher from a context
34 | public extension Context {
35 | private static let fileTreeExportStorageBatcherKey = ContextKey()
| |- warning: static property 'fileTreeExportStorageBatcherKey' is not concurrency-safe because non-'Sendable' type 'ContextKey' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'fileTreeExportStorageBatcherKey' 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 |
37 | var fileTreeExportStorageBatcher: LLBBatchingFutureOperationQueue? {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Context.swift:16:97: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 | public extension Context {
15 | static func with(_ options: LLBCASFileTree.ImportOptions) -> Context {
16 | return Context(dictionaryLiteral: (ObjectIdentifier(LLBCASFileTree.ImportOptions.self), options as Any))
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 | }
18 |
[460/467] Compiling TSFCASFileTree Context.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:45:38: warning: capture of 'self' with non-sendable type 'ConcurrentHierarchyWalker<Item>' in a `@Sendable` closure
25 |
26 | /// Walk the hierarchy with bounded concurrency.
27 | final class ConcurrentHierarchyWalker<Item> {
| `- note: generic class 'ConcurrentHierarchyWalker' does not conform to the 'Sendable' protocol
28 |
29 | private let group: LLBFuturesDispatchGroup
:
43 | self.getChildren(item, ctx)
44 | }.flatMap { more in
45 | let futures = more.map { self.walk($0, ctx) }
| `- warning: capture of 'self' with non-sendable type 'ConcurrentHierarchyWalker<Item>' in a `@Sendable` closure
46 | return LLBFuture.whenAllSucceed(futures, on: self.group.next()).map { _ in () }
47 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:45:38: warning: capture of 'self' with non-sendable type 'ConcurrentHierarchyWalker<Item>' in an isolated closure; this is an error in the Swift 6 language mode
25 |
26 | /// Walk the hierarchy with bounded concurrency.
27 | final class ConcurrentHierarchyWalker<Item> {
| `- note: generic class 'ConcurrentHierarchyWalker' does not conform to the 'Sendable' protocol
28 |
29 | private let group: LLBFuturesDispatchGroup
:
43 | self.getChildren(item, ctx)
44 | }.flatMap { more in
45 | let futures = more.map { self.walk($0, ctx) }
| `- warning: capture of 'self' with non-sendable type 'ConcurrentHierarchyWalker<Item>' in an isolated closure; this is an error in the Swift 6 language mode
46 | return LLBFuture.whenAllSucceed(futures, on: self.group.next()).map { _ in () }
47 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:100:13: warning: capture of 'root' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a `@Sendable` closure
60 | }
61 |
62 | public struct Item {
| `- note: consider making struct 'Item' conform to the 'Sendable' protocol
63 | /// The description of the current CAS filesystem entry.
64 | let arg: FilterArgument
:
98 | let walker = ConcurrentHierarchyWalker(group: db.group, delegate: self)
99 | return walker.walk(root, ctx).map { () in
100 | root.scanResult.reapResult()
| `- warning: capture of 'root' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a `@Sendable` closure
101 | }
102 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:115:33: warning: capture of 'item' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a `@Sendable` closure
60 | }
61 |
62 | public struct Item {
| `- note: consider making struct 'Item' conform to the 'Sendable' protocol
63 | /// The description of the current CAS filesystem entry.
64 | let arg: FilterArgument
:
113 |
114 | return client.load(item.id, type: typeHint, ctx).map { node in
115 | if typeHint == nil, item.arg.path == .root, item.arg.size == 0 {
| `- warning: capture of 'item' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a `@Sendable` closure
116 | // This is our root. Check if we're allowed to go past it.
117 | let dirEntry = node.asDirectoryEntry(filename: "-")
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/ConcurrentFileTreeWalker.swift:119:23: warning: capture of 'self' with non-sendable type 'LLBConcurrentFileTreeWalker' in a `@Sendable` closure
49 | }
50 |
51 | public class LLBConcurrentFileTreeWalker: RetrieveChildrenProtocol {
| `- note: class 'LLBConcurrentFileTreeWalker' does not conform to the 'Sendable' protocol
52 | let db: LLBCASDatabase
53 | let client: LLBCASFSClient
:
117 | let dirEntry = node.asDirectoryEntry(filename: "-")
118 | let rootItem = Item(arg: FilterArgument(path: node.tree != nil ? .root : nil, type: dirEntry.info.type, size: Int(clamping: dirEntry.info.size)), id: dirEntry.id, scanResult: item.scanResult)
119 | guard self.filter(rootItem) else {
| `- warning: capture of 'self' with non-sendable type 'LLBConcurrentFileTreeWalker' in a `@Sendable` closure
120 | return []
121 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Context.swift:35:24: warning: static property 'fileTreeExportStorageBatcherKey' is not concurrency-safe because non-'Sendable' type 'ContextKey' may have shared mutable state; this is an error in the Swift 6 language mode
9 | import TSCUtility
10 |
11 | private final class ContextKey {}
| `- note: class 'ContextKey' does not conform to the 'Sendable' protocol
12 |
13 | /// Support storing and retrieving file tree import options from a context
:
33 | /// Support storing and retrieving file tree export storage batcher from a context
34 | public extension Context {
35 | private static let fileTreeExportStorageBatcherKey = ContextKey()
| |- warning: static property 'fileTreeExportStorageBatcherKey' is not concurrency-safe because non-'Sendable' type 'ContextKey' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'fileTreeExportStorageBatcherKey' 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 |
37 | var fileTreeExportStorageBatcher: LLBBatchingFutureOperationQueue? {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Context.swift:16:97: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
14 | public extension Context {
15 | static func with(_ options: LLBCASFileTree.ImportOptions) -> Context {
16 | return Context(dictionaryLiteral: (ObjectIdentifier(LLBCASFileTree.ImportOptions.self), options as Any))
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
17 | }
18 |
[461/467] Compiling TSFCASFileTree CASFSClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:50:53: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
48 | case .directory?:
49 | let tree = try LLBCASFileTree(id: id, object: object)
50 | return LLBCASFSNode(tree: tree, db: self.db)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
51 | case .plainFile?, .executable?:
52 | let blob = try LLBCASBlob(db: self.db, id: id, type: hint!, object: object, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:72:120: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
70 | /// Save ByteBuffer to CAS
71 | public func store(_ data: LLBByteBuffer, type: LLBFileType = .plainFile, _ ctx: Context) -> LLBFuture<LLBCASFSNode> {
72 | LLBCASBlob.import(data: data, isExecutable: type == .executable, in: db, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
73 | }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:77:145: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
75 | /// Save ArraySlice to CAS
76 | public func store(_ data: ArraySlice<UInt8>, type: LLBFileType = .plainFile, _ ctx: Context) -> LLBFuture<LLBCASFSNode> {
77 | LLBCASBlob.import(data: LLBByteBuffer.withBytes(data), isExecutable: type == .executable, in: db, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
78 | }
79 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:82:145: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
80 | /// Save Data to CAS
81 | public func store(_ data: Data, type: LLBFileType = .plainFile, _ ctx: Context) -> LLBFuture<LLBCASFSNode> {
82 | LLBCASBlob.import(data: LLBByteBuffer.withBytes(data), isExecutable: type == .executable, in: db, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
83 | }
84 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:118:25: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
116 | .dropFirst()
117 | .reversed()
118 | .reduce(self.db.group.next().makeSucceededFuture(node)) { future, pathComponent in
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
119 | future.flatMap { node in
120 | let entry = node.asDirectoryEntry(filename: pathComponent)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:121:74: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in an isolated closure; this is an error in the Swift 6 language mode
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
119 | future.flatMap { node in
120 | let entry = node.asDirectoryEntry(filename: pathComponent)
121 | return LLBCASFileTree.create(files: [entry], in: self.db, ctx).map {
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in an isolated closure; this is an error in the Swift 6 language mode
122 | return LLBCASFSNode(tree: $0, db: self.db)
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:121:74: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
119 | future.flatMap { node in
120 | let entry = node.asDirectoryEntry(filename: pathComponent)
121 | return LLBCASFileTree.create(files: [entry], in: self.db, ctx).map {
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
122 | return LLBCASFSNode(tree: $0, db: self.db)
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:122:63: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
120 | let entry = node.asDirectoryEntry(filename: pathComponent)
121 | return LLBCASFileTree.create(files: [entry], in: self.db, ctx).map {
122 | return LLBCASFSNode(tree: $0, db: self.db)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
123 | }
124 | }
[462/467] Compiling TSFCASFileTree CASFSNode.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:50:53: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
48 | case .directory?:
49 | let tree = try LLBCASFileTree(id: id, object: object)
50 | return LLBCASFSNode(tree: tree, db: self.db)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
51 | case .plainFile?, .executable?:
52 | let blob = try LLBCASBlob(db: self.db, id: id, type: hint!, object: object, ctx)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:72:120: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
70 | /// Save ByteBuffer to CAS
71 | public func store(_ data: LLBByteBuffer, type: LLBFileType = .plainFile, _ ctx: Context) -> LLBFuture<LLBCASFSNode> {
72 | LLBCASBlob.import(data: data, isExecutable: type == .executable, in: db, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
73 | }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:77:145: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
75 | /// Save ArraySlice to CAS
76 | public func store(_ data: ArraySlice<UInt8>, type: LLBFileType = .plainFile, _ ctx: Context) -> LLBFuture<LLBCASFSNode> {
77 | LLBCASBlob.import(data: LLBByteBuffer.withBytes(data), isExecutable: type == .executable, in: db, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
78 | }
79 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:82:145: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
80 | /// Save Data to CAS
81 | public func store(_ data: Data, type: LLBFileType = .plainFile, _ ctx: Context) -> LLBFuture<LLBCASFSNode> {
82 | LLBCASBlob.import(data: LLBByteBuffer.withBytes(data), isExecutable: type == .executable, in: db, ctx).map { LLBCASFSNode(blob: $0, db: self.db) }
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
83 | }
84 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:118:25: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
116 | .dropFirst()
117 | .reversed()
118 | .reduce(self.db.group.next().makeSucceededFuture(node)) { future, pathComponent in
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
119 | future.flatMap { node in
120 | let entry = node.asDirectoryEntry(filename: pathComponent)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:121:74: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in an isolated closure; this is an error in the Swift 6 language mode
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
119 | future.flatMap { node in
120 | let entry = node.asDirectoryEntry(filename: pathComponent)
121 | return LLBCASFileTree.create(files: [entry], in: self.db, ctx).map {
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in an isolated closure; this is an error in the Swift 6 language mode
122 | return LLBCASFSNode(tree: $0, db: self.db)
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:121:74: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
119 | future.flatMap { node in
120 | let entry = node.asDirectoryEntry(filename: pathComponent)
121 | return LLBCASFileTree.create(files: [entry], in: self.db, ctx).map {
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
122 | return LLBCASFSNode(tree: $0, db: self.db)
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:122:63: warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
:
120 | let entry = node.asDirectoryEntry(filename: pathComponent)
121 | return LLBCASFileTree.create(files: [entry], in: self.db, ctx).map {
122 | return LLBCASFSNode(tree: $0, db: self.db)
| `- warning: capture of 'self' with non-sendable type 'LLBCASFSClient' in a `@Sendable` closure
123 | }
124 | }
[463/467] Compiling TSFCASFileTree BinarySearch.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:199:24: warning: capture of 'self' with non-sendable type 'LLBCASBlob' in a `@Sendable` closure
23 |
24 | /// A wrapper for accessing CASTree file contents.
25 | public struct LLBCASBlob {
| `- note: consider making struct 'LLBCASBlob' conform to the 'Sendable' protocol
26 | // FIXME: The logic in this clase is intimately tied to `CASTreeParser`, it
27 | // should be unified.
:
197 | return db.get(id, ctx).flatMap { object in
198 | guard let object = object else {
199 | return self.db.group.next().makeFailedFuture(LLBCASBlobError.missingObject)
| `- warning: capture of 'self' with non-sendable type 'LLBCASBlob' in a `@Sendable` closure
200 | }
201 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:258:35: warning: reference to captured var 'fileInfo' in concurrently-executing code
256 | LLBCASBlob(db: db, receivedId: .inner(id),
257 | type: .plainFile,
258 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
259 | size: data.readableBytes,
260 | contents: .flat(innerID: id, db.group.next().makeSucceededFuture(data)))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:258:62: warning: reference to captured var 'fileInfo' in concurrently-executing code
256 | LLBCASBlob(db: db, receivedId: .inner(id),
257 | type: .plainFile,
258 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
259 | size: data.readableBytes,
260 | contents: .flat(innerID: id, db.group.next().makeSucceededFuture(data)))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:268:57: warning: reference to captured var 'fileInfo' in concurrently-executing code
266 | }.flatMap { blobId in
267 | do {
268 | return db.put(refs: [blobId], data: try fileInfo.toBytes(), ctx).map { outerId in
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
269 | LLBCASBlob(db: db, receivedId: .outer(outerId),
270 | type: fileInfo.type,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:270:31: warning: reference to captured var 'fileInfo' in concurrently-executing code
268 | return db.put(refs: [blobId], data: try fileInfo.toBytes(), ctx).map { outerId in
269 | LLBCASBlob(db: db, receivedId: .outer(outerId),
270 | type: fileInfo.type,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
271 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
272 | size: data.readableBytes,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:271:39: warning: reference to captured var 'fileInfo' in concurrently-executing code
269 | LLBCASBlob(db: db, receivedId: .outer(outerId),
270 | type: fileInfo.type,
271 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
272 | size: data.readableBytes,
273 | contents: .chunked(chunks: [blobId], chunkSize: Int(fileInfo.fixedChunkSize)))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:271:66: warning: reference to captured var 'fileInfo' in concurrently-executing code
269 | LLBCASBlob(db: db, receivedId: .outer(outerId),
270 | type: fileInfo.type,
271 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
272 | size: data.readableBytes,
273 | contents: .chunked(chunks: [blobId], chunkSize: Int(fileInfo.fixedChunkSize)))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:273:77: warning: reference to captured var 'fileInfo' in concurrently-executing code
271 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
272 | size: data.readableBytes,
273 | contents: .chunked(chunks: [blobId], chunkSize: Int(fileInfo.fixedChunkSize)))
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
274 | }
275 | } catch {
[464/467] Compiling TSFCASFileTree CASBlob.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:199:24: warning: capture of 'self' with non-sendable type 'LLBCASBlob' in a `@Sendable` closure
23 |
24 | /// A wrapper for accessing CASTree file contents.
25 | public struct LLBCASBlob {
| `- note: consider making struct 'LLBCASBlob' conform to the 'Sendable' protocol
26 | // FIXME: The logic in this clase is intimately tied to `CASTreeParser`, it
27 | // should be unified.
:
197 | return db.get(id, ctx).flatMap { object in
198 | guard let object = object else {
199 | return self.db.group.next().makeFailedFuture(LLBCASBlobError.missingObject)
| `- warning: capture of 'self' with non-sendable type 'LLBCASBlob' in a `@Sendable` closure
200 | }
201 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:258:35: warning: reference to captured var 'fileInfo' in concurrently-executing code
256 | LLBCASBlob(db: db, receivedId: .inner(id),
257 | type: .plainFile,
258 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
259 | size: data.readableBytes,
260 | contents: .flat(innerID: id, db.group.next().makeSucceededFuture(data)))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:258:62: warning: reference to captured var 'fileInfo' in concurrently-executing code
256 | LLBCASBlob(db: db, receivedId: .inner(id),
257 | type: .plainFile,
258 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
259 | size: data.readableBytes,
260 | contents: .flat(innerID: id, db.group.next().makeSucceededFuture(data)))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:268:57: warning: reference to captured var 'fileInfo' in concurrently-executing code
266 | }.flatMap { blobId in
267 | do {
268 | return db.put(refs: [blobId], data: try fileInfo.toBytes(), ctx).map { outerId in
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
269 | LLBCASBlob(db: db, receivedId: .outer(outerId),
270 | type: fileInfo.type,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:270:31: warning: reference to captured var 'fileInfo' in concurrently-executing code
268 | return db.put(refs: [blobId], data: try fileInfo.toBytes(), ctx).map { outerId in
269 | LLBCASBlob(db: db, receivedId: .outer(outerId),
270 | type: fileInfo.type,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
271 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
272 | size: data.readableBytes,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:271:39: warning: reference to captured var 'fileInfo' in concurrently-executing code
269 | LLBCASBlob(db: db, receivedId: .outer(outerId),
270 | type: fileInfo.type,
271 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
272 | size: data.readableBytes,
273 | contents: .chunked(chunks: [blobId], chunkSize: Int(fileInfo.fixedChunkSize)))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:271:66: warning: reference to captured var 'fileInfo' in concurrently-executing code
269 | LLBCASBlob(db: db, receivedId: .outer(outerId),
270 | type: fileInfo.type,
271 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
272 | size: data.readableBytes,
273 | contents: .chunked(chunks: [blobId], chunkSize: Int(fileInfo.fixedChunkSize)))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASBlob.swift:273:77: warning: reference to captured var 'fileInfo' in concurrently-executing code
271 | posixDetails: fileInfo.hasPosixDetails ? fileInfo.posixDetails : nil,
272 | size: data.readableBytes,
273 | contents: .chunked(chunks: [blobId], chunkSize: Int(fileInfo.fixedChunkSize)))
| `- warning: reference to captured var 'fileInfo' in concurrently-executing code
274 | }
275 | } catch {
[465/467] Emitting module TSFCASFileTree
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Context.swift:35:24: warning: static property 'fileTreeExportStorageBatcherKey' is not concurrency-safe because non-'Sendable' type 'ContextKey' may have shared mutable state; this is an error in the Swift 6 language mode
9 | import TSCUtility
10 |
11 | private final class ContextKey {}
| `- note: class 'ContextKey' does not conform to the 'Sendable' protocol
12 |
13 | /// Support storing and retrieving file tree import options from a context
:
33 | /// Support storing and retrieving file tree export storage batcher from a context
34 | public extension Context {
35 | private static let fileTreeExportStorageBatcherKey = ContextKey()
| |- warning: static property 'fileTreeExportStorageBatcherKey' is not concurrency-safe because non-'Sendable' type 'ContextKey' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'fileTreeExportStorageBatcherKey' 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 |
37 | var fileTreeExportStorageBatcher: LLBBatchingFutureOperationQueue? {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Generated/CASFileTreeProtocol/file_tree.pb.swift:77:21: warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
75 | extension LLBFileType: CaseIterable {
76 | // The compiler won't synthesize support with the UNRECOGNIZED case.
77 | public static var allCases: [LLBFileType] = [
| |- warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allCases' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allCases' 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
78 | .plainFile,
79 | .executable,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Generated/CASFileTreeProtocol/file_tree.pb.swift:118:21: warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
116 | extension LLBFileDataCompressionMethod: CaseIterable {
117 | // The compiler won't synthesize support with the UNRECOGNIZED case.
118 | public static var allCases: [LLBFileDataCompressionMethod] = [
| |- warning: static property 'allCases' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allCases' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allCases' 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
119 | .none,
120 | ]
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/TSCCASFileSystem.swift:19:9: warning: stored property 'rootTree' of 'Sendable'-conforming class 'TSCCASFileSystem' has non-sendable type 'LLBCASFileTree'; this is an error in the Swift 6 language mode
17 | public final class TSCCASFileSystem: FileSystem {
18 |
19 | let rootTree: LLBCASFileTree
| `- warning: stored property 'rootTree' of 'Sendable'-conforming class 'TSCCASFileSystem' has non-sendable type 'LLBCASFileTree'; this is an error in the Swift 6 language mode
20 | let db: LLBCASDatabase
21 | let client: LLBCASFSClient
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:47:20: note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/TSCCASFileSystem.swift:21:9: warning: stored property 'client' of 'Sendable'-conforming class 'TSCCASFileSystem' has non-sendable type 'LLBCASFSClient'; this is an error in the Swift 6 language mode
19 | let rootTree: LLBCASFileTree
20 | let db: LLBCASDatabase
21 | let client: LLBCASFSClient
| `- warning: stored property 'client' of 'Sendable'-conforming class 'TSCCASFileSystem' has non-sendable type 'LLBCASFSClient'; this is an error in the Swift 6 language mode
22 | let ctx: Context
23 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSClient.swift:18:15: note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
16 |
17 | /// A main API struct
18 | public struct LLBCASFSClient {
| `- note: consider making struct 'LLBCASFSClient' conform to the 'Sendable' protocol
19 | public let db: LLBCASDatabase
20 |
[466/467] Compiling TSFCASFileTree FileTreeImport.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:326:71: warning: capture of 'body' with non-sendable type '(Int) -> LLBFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a `@Sendable` closure
324 | let promise = loop.makePromise(of: T.self)
325 | _ = loop.scheduleTask(in: .seconds(3)) {
326 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> LLBFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
327 | .cascade(to: promise)
328 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:326:71: warning: capture of 'body' with non-sendable type '(Int) -> LLBFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a `@Sendable` closure
324 | let promise = loop.makePromise(of: T.self)
325 | _ = loop.scheduleTask(in: .seconds(3)) {
326 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> LLBFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
327 | .cascade(to: promise)
328 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:327:34: warning: capture of 'promise' with non-sendable type 'EventLoopPromise<T>' in a `@Sendable` closure
309 |
310 | // Retry with lesser concurrency if we see unexpected network errors.
311 | private static func recursivelyDecreasingLimit<T>(on loop: LLBFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> LLBFuture<T>) -> LLBFuture<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
312 | return body(limit).flatMapError { error -> LLBFuture<T> in
313 | // Check if something retryable happened.
:
325 | _ = loop.scheduleTask(in: .seconds(3)) {
326 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
327 | .cascade(to: promise)
| `- warning: capture of 'promise' with non-sendable type 'EventLoopPromise<T>' in a `@Sendable` closure
328 | }
329 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:686:53: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
684 | let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
685 | guard nextPhase < .UploadingDirs else {
686 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
687 | }
688 | self.set(phase: nextPhase)
:
743 | }
744 |
745 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
746 | // Final step in a sequence: stop stepping through.
747 | case skipped
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:686:69: warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
684 | let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
685 | guard nextPhase < .UploadingDirs else {
686 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
687 | }
688 | self.set(phase: nextPhase)
:
743 | }
744 |
745 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
746 | // Final step in a sequence: stop stepping through.
747 | case skipped
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:686:53: warning: reference to captured var 'finishedSteps' in concurrently-executing code
684 | let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
685 | guard nextPhase < .UploadingDirs else {
686 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
687 | }
688 | self.set(phase: nextPhase)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:686:69: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
684 | let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
685 | guard nextPhase < .UploadingDirs else {
686 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
687 | }
688 | self.set(phase: nextPhase)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:689:97: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
687 | }
688 | self.set(phase: nextPhase)
689 | return self.recursivelyPerformSteps(currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps).map {
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
690 | finishedSteps + $0
691 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:690:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
688 | self.set(phase: nextPhase)
689 | return self.recursivelyPerformSteps(currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps).map {
690 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
691 | }
692 | } else {
:
743 | }
744 |
745 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
746 | // Final step in a sequence: stop stepping through.
747 | case skipped
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:690:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
688 | self.set(phase: nextPhase)
689 | return self.recursivelyPerformSteps(currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps).map {
690 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
691 | }
692 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:693:141: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
691 | }
692 | } else {
693 | return self.recursivelyPerformSteps(currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase, nextPhaseSteps: nextPhaseSteps).map {
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
694 | finishedSteps + $0
695 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:694:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
692 | } else {
693 | return self.recursivelyPerformSteps(currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase, nextPhaseSteps: nextPhaseSteps).map {
694 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
695 | }
696 | }
:
743 | }
744 |
745 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
746 | // Final step in a sequence: stop stepping through.
747 | case skipped
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:694:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
692 | } else {
693 | return self.recursivelyPerformSteps(currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase, nextPhaseSteps: nextPhaseSteps).map {
694 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
695 | }
696 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1019:37: warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1017 | // free to take our load. This ensures that we're not
1018 | // limited by CPU parallelism for network concurrency.
1019 | return self.executeWithBackpressure(on: self.netQueue, loop: containsLoop, size: slice.readableBytes, default: .skipped) { () -> LLBFuture<NextStep> in
| `- warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:981:25: warning: capture of 'encodeNextStep(for:)' with non-sendable type '(LLBDataID) -> CASTreeImport.NextStep' in a `@Sendable` closure
979 | do {
980 | return dbPut(refs: [blobId], data: try fileInfo.toBytes(), importSize: importSize, ctx).map { id in
981 | encodeNextStep(for: id)
| |- warning: capture of 'encodeNextStep(for:)' with non-sendable type '(LLBDataID) -> CASTreeImport.NextStep' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
982 | }
983 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:938:20: warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
936 | let partialStepPromise = LLBCancellablePromise(promise: loop.makePromise(of: NextStep.self))
937 |
938 | func encodeNextStep(for id: LLBDataID) -> NextStep {
| `- warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
939 | if isSingleChunk {
940 | return .singleFile(SingleFileInfo(path: path, id: id, type: type, size: UInt64(clamping: segm.uncompressedSize), posixDetails: importObject.posixDetails))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:997:32: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
995 | guard !exists else {
996 | let existingIdFuture: LLBFuture<NextStep> = segm.id.flatMap { id in
997 | return uploadFileInfo(blobId: id, importSize: segm.uncompressedSize)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
998 | }
999 | existingIdFuture.cascade(to: partialStepPromise)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1007:32: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1005 | let data: LLBFastData
1006 |
1007 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
1008 | case let .link(target):
1009 | data = target
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:997:32: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
995 | guard !exists else {
996 | let existingIdFuture: LLBFuture<NextStep> = segm.id.flatMap { id in
997 | return uploadFileInfo(blobId: id, importSize: segm.uncompressedSize)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
998 | }
999 | existingIdFuture.cascade(to: partialStepPromise)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:948:20: warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
946 | // If the file has non-standard layout, upload it after we upload
947 | // the binary blob.
948 | func uploadFileInfo(blobId: LLBDataID, importSize: Int? = nil) -> LLBFuture<NextStep> {
| `- warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
949 | guard finalResultPromise.isCompleted == false else {
950 | return loop.makeSucceededFuture(NextStep.skipped)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1007:32: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1005 | let data: LLBFastData
1006 |
1007 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1008 | case let .link(target):
1009 | data = target
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') 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'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1007:32: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1005 | let data: LLBFastData
1006 |
1007 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1008 | case let .link(target):
1009 | data = target
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') 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'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1021:54: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1019 | return self.executeWithBackpressure(on: self.netQueue, loop: containsLoop, size: slice.readableBytes, default: .skipped) { () -> LLBFuture<NextStep> in
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1022 | uploadFileInfo(blobId: id)
1023 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') 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'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1021:54: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1019 | return self.executeWithBackpressure(on: self.netQueue, loop: containsLoop, size: slice.readableBytes, default: .skipped) { () -> LLBFuture<NextStep> in
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
1022 | uploadFileInfo(blobId: id)
1023 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') 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'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1098:36: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1096 | fileInfo.compression = .none
1097 | fileInfo.fixedChunkSize = UInt64(chunkIds.count > 1 ? self.options.fileChunkSize : allSegmentsUncompressedDataSize)
1098 | let posixDetails = importObject.posixDetails
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
1099 | fileInfo.update(posixDetails: posixDetails, options: self.options)
1100 | do {
[467/467] Compiling TSFCASFileTree FilesystemObject.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:326:71: warning: capture of 'body' with non-sendable type '(Int) -> LLBFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a `@Sendable` closure
324 | let promise = loop.makePromise(of: T.self)
325 | _ = loop.scheduleTask(in: .seconds(3)) {
326 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> LLBFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
327 | .cascade(to: promise)
328 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:326:71: warning: capture of 'body' with non-sendable type '(Int) -> LLBFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a `@Sendable` closure
324 | let promise = loop.makePromise(of: T.self)
325 | _ = loop.scheduleTask(in: .seconds(3)) {
326 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> LLBFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
327 | .cascade(to: promise)
328 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:327:34: warning: capture of 'promise' with non-sendable type 'EventLoopPromise<T>' in a `@Sendable` closure
309 |
310 | // Retry with lesser concurrency if we see unexpected network errors.
311 | private static func recursivelyDecreasingLimit<T>(on loop: LLBFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> LLBFuture<T>) -> LLBFuture<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
312 | return body(limit).flatMapError { error -> LLBFuture<T> in
313 | // Check if something retryable happened.
:
325 | _ = loop.scheduleTask(in: .seconds(3)) {
326 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
327 | .cascade(to: promise)
| `- warning: capture of 'promise' with non-sendable type 'EventLoopPromise<T>' in a `@Sendable` closure
328 | }
329 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:686:53: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
684 | let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
685 | guard nextPhase < .UploadingDirs else {
686 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
687 | }
688 | self.set(phase: nextPhase)
:
743 | }
744 |
745 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
746 | // Final step in a sequence: stop stepping through.
747 | case skipped
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:686:69: warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
684 | let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
685 | guard nextPhase < .UploadingDirs else {
686 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
687 | }
688 | self.set(phase: nextPhase)
:
743 | }
744 |
745 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
746 | // Final step in a sequence: stop stepping through.
747 | case skipped
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:686:53: warning: reference to captured var 'finishedSteps' in concurrently-executing code
684 | let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
685 | guard nextPhase < .UploadingDirs else {
686 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
687 | }
688 | self.set(phase: nextPhase)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:686:69: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
684 | let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
685 | guard nextPhase < .UploadingDirs else {
686 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
687 | }
688 | self.set(phase: nextPhase)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:689:97: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
687 | }
688 | self.set(phase: nextPhase)
689 | return self.recursivelyPerformSteps(currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps).map {
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
690 | finishedSteps + $0
691 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:690:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
688 | self.set(phase: nextPhase)
689 | return self.recursivelyPerformSteps(currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps).map {
690 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
691 | }
692 | } else {
:
743 | }
744 |
745 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
746 | // Final step in a sequence: stop stepping through.
747 | case skipped
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:690:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
688 | self.set(phase: nextPhase)
689 | return self.recursivelyPerformSteps(currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps).map {
690 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
691 | }
692 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:693:141: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
691 | }
692 | } else {
693 | return self.recursivelyPerformSteps(currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase, nextPhaseSteps: nextPhaseSteps).map {
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
694 | finishedSteps + $0
695 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:694:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
692 | } else {
693 | return self.recursivelyPerformSteps(currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase, nextPhaseSteps: nextPhaseSteps).map {
694 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a `@Sendable` closure
695 | }
696 | }
:
743 | }
744 |
745 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
746 | // Final step in a sequence: stop stepping through.
747 | case skipped
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:694:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
692 | } else {
693 | return self.recursivelyPerformSteps(currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase, nextPhaseSteps: nextPhaseSteps).map {
694 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
695 | }
696 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1019:37: warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1017 | // free to take our load. This ensures that we're not
1018 | // limited by CPU parallelism for network concurrency.
1019 | return self.executeWithBackpressure(on: self.netQueue, loop: containsLoop, size: slice.readableBytes, default: .skipped) { () -> LLBFuture<NextStep> in
| `- warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:981:25: warning: capture of 'encodeNextStep(for:)' with non-sendable type '(LLBDataID) -> CASTreeImport.NextStep' in a `@Sendable` closure
979 | do {
980 | return dbPut(refs: [blobId], data: try fileInfo.toBytes(), importSize: importSize, ctx).map { id in
981 | encodeNextStep(for: id)
| |- warning: capture of 'encodeNextStep(for:)' with non-sendable type '(LLBDataID) -> CASTreeImport.NextStep' in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
982 | }
983 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:938:20: warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
936 | let partialStepPromise = LLBCancellablePromise(promise: loop.makePromise(of: NextStep.self))
937 |
938 | func encodeNextStep(for id: LLBDataID) -> NextStep {
| `- warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
939 | if isSingleChunk {
940 | return .singleFile(SingleFileInfo(path: path, id: id, type: type, size: UInt64(clamping: segm.uncompressedSize), posixDetails: importObject.posixDetails))
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:997:32: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
995 | guard !exists else {
996 | let existingIdFuture: LLBFuture<NextStep> = segm.id.flatMap { id in
997 | return uploadFileInfo(blobId: id, importSize: segm.uncompressedSize)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
998 | }
999 | existingIdFuture.cascade(to: partialStepPromise)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1007:32: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1005 | let data: LLBFastData
1006 |
1007 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
1008 | case let .link(target):
1009 | data = target
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:997:32: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
995 | guard !exists else {
996 | let existingIdFuture: LLBFuture<NextStep> = segm.id.flatMap { id in
997 | return uploadFileInfo(blobId: id, importSize: segm.uncompressedSize)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
998 | }
999 | existingIdFuture.cascade(to: partialStepPromise)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:948:20: warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
946 | // If the file has non-standard layout, upload it after we upload
947 | // the binary blob.
948 | func uploadFileInfo(blobId: LLBDataID, importSize: Int? = nil) -> LLBFuture<NextStep> {
| `- warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
949 | guard finalResultPromise.isCompleted == false else {
950 | return loop.makeSucceededFuture(NextStep.skipped)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1007:32: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1005 | let data: LLBFastData
1006 |
1007 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1008 | case let .link(target):
1009 | data = target
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') 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'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1007:32: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1005 | let data: LLBFastData
1006 |
1007 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1008 | case let .link(target):
1009 | data = target
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') 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'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1021:54: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1019 | return self.executeWithBackpressure(on: self.netQueue, loop: containsLoop, size: slice.readableBytes, default: .skipped) { () -> LLBFuture<NextStep> in
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1022 | uploadFileInfo(blobId: id)
1023 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') 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'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1021:54: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1019 | return self.executeWithBackpressure(on: self.netQueue, loop: containsLoop, size: slice.readableBytes, default: .skipped) { () -> LLBFuture<NextStep> in
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
1022 | uploadFileInfo(blobId: id)
1023 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1022:37: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1020 | return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
1021 | withExtendedLifetime(importObject) { // for mmap
1022 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(LLBDataID, Int?) -> LLBFuture<CASTreeImport.NextStep>' (aka '(LLBDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') 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'
1023 | }
1024 | }.map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1098:36: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
836 | let type: LLBFileType
837 | let allSegmentsUncompressedDataSize: Int
838 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
839 | case link(target: LLBFastData)
840 | case file(file: FileSegmenter, posixDetails: LLBPosixFileDetails)
:
1096 | fileInfo.compression = .none
1097 | fileInfo.fixedChunkSize = UInt64(chunkIds.count > 1 ? self.options.fileChunkSize : allSegmentsUncompressedDataSize)
1098 | let posixDetails = importObject.posixDetails
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a `@Sendable` closure
1099 | fileInfo.update(posixDetails: posixDetails, options: self.options)
1100 | do {
[468/471] Compiling TSFCASUtilities LinkedListStream.swift
[469/471] Emitting module TSFCASUtilities
[470/471] Compiling TSFCASUtilities StreamReader.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:54:24: warning: capture of 'self' with non-sendable type 'LLBCASStreamReader' in a `@Sendable` closure
16 | /// implemented. This should be the unified API to read streaming content, so that readers do not need to understand
17 | /// which writer was used to store the data.
18 | public struct LLBCASStreamReader {
| `- note: consider making struct 'LLBCASStreamReader' conform to the 'Sendable' protocol
19 | private let db: LLBCASDatabase
20 |
:
52 | return LLBCASFSClient(db).load(id, ctx).flatMap { node in
53 | guard let tree = node.tree else {
54 | return self.db.group.next().makeFailedFuture(LLBCASStreamError.invalid)
| `- warning: capture of 'self' with non-sendable type 'LLBCASStreamReader' in a `@Sendable` closure
55 | }
56 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:67:34: warning: capture of 'readerBlock' with non-sendable type '(UInt8, LLBByteBufferView) throws -> Bool' (aka '(UInt8, ByteBufferView) throws -> Bool') in a `@Sendable` closure
65 | lastReadID: lastReadID,
66 | ctx,
67 | readerBlock: readerBlock
| |- warning: capture of 'readerBlock' with non-sendable type '(UInt8, LLBByteBufferView) throws -> Bool' (aka '(UInt8, ByteBufferView) throws -> Bool') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
68 | )
69 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:78:28: warning: capture of 'self' with non-sendable type 'LLBCASStreamReader' in a `@Sendable` closure
16 | /// implemented. This should be the unified API to read streaming content, so that readers do not need to understand
17 | /// which writer was used to store the data.
18 | public struct LLBCASStreamReader {
| `- note: consider making struct 'LLBCASStreamReader' conform to the 'Sendable' protocol
19 | private let db: LLBCASDatabase
20 |
:
76 | // and propagate the desire to keep on reading.
77 | guard shouldContinue else {
78 | return self.db.group.next().makeSucceededFuture(shouldContinue)
| `- warning: capture of 'self' with non-sendable type 'LLBCASStreamReader' in a `@Sendable` closure
79 | }
80 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:81:29: warning: capture of 'tree' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
79 | }
80 |
81 | let files = tree.files.filter {
| `- warning: capture of 'tree' with non-sendable type 'LLBCASFileTree' in a `@Sendable` closure
82 | $0.type == .plainFile
83 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:47:20: note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
45 | /// rearrange this implementation to support higher-performance derivative
46 | /// operations (for example, tree union).
47 | public final class LLBCASFileTree {
| `- note: class 'LLBCASFileTree' does not conform to the 'Sendable' protocol
48 | /// The id of this tree.
49 | //
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:12:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'TSFCASFileTree'
10 | import TSCUtility
11 | import TSFCAS
12 | import TSFCASFileTree
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'TSFCASFileTree'
13 |
14 | /// Implements the reading logic to read any kind of streaming data storage implemented. Currently it's hardcoded to
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:102:36: warning: capture of 'readerBlock' with non-sendable type '(UInt8, LLBByteBufferView) throws -> Bool' (aka '(UInt8, ByteBufferView) throws -> Bool') in a `@Sendable` closure
100 |
101 | return blob.read(ctx).flatMapThrowing { byteBufferView in
102 | return try readerBlock(channel, byteBufferView)
| |- warning: capture of 'readerBlock' with non-sendable type '(UInt8, LLBByteBufferView) throws -> Bool' (aka '(UInt8, ByteBufferView) throws -> Bool') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
103 | }
104 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:98:32: warning: capture of 'self' with non-sendable type 'LLBCASStreamReader' in a `@Sendable` closure
16 | /// implemented. This should be the unified API to read streaming content, so that readers do not need to understand
17 | /// which writer was used to store the data.
18 | public struct LLBCASStreamReader {
| `- note: consider making struct 'LLBCASStreamReader' conform to the 'Sendable' protocol
19 | private let db: LLBCASDatabase
20 |
:
96 | return LLBCASFSClient(self.db).load(contentID, ctx).flatMap { node in
97 | guard let blob = node.blob else {
98 | return self.db.group.next().makeFailedFuture(LLBCASStreamError.missing)
| `- warning: capture of 'self' with non-sendable type 'LLBCASStreamReader' in a `@Sendable` closure
99 | }
100 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:102:36: warning: capture of 'readerBlock' with non-sendable type '(UInt8, LLBByteBufferView) throws -> Bool' (aka '(UInt8, ByteBufferView) throws -> Bool') in a `@Sendable` closure
100 |
101 | return blob.read(ctx).flatMapThrowing { byteBufferView in
102 | return try readerBlock(channel, byteBufferView)
| |- warning: capture of 'readerBlock' with non-sendable type '(UInt8, LLBByteBufferView) throws -> Bool' (aka '(UInt8, ByteBufferView) throws -> Bool') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
103 | }
104 | }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASUtilities/StreamReader.swift:102:36: warning: capture of 'readerBlock' with non-sendable type '(UInt8, LLBByteBufferView) throws -> Bool' (aka '(UInt8, ByteBufferView) throws -> Bool') in a `@Sendable` closure
100 |
101 | return blob.read(ctx).flatMapThrowing { byteBufferView in
102 | return try readerBlock(channel, byteBufferView)
| |- warning: capture of 'readerBlock' with non-sendable type '(UInt8, LLBByteBufferView) throws -> Bool' (aka '(UInt8, ByteBufferView) throws -> Bool') in a `@Sendable` closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
103 | }
104 | }
[471/471] Compiling TSFCASUtilities BufferedStreamWriter.swift
Build complete! (55.03s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.68.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio.git"
},
{
"identity" : "swift-protobuf",
"requirement" : {
"range" : [
{
"lower_bound" : "1.28.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-protobuf.git"
},
{
"identity" : "swift-tools-support-core",
"requirement" : {
"range" : [
{
"lower_bound" : "0.5.8",
"upper_bound" : "0.8.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-tools-support-core.git"
}
],
"manifest_display_name" : "swift-tools-support-async",
"name" : "swift-tools-support-async",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
}
],
"products" : [
{
"name" : "SwiftToolsSupportAsync",
"targets" : [
"TSFFutures",
"TSFUtility"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftToolsSupportCAS",
"targets" : [
"TSFCAS",
"TSFCASFileTree",
"TSFCASUtilities"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "TSFUtility",
"module_type" : "SwiftTarget",
"name" : "TSFUtility",
"path" : "Sources/TSFUtility",
"product_dependencies" : [
"NIO",
"NIOConcurrencyHelpers",
"NIOFoundationCompat"
],
"product_memberships" : [
"SwiftToolsSupportAsync",
"SwiftToolsSupportCAS"
],
"sources" : [
"ByteBuffer.swift",
"FastData.swift",
"FutureFileSystem.swift",
"Serializable.swift"
],
"target_dependencies" : [
"TSFFutures"
],
"type" : "library"
},
{
"c99name" : "TSFFuturesTests",
"module_type" : "SwiftTarget",
"name" : "TSFFuturesTests",
"path" : "Tests/TSFFuturesTests",
"sources" : [
"BatchingFutureOperationQueue.swift",
"CancellableFutureTests.swift",
"CancellablePromiseTests.swift",
"CancellerTests.swift",
"EventualResultsCacheTests.swift",
"FutureDeduplicatorTests.swift",
"FutureOperationQueueTests.swift",
"OrderManagerTests.swift"
],
"target_dependencies" : [
"TSFFutures"
],
"type" : "test"
},
{
"c99name" : "TSFFutures",
"module_type" : "SwiftTarget",
"name" : "TSFFutures",
"path" : "Sources/TSFFutures",
"product_dependencies" : [
"NIO",
"NIOFoundationCompat",
"SwiftToolsSupport-auto"
],
"product_memberships" : [
"SwiftToolsSupportAsync",
"SwiftToolsSupportCAS"
],
"sources" : [
"BatchingFutureOperationQueue.swift",
"CancellableFuture.swift",
"CancellablePromise.swift",
"Canceller.swift",
"EventualResultsCache.swift",
"FutureDeduplicator.swift",
"FutureOperationQueue.swift",
"Futures.swift",
"OperationQueue+Extensions.swift",
"OrderManager.swift"
],
"type" : "library"
},
{
"c99name" : "TSFCASUtilitiesTests",
"module_type" : "SwiftTarget",
"name" : "TSFCASUtilitiesTests",
"path" : "Tests/TSFCASUtilitiesTests",
"sources" : [
"BufferedStreamWriterTests.swift",
"LinkedListStreamTests.swift"
],
"target_dependencies" : [
"TSFCASUtilities"
],
"type" : "test"
},
{
"c99name" : "TSFCASUtilities",
"module_type" : "SwiftTarget",
"name" : "TSFCASUtilities",
"path" : "Sources/TSFCASUtilities",
"product_memberships" : [
"SwiftToolsSupportCAS"
],
"sources" : [
"BufferedStreamWriter.swift",
"LinkedListStream.swift",
"StreamReader.swift"
],
"target_dependencies" : [
"TSFCAS",
"TSFCASFileTree"
],
"type" : "library"
},
{
"c99name" : "TSFCASTests",
"module_type" : "SwiftTarget",
"name" : "TSFCASTests",
"path" : "Tests/TSFCASTests",
"sources" : [
"DataIDTests.swift",
"FileBackedCASDatabaseTests.swift",
"InMemoryCASDatabaseTests.swift"
],
"target_dependencies" : [
"TSFCAS"
],
"type" : "test"
},
{
"c99name" : "TSFCASFileTreeTests",
"module_type" : "SwiftTarget",
"name" : "TSFCASFileTreeTests",
"path" : "Tests/TSFCASFileTreeTests",
"sources" : [
"CASBlobTests.swift",
"FileTreeImportExportTests.swift",
"FileTreeTests.swift"
],
"target_dependencies" : [
"TSFCASFileTree"
],
"type" : "test"
},
{
"c99name" : "TSFCASFileTree",
"module_type" : "SwiftTarget",
"name" : "TSFCASFileTree",
"path" : "Sources/TSFCASFileTree",
"product_memberships" : [
"SwiftToolsSupportCAS"
],
"sources" : [
"BinarySearch.swift",
"CASBlob.swift",
"CASFSClient.swift",
"CASFSNode.swift",
"ConcurrentFileTreeWalker.swift",
"Context.swift",
"DeclFileTree.swift",
"DirectoryEntry.swift",
"Errors.swift",
"FileInfo.swift",
"FileTree.swift",
"FileTreeExport.swift",
"FileTreeImport.swift",
"FilesystemObject.swift",
"Generated/CASFileTreeProtocol/file_tree.pb.swift",
"Internal/ConcurrentFilesystemScanner.swift",
"Internal/FileSegmenter.swift",
"Internal/FileTreeParser.swift",
"TSCCASFileSystem.swift"
],
"target_dependencies" : [
"TSFCAS"
],
"type" : "library"
},
{
"c99name" : "TSFCAS",
"module_type" : "SwiftTarget",
"name" : "TSFCAS",
"path" : "Sources/TSFCAS",
"product_dependencies" : [
"SwiftProtobuf"
],
"product_memberships" : [
"SwiftToolsSupportCAS"
],
"sources" : [
"DataID.swift",
"Database.swift",
"DatabaseSpec.swift",
"Generated/CASProtocol/cas_object.pb.swift",
"Generated/CASProtocol/data_id.pb.swift",
"Implementations/Blake3DataID.swift",
"Implementations/FileBackedCASDatabase.swift",
"Implementations/InMemoryCASDatabase.swift",
"Object.swift"
],
"target_dependencies" : [
"TSFFutures",
"TSFUtility",
"CBLAKE3"
],
"type" : "library"
},
{
"c99name" : "CBLAKE3",
"module_type" : "ClangTarget",
"name" : "CBLAKE3",
"path" : "Sources/CBLAKE3",
"product_memberships" : [
"SwiftToolsSupportCAS"
],
"sources" : [
"blake3.c",
"blake3_avx2.c",
"blake3_avx512.c",
"blake3_sse41.c"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Done.