The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of swift-tools-support-async, reference 0.14.1 (8fcd85), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 09:42:13 UTC.

Swift 6 data race errors: 16

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.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

346 |                 return _merge(reversedTrees: $0, in: db, ctx)
347 |             }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:356:26: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
354 |
355 |         // Wait for all the outstanding submerges.
356 |         return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
    |                          `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
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)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:356:71: warning: type '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 |     //
    :
354 |
355 |         // Wait for all the outstanding submerges.
356 |         return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
    |                                                                       `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
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)
/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:371:64: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
369 |     public func lookup(path: AbsolutePath, in db: LLBCASDatabase, _ ctx: Context) -> LLBFuture<(id: LLBDataID, info: LLBDirectoryEntry)?> {
370 |         // Resolve the parent tree.
371 |         var tree: LLBFuture<LLBCASFileTree?> = db.group.next().makeSucceededFuture(self)
    |                                                                `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
372 |         for component in path.parentDirectory.components.dropFirst() {
373 |             tree = tree.flatMap { tree in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:373:25: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
371 |         var tree: LLBFuture<LLBCASFileTree?> = db.group.next().makeSucceededFuture(self)
372 |         for component in path.parentDirectory.components.dropFirst() {
373 |             tree = tree.flatMap { tree in
    |                         `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
374 |                 guard let tree = tree,
375 |                       let result = tree.lookup(component),
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:377:44: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
375 |                       let result = tree.lookup(component),
376 |                       result.info.type == .directory else {
377 |                     return db.group.next().makeSucceededFuture(nil)
    |                                            `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
378 |                 }
379 |                 return db.get(result.id, ctx).flatMapThrowing { objectOpt in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:415:71: warning: type '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 |     //
    :
413 |     ) -> LLBFuture<LLBCASFileTree> {
414 |         // Create a new tree with `tree` nested at `path`, then merge.
415 |         var rerootedTree: LLBFuture<LLBCASFileTree> = db.group.next().makeSucceededFuture(tree)
    |                                                                       `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
416 |         for component in path.components.dropFirst().reversed() {
417 |             rerootedTree = rerootedTree.flatMap { tree in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:417:41: warning: type '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 |     //
    :
415 |         var rerootedTree: LLBFuture<LLBCASFileTree> = db.group.next().makeSucceededFuture(tree)
416 |         for component in path.components.dropFirst().reversed() {
417 |             rerootedTree = rerootedTree.flatMap { tree in
    |                                         `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
418 |                 return LLBCASFileTree.create(files: [
419 |                     .init(info: LLBDirectoryEntry(name: component, type: .directory, size: tree.aggregateSize,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:425:29: warning: type '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 |     //
    :
423 |         }
424 |
425 |         return rerootedTree.flatMap { tree in
    |                             `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
426 |             self.merge(with: tree, in: db, ctx)
427 |         }
/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:443:36: warning: type '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 |     //
    :
441 |         let indexOpt = lookupIndex(components.first!)
442 |         guard let index = indexOpt else {
443 |             return db.group.next().makeSucceededFuture(self)
    |                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
444 |         }
445 |         // Go deeper and recreate this tree
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:447:35: warning: type '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 |     //
    :
445 |         // Go deeper and recreate this tree
446 |         let subId = object.refs[index]
447 |         return db.get(subId, ctx).flatMap { objectOpt in
    |                                   `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
448 |             let subtree: LLBCASFileTree
449 |             do {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:457:84: warning: type '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 |     //
    :
455 |                 return db.group.next().makeFailedFuture(LLBCASFileTreeError.notDirectory)
456 |             }
457 |             return subtree.remove(components: components.dropFirst(), in: db, ctx).flatMap { newSubtree in
    |                                                                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
458 |                 var newFiles = self.files
459 |                 var newRefs = self.object.refs
/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/FileTree.swift:472:36: warning: type '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 |     //
    :
470 |         guard let index = indexOpt else {
471 |             // No modifications
472 |             return db.group.next().makeSucceededFuture(self)
    |                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
473 |         }
474 |         // Create new tree without component to remove
/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 |             }
[458/466] 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:246:36: warning: type '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 |     //
    :
244 |                     return try LLBCASFileTree(id: b.1, object: object)
245 |                 }
246 |                 let merged = aTree.and(bTree).flatMap { pair in
    |                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
247 |                     return pair.0.merge(with: pair.1, in: db, ctx)
248 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:246:47: warning: type '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 |     //
    :
244 |                     return try LLBCASFileTree(id: b.1, object: object)
245 |                 }
246 |                 let merged = aTree.and(bTree).flatMap { pair in
    |                                               `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
247 |                     return pair.0.merge(with: pair.1, in: db, ctx)
248 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:260:26: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
258 |         }
259 |
260 |         return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
    |                          `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
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)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:260:71: warning: type '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 |     //
    :
258 |         }
259 |
260 |         return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
    |                                                                       `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
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)
/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:285:36: warning: type '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 |     //
    :
283 |         }
284 |         guard trees.count > 1 else {
285 |             return db.group.next().makeSucceededFuture(trees[0])
    |                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
286 |         }
287 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:345:36: warning: type '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 |     //
    :
343 |                 }
344 |             }
345 |             let merged = LLBFuture.whenAllSucceed(treesToMerge, on: db.group.next()).flatMap {
    |                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
346 |                 return _merge(reversedTrees: $0, in: db, ctx)
347 |             }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:345:86: warning: type '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 |     //
    :
343 |                 }
344 |             }
345 |             let merged = LLBFuture.whenAllSucceed(treesToMerge, on: db.group.next()).flatMap {
    |                                                                                      `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
346 |                 return _merge(reversedTrees: $0, in: db, ctx)
347 |             }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:356:26: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
354 |
355 |         // Wait for all the outstanding submerges.
356 |         return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
    |                          `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
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)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:356:71: warning: type '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 |     //
    :
354 |
355 |         // Wait for all the outstanding submerges.
356 |         return LLBFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
    |                                                                       `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
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)
/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:371:64: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
369 |     public func lookup(path: AbsolutePath, in db: LLBCASDatabase, _ ctx: Context) -> LLBFuture<(id: LLBDataID, info: LLBDirectoryEntry)?> {
370 |         // Resolve the parent tree.
371 |         var tree: LLBFuture<LLBCASFileTree?> = db.group.next().makeSucceededFuture(self)
    |                                                                `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
372 |         for component in path.parentDirectory.components.dropFirst() {
373 |             tree = tree.flatMap { tree in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:373:25: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
371 |         var tree: LLBFuture<LLBCASFileTree?> = db.group.next().makeSucceededFuture(self)
372 |         for component in path.parentDirectory.components.dropFirst() {
373 |             tree = tree.flatMap { tree in
    |                         `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
374 |                 guard let tree = tree,
375 |                       let result = tree.lookup(component),
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:377:44: warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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 |     //
    :
375 |                       let result = tree.lookup(component),
376 |                       result.info.type == .directory else {
377 |                     return db.group.next().makeSucceededFuture(nil)
    |                                            `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
378 |                 }
379 |                 return db.get(result.id, ctx).flatMapThrowing { objectOpt in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:415:71: warning: type '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 |     //
    :
413 |     ) -> LLBFuture<LLBCASFileTree> {
414 |         // Create a new tree with `tree` nested at `path`, then merge.
415 |         var rerootedTree: LLBFuture<LLBCASFileTree> = db.group.next().makeSucceededFuture(tree)
    |                                                                       `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
416 |         for component in path.components.dropFirst().reversed() {
417 |             rerootedTree = rerootedTree.flatMap { tree in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:417:41: warning: type '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 |     //
    :
415 |         var rerootedTree: LLBFuture<LLBCASFileTree> = db.group.next().makeSucceededFuture(tree)
416 |         for component in path.components.dropFirst().reversed() {
417 |             rerootedTree = rerootedTree.flatMap { tree in
    |                                         `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
418 |                 return LLBCASFileTree.create(files: [
419 |                     .init(info: LLBDirectoryEntry(name: component, type: .directory, size: tree.aggregateSize,
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:425:29: warning: type '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 |     //
    :
423 |         }
424 |
425 |         return rerootedTree.flatMap { tree in
    |                             `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
426 |             self.merge(with: tree, in: db, ctx)
427 |         }
/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:443:36: warning: type '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 |     //
    :
441 |         let indexOpt = lookupIndex(components.first!)
442 |         guard let index = indexOpt else {
443 |             return db.group.next().makeSucceededFuture(self)
    |                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
444 |         }
445 |         // Go deeper and recreate this tree
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:447:35: warning: type '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 |     //
    :
445 |         // Go deeper and recreate this tree
446 |         let subId = object.refs[index]
447 |         return db.get(subId, ctx).flatMap { objectOpt in
    |                                   `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
448 |             let subtree: LLBCASFileTree
449 |             do {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTree.swift:457:84: warning: type '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 |     //
    :
455 |                 return db.group.next().makeFailedFuture(LLBCASFileTreeError.notDirectory)
456 |             }
457 |             return subtree.remove(components: components.dropFirst(), in: db, ctx).flatMap { newSubtree in
    |                                                                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
458 |                 var newFiles = self.files
459 |                 var newRefs = self.object.refs
/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/FileTree.swift:472:36: warning: type '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 |     //
    :
470 |         guard let index = indexOpt else {
471 |             // No modifications
472 |             return db.group.next().makeSucceededFuture(self)
    |                                    `- warning: type 'LLBCASFileTree' does not conform to the 'Sendable' protocol
473 |         }
474 |         // Create new tree without component to remove
/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 |             }
[459/466] 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: add '@MainActor' to make static property 'fileTreeExportStorageBatcherKey' part of global actor 'MainActor'
   |                        `- 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/FileTreeImport.swift:1123:18: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1121 |         // When the .EstimatingSize phase comes, this can be executed.
1122 |         return .execute(in: .EstimatingSize, run: {
1123 |             loop.makeSucceededFuture(NextStep.wait(in: .CheckIfUploaded,
     |                  `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1124 |                 futures: assemblePartialNextSteps()))
1125 |         })
/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: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                     `- 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: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                     `- 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 |
[460/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: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                     `- 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: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 |     .none,
120 |   ]
[461/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: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                     `- 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: add '@MainActor' to make static property 'allCases' part of global actor 'MainActor'
    |                     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 |     .none,
120 |   ]
[462/466] 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:58:58: warning: type 'LLBCASFSNode' does not conform to the 'Sendable' protocol
 56 |         }
 57 |
 58 |         let entry = try self.client.load(result.id, ctx).wait()
    |                                                          `- warning: type 'LLBCASFSNode' does not conform to the 'Sendable' protocol
 59 |         guard let tree = entry.tree else { throw FileSystemError(.notDirectory, path) }
 60 |         return tree.files.map{ $0.name }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSNode.swift:15:15: note: consider making struct 'LLBCASFSNode' conform to the 'Sendable' protocol
13 |
14 | /// A CAS object (can be tree or blob)
15 | public struct LLBCASFSNode {
   |               `- note: consider making struct 'LLBCASFSNode' conform to the 'Sendable' protocol
16 |     public enum Error: Swift.Error {
17 |         case notApplicable
/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 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/TSCCASFileSystem.swift:108:46: warning: type 'LLBCASFSNode' does not conform to the 'Sendable' protocol
106 |         guard let id = result?.id else { throw FileSystemError(.noEntry, path) }
107 |
108 |         let entry = try client.load(id, ctx).wait()
    |                                              `- warning: type 'LLBCASFSNode' does not conform to the 'Sendable' protocol
109 |         guard let blob = entry.blob else { throw FileSystemError(.ioError(code: 0), path) }
110 |         let bytes = try blob.read(ctx).wait()
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/CASFSNode.swift:15:15: note: consider making struct 'LLBCASFSNode' conform to the 'Sendable' protocol
13 |
14 | /// A CAS object (can be tree or blob)
15 | public struct LLBCASFSNode {
   |               `- note: consider making struct 'LLBCASFSNode' conform to the 'Sendable' protocol
16 |     public enum Error: Swift.Error {
17 |         case notApplicable
[463/466] Compiling TSFCASFileTree FileSegmenter.swift
[464/466] Compiling TSFCASFileTree FileTreeParser.swift
[465/466] Compiling TSFCASFileTree FileTreeImport.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:312:28: warning: type 'T' does not conform to the 'Sendable' protocol
 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
     |                            `- warning: type 'T' does not conform to the 'Sendable' protocol
 313 |             // Check if something retryable happened.
 314 |             guard case LLBCASDatabaseError.retryableNetworkError(_) = error else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:327:22: warning: type 'T' does not conform to the 'Sendable' protocol
 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: type 'T' does not conform to the 'Sendable' protocol
 328 |             }
 329 |
/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:463:30: warning: type 'FilesystemObjectType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 461 |                 // We can import individual files just fine.
 462 |                 stats.toImportObjects_.wrappingIncrement(ordering: .relaxed)
 463 |                 return [loop.makeSucceededFuture([(importPath, .REG)])]
     |                              `- warning: type 'FilesystemObjectType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 464 |             } else {
 465 |                 // Scan the filesystem tree using multiple threads.
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Internal/ConcurrentFilesystemScanner.swift:423:13: note: consider making enum 'FilesystemObjectType' conform to the 'Sendable' protocol
421 | /// We don't assign values there because the DT_xxx and S_IFxxx values
422 | /// are different yet we support them all since they still form the same set.
423 | public enum FilesystemObjectType: UInt8 {
    |             `- note: consider making enum 'FilesystemObjectType' conform to the 'Sendable' protocol
424 |     case UNKNOWN
425 |     case FIFO
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:478:11: warning: type 'FilesystemObjectType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 476 |                 }
 477 |             }
 478 |         }.flatMap { pathsFutures -> LLBFuture<[[ConcurrentFilesystemScanner.Element]]> in
     |           `- warning: type 'FilesystemObjectType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 479 |             self.whenAllSucceed(pathsFutures)
 480 |         }.map { (pathInfos: [[ConcurrentFilesystemScanner.Element]]) -> [LLBFuture<NextStep>] in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Internal/ConcurrentFilesystemScanner.swift:423:13: note: consider making enum 'FilesystemObjectType' conform to the 'Sendable' protocol
421 | /// We don't assign values there because the DT_xxx and S_IFxxx values
422 | /// are different yet we support them all since they still form the same set.
423 | public enum FilesystemObjectType: UInt8 {
    |             `- note: consider making enum 'FilesystemObjectType' conform to the 'Sendable' protocol
424 |     case UNKNOWN
425 |     case FIFO
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:499:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 497 |                 }
 498 |             }
 499 |         }.flatMap { nextStepFutures -> LLBFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 500 |             self.whenAllSucceed(nextStepFutures)
 501 |         }.flatMap { nextStepFutures -> LLBFuture<[NextStep]> in
     :
 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:501:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 499 |         }.flatMap { nextStepFutures -> LLBFuture<[NextStep]> in
 500 |             self.whenAllSucceed(nextStepFutures)
 501 |         }.flatMap { nextStepFutures -> LLBFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 502 |             self.set(phase: .CheckIfUploaded)
 503 |             return self.recursivelyPerformSteps(currentPhase: .CheckIfUploaded, currentPhaseSteps: nextStepFutures)
     :
 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:661:25: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 659 |
 660 |         guard finalResultPromise.isCompleted == false else {
 661 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 662 |         }
 663 |
     :
 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:681:56: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 679 |         // Wait for the steps we need to wait in this phase, and then
 680 |         // advance the phase if there are no more steps to wait.
 681 |         return self.whenAllSucceed(waitInCurrentPhase).flatMap { moreStepsInCurrentPhase in
     |                                                        `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 682 |             if moreStepsInCurrentPhase.isEmpty {
 683 |                 precondition(!currentPhase.isFinalPhase)  // Avoid infinite recursion
     :
 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:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 684 |                 let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 685 |                 guard nextPhase < .UploadingDirs else {
 686 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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: 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:950:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
 948 |               func uploadFileInfo(blobId: LLBDataID, importSize: Int? = nil) -> LLBFuture<NextStep> {
 949 |                 guard finalResultPromise.isCompleted == false else {
 950 |                     return loop.makeSucceededFuture(NextStep.skipped)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 951 |                 }
 952 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:961:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
 959 |                         stats.importedBytes_.wrappingIncrement(by: size, ordering: .relaxed)
 960 |                     }
 961 |                     return loop.makeSucceededFuture(encodeNextStep(for: blobId))
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 962 |                 }
 963 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:993:39: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
 991 |                 let containsFuture = self.dbContains(segm, ctx)
 992 |                 let containsLoop = containsFuture.eventLoop
 993 |                 return containsFuture.flatMap { exists -> LLBFuture<NextStep> in
     |                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 994 |
 995 |                   guard !exists else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:996:73: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
 994 |
 995 |                   guard !exists else {
 996 |                     let existingIdFuture: LLBFuture<NextStep> = segm.id.flatMap { id in
     |                                                                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 997 |                         return uploadFileInfo(blobId: id, importSize: segm.uncompressedSize)
 998 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1003:39: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1001 |                   }
1002 |
1003 |                   return containsLoop.makeSucceededFuture(NextStep.execute(in: .UploadingFiles, run: {
     |                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1004 |                     let nextStepFuture: LLBFuture<NextStep> = self.execute(on: self.cpuQueue, default: nil) { () -> LLBFuture<NextStep>? in
1005 |                         let data: LLBFastData
/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:1020:110: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
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
1020 |                             return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
     |                                                                                                              `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1021 |                                 withExtendedLifetime(importObject) { // for mmap
1022 |                                     uploadFileInfo(blobId: id)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1026:31: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1024 |                             }.map { result in
1025 |                                 return result
1026 |                             }.hop(to: loop)
     |                               `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1027 |                         }
1028 |                     }.flatMap {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1028:23: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1026 |                             }.hop(to: loop)
1027 |                         }
1028 |                     }.flatMap {
     |                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1029 |                         // This type of return ensures that cpuQueue does not
1030 |                         // wait for the netQueue operation to complete.
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1031:36: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1029 |                         // This type of return ensures that cpuQueue does not
1030 |                         // wait for the netQueue operation to complete.
1031 |                         $0 ?? loop.makeSucceededFuture(NextStep.skipped)
     |                                    `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1032 |                     }
1033 |                     nextStepFuture.cascade(to: partialStepPromise)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1078:17: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1076 |                 throw error
1077 |
1078 |               }.flatMap { nextSteps in
     |                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1079 |                 // The next steps can only be empty if we've reacting on
1080 |                 // a filesystem-related error with some of our chunks.
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1082:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1080 |                 // a filesystem-related error with some of our chunks.
1081 |                 guard nextSteps.isEmpty == false else {
1082 |                     return loop.makeSucceededFuture(.skipped)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1083 |                 }
1084 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1118:47: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1116 |           // have been uploaded. Therefore we wait for the huge files in
1117 |           // its own state, .UploadingWait.
1118 |           return cheapNextStepFutures + [loop.makeSucceededFuture(combinePartialResultsStep)]
     |                                               `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1119 |         }
1120 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1123:18: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1121 |         // When the .EstimatingSize phase comes, this can be executed.
1122 |         return .execute(in: .EstimatingSize, run: {
1123 |             loop.makeSucceededFuture(NextStep.wait(in: .CheckIfUploaded,
     |                  `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1124 |                 futures: assemblePartialNextSteps()))
1125 |         })
/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 {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1164:25: warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1159 |     }
1160 |
1161 |     private func whenAllSucceed<Value>(_ futures: [LLBFuture<Value>], on loop: LLBFuturesDispatchLoop? = nil) -> LLBFuture<[Value]> {
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1162 |         let loop = loop ?? self.loop
1163 |         guard finalResultPromise.isCompleted == false else {
1164 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1165 |         }
1166 |         return LLBFuture.whenAllSucceed(futures, on: loop).map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1166:26: warning: type 'Value' does not conform to the 'Sendable' protocol
1159 |     }
1160 |
1161 |     private func whenAllSucceed<Value>(_ futures: [LLBFuture<Value>], on loop: LLBFuturesDispatchLoop? = nil) -> LLBFuture<[Value]> {
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1162 |         let loop = loop ?? self.loop
1163 |         guard finalResultPromise.isCompleted == false else {
1164 |             return loop.makeSucceededFuture([])
1165 |         }
1166 |         return LLBFuture.whenAllSucceed(futures, on: loop).map { result in
     |                          `- warning: type 'Value' does not conform to the 'Sendable' protocol
1167 |             guard self.finalResultPromise.isCompleted == false else {
1168 |                 return []
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1181:39: warning: type 'T' does not conform to the 'Sendable' protocol
1177 |     /// Enqueue the callback unless the stop flag is in action.
1178 |     /// If stop flag is set, return the value specified in `then`.
1179 |     private func execute<T>(on queue: LLBBatchingFutureOperationQueue, default stopValue: T, _ body: @escaping () throws -> T) -> LLBFuture<T> {
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1180 |         guard finalResultPromise.isCompleted == false else {
1181 |             return queue.group.next().makeSucceededFuture(stopValue)
     |                                       `- warning: type 'T' does not conform to the 'Sendable' protocol
1182 |         }
1183 |         return queue.execute {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1201:25: warning: type 'T' does not conform to the 'Sendable' protocol
1196 |     /// Enqueue the callback unless the stop flag is in action.
1197 |     /// If stop flag is set, return the value specified in `then`.
1198 |     private func execute<T>(on queue: LLBFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1, default stopValue: T, _ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1199 |         let loop = loop ?? self.loop
1200 |         guard finalResultPromise.isCompleted == false else {
1201 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1202 |         }
1203 |         return queue.enqueue(on: loop, share: size) {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1205:29: warning: type 'T' does not conform to the 'Sendable' protocol
1196 |     /// Enqueue the callback unless the stop flag is in action.
1197 |     /// If stop flag is set, return the value specified in `then`.
1198 |     private func execute<T>(on queue: LLBFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1, default stopValue: T, _ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1199 |         let loop = loop ?? self.loop
1200 |         guard finalResultPromise.isCompleted == false else {
     :
1203 |         return queue.enqueue(on: loop, share: size) {
1204 |             guard self.finalResultPromise.isCompleted == false else {
1205 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1206 |             }
1207 |             return body().flatMapErrorThrowing { error in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1219:25: warning: type 'T' does not conform to the 'Sendable' protocol
1215 |     @available(*, noasync, message: "This method blocks indefinitely, don't use from 'async' or SwiftNIO EventLoops")
1216 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1217 |     private func executeWithBackpressure<T>(on queue: LLBFutureOperationQueue, loop: LLBFuturesDispatchLoop, size: Int = 1, default stopValue: T, _ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1218 |         guard finalResultPromise.isCompleted == false else {
1219 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1220 |         }
1221 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1223:29: warning: type 'T' does not conform to the 'Sendable' protocol
1215 |     @available(*, noasync, message: "This method blocks indefinitely, don't use from 'async' or SwiftNIO EventLoops")
1216 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1217 |     private func executeWithBackpressure<T>(on queue: LLBFutureOperationQueue, loop: LLBFuturesDispatchLoop, size: Int = 1, default stopValue: T, _ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1218 |         guard finalResultPromise.isCompleted == false else {
1219 |             return loop.makeSucceededFuture(stopValue)
     :
1221 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
1222 |             guard self.finalResultPromise.isCompleted == false else {
1223 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1224 |             }
1225 |             return body().flatMapErrorThrowing { error in
[466/466] Compiling TSFCASFileTree FilesystemObject.swift
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:312:28: warning: type 'T' does not conform to the 'Sendable' protocol
 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
     |                            `- warning: type 'T' does not conform to the 'Sendable' protocol
 313 |             // Check if something retryable happened.
 314 |             guard case LLBCASDatabaseError.retryableNetworkError(_) = error else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:327:22: warning: type 'T' does not conform to the 'Sendable' protocol
 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: type 'T' does not conform to the 'Sendable' protocol
 328 |             }
 329 |
/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:463:30: warning: type 'FilesystemObjectType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 461 |                 // We can import individual files just fine.
 462 |                 stats.toImportObjects_.wrappingIncrement(ordering: .relaxed)
 463 |                 return [loop.makeSucceededFuture([(importPath, .REG)])]
     |                              `- warning: type 'FilesystemObjectType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 464 |             } else {
 465 |                 // Scan the filesystem tree using multiple threads.
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Internal/ConcurrentFilesystemScanner.swift:423:13: note: consider making enum 'FilesystemObjectType' conform to the 'Sendable' protocol
421 | /// We don't assign values there because the DT_xxx and S_IFxxx values
422 | /// are different yet we support them all since they still form the same set.
423 | public enum FilesystemObjectType: UInt8 {
    |             `- note: consider making enum 'FilesystemObjectType' conform to the 'Sendable' protocol
424 |     case UNKNOWN
425 |     case FIFO
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:478:11: warning: type 'FilesystemObjectType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 476 |                 }
 477 |             }
 478 |         }.flatMap { pathsFutures -> LLBFuture<[[ConcurrentFilesystemScanner.Element]]> in
     |           `- warning: type 'FilesystemObjectType' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 479 |             self.whenAllSucceed(pathsFutures)
 480 |         }.map { (pathInfos: [[ConcurrentFilesystemScanner.Element]]) -> [LLBFuture<NextStep>] in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/Internal/ConcurrentFilesystemScanner.swift:423:13: note: consider making enum 'FilesystemObjectType' conform to the 'Sendable' protocol
421 | /// We don't assign values there because the DT_xxx and S_IFxxx values
422 | /// are different yet we support them all since they still form the same set.
423 | public enum FilesystemObjectType: UInt8 {
    |             `- note: consider making enum 'FilesystemObjectType' conform to the 'Sendable' protocol
424 |     case UNKNOWN
425 |     case FIFO
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:499:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 497 |                 }
 498 |             }
 499 |         }.flatMap { nextStepFutures -> LLBFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 500 |             self.whenAllSucceed(nextStepFutures)
 501 |         }.flatMap { nextStepFutures -> LLBFuture<[NextStep]> in
     :
 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:501:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 499 |         }.flatMap { nextStepFutures -> LLBFuture<[NextStep]> in
 500 |             self.whenAllSucceed(nextStepFutures)
 501 |         }.flatMap { nextStepFutures -> LLBFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 502 |             self.set(phase: .CheckIfUploaded)
 503 |             return self.recursivelyPerformSteps(currentPhase: .CheckIfUploaded, currentPhaseSteps: nextStepFutures)
     :
 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:661:25: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 659 |
 660 |         guard finalResultPromise.isCompleted == false else {
 661 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 662 |         }
 663 |
     :
 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:681:56: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 679 |         // Wait for the steps we need to wait in this phase, and then
 680 |         // advance the phase if there are no more steps to wait.
 681 |         return self.whenAllSucceed(waitInCurrentPhase).flatMap { moreStepsInCurrentPhase in
     |                                                        `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 682 |             if moreStepsInCurrentPhase.isEmpty {
 683 |                 precondition(!currentPhase.isFinalPhase)  // Avoid infinite recursion
     :
 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:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 684 |                 let nextPhase = LLBCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 685 |                 guard nextPhase < .UploadingDirs else {
 686 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 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: 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:950:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
 948 |               func uploadFileInfo(blobId: LLBDataID, importSize: Int? = nil) -> LLBFuture<NextStep> {
 949 |                 guard finalResultPromise.isCompleted == false else {
 950 |                     return loop.makeSucceededFuture(NextStep.skipped)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 951 |                 }
 952 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:961:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
 959 |                         stats.importedBytes_.wrappingIncrement(by: size, ordering: .relaxed)
 960 |                     }
 961 |                     return loop.makeSucceededFuture(encodeNextStep(for: blobId))
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 962 |                 }
 963 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:993:39: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
 991 |                 let containsFuture = self.dbContains(segm, ctx)
 992 |                 let containsLoop = containsFuture.eventLoop
 993 |                 return containsFuture.flatMap { exists -> LLBFuture<NextStep> in
     |                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 994 |
 995 |                   guard !exists else {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:996:73: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
 994 |
 995 |                   guard !exists else {
 996 |                     let existingIdFuture: LLBFuture<NextStep> = segm.id.flatMap { id in
     |                                                                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 997 |                         return uploadFileInfo(blobId: id, importSize: segm.uncompressedSize)
 998 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1003:39: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1001 |                   }
1002 |
1003 |                   return containsLoop.makeSucceededFuture(NextStep.execute(in: .UploadingFiles, run: {
     |                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1004 |                     let nextStepFuture: LLBFuture<NextStep> = self.execute(on: self.cpuQueue, default: nil) { () -> LLBFuture<NextStep>? in
1005 |                         let data: LLBFastData
/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:1020:110: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
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
1020 |                             return self.dbPut(refs: [], data: slice, importSize: segm.uncompressedSize, ctx).flatMap { id -> LLBFuture<NextStep> in
     |                                                                                                              `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1021 |                                 withExtendedLifetime(importObject) { // for mmap
1022 |                                     uploadFileInfo(blobId: id)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1026:31: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1024 |                             }.map { result in
1025 |                                 return result
1026 |                             }.hop(to: loop)
     |                               `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1027 |                         }
1028 |                     }.flatMap {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1028:23: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1026 |                             }.hop(to: loop)
1027 |                         }
1028 |                     }.flatMap {
     |                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1029 |                         // This type of return ensures that cpuQueue does not
1030 |                         // wait for the netQueue operation to complete.
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1031:36: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1029 |                         // This type of return ensures that cpuQueue does not
1030 |                         // wait for the netQueue operation to complete.
1031 |                         $0 ?? loop.makeSucceededFuture(NextStep.skipped)
     |                                    `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1032 |                     }
1033 |                     nextStepFuture.cascade(to: partialStepPromise)
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1078:17: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1076 |                 throw error
1077 |
1078 |               }.flatMap { nextSteps in
     |                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1079 |                 // The next steps can only be empty if we've reacting on
1080 |                 // a filesystem-related error with some of our chunks.
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1082:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1080 |                 // a filesystem-related error with some of our chunks.
1081 |                 guard nextSteps.isEmpty == false else {
1082 |                     return loop.makeSucceededFuture(.skipped)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1083 |                 }
1084 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1118:47: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1116 |           // have been uploaded. Therefore we wait for the huge files in
1117 |           // its own state, .UploadingWait.
1118 |           return cheapNextStepFutures + [loop.makeSucceededFuture(combinePartialResultsStep)]
     |                                               `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1119 |         }
1120 |
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1123:18: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 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
     :
1121 |         // When the .EstimatingSize phase comes, this can be executed.
1122 |         return .execute(in: .EstimatingSize, run: {
1123 |             loop.makeSucceededFuture(NextStep.wait(in: .CheckIfUploaded,
     |                  `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1124 |                 futures: assemblePartialNextSteps()))
1125 |         })
/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 {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1164:25: warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1159 |     }
1160 |
1161 |     private func whenAllSucceed<Value>(_ futures: [LLBFuture<Value>], on loop: LLBFuturesDispatchLoop? = nil) -> LLBFuture<[Value]> {
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1162 |         let loop = loop ?? self.loop
1163 |         guard finalResultPromise.isCompleted == false else {
1164 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1165 |         }
1166 |         return LLBFuture.whenAllSucceed(futures, on: loop).map { result in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1166:26: warning: type 'Value' does not conform to the 'Sendable' protocol
1159 |     }
1160 |
1161 |     private func whenAllSucceed<Value>(_ futures: [LLBFuture<Value>], on loop: LLBFuturesDispatchLoop? = nil) -> LLBFuture<[Value]> {
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1162 |         let loop = loop ?? self.loop
1163 |         guard finalResultPromise.isCompleted == false else {
1164 |             return loop.makeSucceededFuture([])
1165 |         }
1166 |         return LLBFuture.whenAllSucceed(futures, on: loop).map { result in
     |                          `- warning: type 'Value' does not conform to the 'Sendable' protocol
1167 |             guard self.finalResultPromise.isCompleted == false else {
1168 |                 return []
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1181:39: warning: type 'T' does not conform to the 'Sendable' protocol
1177 |     /// Enqueue the callback unless the stop flag is in action.
1178 |     /// If stop flag is set, return the value specified in `then`.
1179 |     private func execute<T>(on queue: LLBBatchingFutureOperationQueue, default stopValue: T, _ body: @escaping () throws -> T) -> LLBFuture<T> {
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1180 |         guard finalResultPromise.isCompleted == false else {
1181 |             return queue.group.next().makeSucceededFuture(stopValue)
     |                                       `- warning: type 'T' does not conform to the 'Sendable' protocol
1182 |         }
1183 |         return queue.execute {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1201:25: warning: type 'T' does not conform to the 'Sendable' protocol
1196 |     /// Enqueue the callback unless the stop flag is in action.
1197 |     /// If stop flag is set, return the value specified in `then`.
1198 |     private func execute<T>(on queue: LLBFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1, default stopValue: T, _ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1199 |         let loop = loop ?? self.loop
1200 |         guard finalResultPromise.isCompleted == false else {
1201 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1202 |         }
1203 |         return queue.enqueue(on: loop, share: size) {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1205:29: warning: type 'T' does not conform to the 'Sendable' protocol
1196 |     /// Enqueue the callback unless the stop flag is in action.
1197 |     /// If stop flag is set, return the value specified in `then`.
1198 |     private func execute<T>(on queue: LLBFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1, default stopValue: T, _ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1199 |         let loop = loop ?? self.loop
1200 |         guard finalResultPromise.isCompleted == false else {
     :
1203 |         return queue.enqueue(on: loop, share: size) {
1204 |             guard self.finalResultPromise.isCompleted == false else {
1205 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1206 |             }
1207 |             return body().flatMapErrorThrowing { error in
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1219:25: warning: type 'T' does not conform to the 'Sendable' protocol
1215 |     @available(*, noasync, message: "This method blocks indefinitely, don't use from 'async' or SwiftNIO EventLoops")
1216 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1217 |     private func executeWithBackpressure<T>(on queue: LLBFutureOperationQueue, loop: LLBFuturesDispatchLoop, size: Int = 1, default stopValue: T, _ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1218 |         guard finalResultPromise.isCompleted == false else {
1219 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1220 |         }
1221 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
/Users/admin/builder/spi-builder-workspace/Sources/TSFCASFileTree/FileTreeImport.swift:1223:29: warning: type 'T' does not conform to the 'Sendable' protocol
1215 |     @available(*, noasync, message: "This method blocks indefinitely, don't use from 'async' or SwiftNIO EventLoops")
1216 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1217 |     private func executeWithBackpressure<T>(on queue: LLBFutureOperationQueue, loop: LLBFuturesDispatchLoop, size: Int = 1, default stopValue: T, _ body: @escaping () -> LLBFuture<T>) -> LLBFuture<T> {
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1218 |         guard finalResultPromise.isCompleted == false else {
1219 |             return loop.makeSucceededFuture(stopValue)
     :
1221 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
1222 |             guard self.finalResultPromise.isCompleted == false else {
1223 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1224 |             }
1225 |             return body().flatMapErrorThrowing { error in
[467/470] Compiling TSFCASUtilities LinkedListStream.swift
[468/470] 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 |                 }
[469/470] Compiling TSFCASUtilities BufferedStreamWriter.swift
[470/470] Emitting module TSFCASUtilities
Build complete! (25.68s)
Fetching https://github.com/apple/swift-nio.git from cache
Fetching https://github.com/apple/swift-protobuf.git from cache
Fetching https://github.com/apple/swift-tools-support-core.git from cache
Fetched https://github.com/apple/swift-protobuf.git from cache (0.87s)
Fetched https://github.com/apple/swift-tools-support-core.git from cache (0.87s)
Fetched https://github.com/apple/swift-nio.git from cache (0.98s)
Computing version for https://github.com/apple/swift-protobuf.git
Computed https://github.com/apple/swift-protobuf.git at 1.29.0 (1.47s)
Computing version for https://github.com/apple/swift-tools-support-core.git
Computed https://github.com/apple/swift-tools-support-core.git at 0.7.2 (0.61s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.82.1 (0.68s)
Fetching https://github.com/apple/swift-system.git from cache
Fetching https://github.com/apple/swift-atomics.git from cache
Fetching https://github.com/apple/swift-collections.git from cache
Fetched https://github.com/apple/swift-atomics.git from cache (0.71s)
Fetched https://github.com/apple/swift-system.git from cache (0.73s)
Fetched https://github.com/apple/swift-collections.git from cache (0.74s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (1.24s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.4.2 (0.45s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.4 (0.66s)
Creating working copy for https://github.com/apple/swift-protobuf.git
Working copy of https://github.com/apple/swift-protobuf.git resolved at 1.29.0
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.2.0
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.82.1
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.4.2
Creating working copy for https://github.com/apple/swift-tools-support-core.git
Working copy of https://github.com/apple/swift-tools-support-core.git resolved at 0.7.2
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.1.4
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.