Build Information
Successful build of llbuild2, reference main (bc6abf), with Swift 6.1 for Linux on 15 Apr 2026 02:49:58 UTC.
Swift 6 data race errors: 5
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1Build Log
46 | return FXFuture.whenAllSucceed(futures, on: self.group.next()).map { _ in () }
47 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/ConcurrentFileTreeWalker.swift:102:13: warning: capture of 'root' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a '@Sendable' closure
60 | }
61 |
62 | package struct Item {
| `- note: consider making struct 'Item' conform to the 'Sendable' protocol
63 | /// The description of the current CAS filesystem entry.
64 | let arg: FilterArgument
:
100 | let walker = ConcurrentHierarchyWalker(group: db.group, delegate: self)
101 | return walker.walk(root, ctx).map { () in
102 | root.scanResult.reapResult()
| `- warning: capture of 'root' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a '@Sendable' closure
103 | }
104 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/ConcurrentFileTreeWalker.swift:117:33: warning: capture of 'item' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a '@Sendable' closure
60 | }
61 |
62 | package struct Item {
| `- note: consider making struct 'Item' conform to the 'Sendable' protocol
63 | /// The description of the current CAS filesystem entry.
64 | let arg: FilterArgument
:
115 |
116 | return client.load(item.id, type: typeHint, ctx).map { node in
117 | if typeHint == nil, item.arg.path == .root, item.arg.size == 0 {
| `- warning: capture of 'item' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a '@Sendable' closure
118 | // This is our root. Check if we're allowed to go past it.
119 | let dirEntry = node.asDirectoryEntry(filename: "-")
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/ConcurrentFileTreeWalker.swift:125:23: warning: capture of 'self' with non-sendable type 'LLBConcurrentFileTreeWalker' in a '@Sendable' closure
49 | }
50 |
51 | package class LLBConcurrentFileTreeWalker: RetrieveChildrenProtocol {
| `- note: class 'LLBConcurrentFileTreeWalker' does not conform to the 'Sendable' protocol
52 | let db: any FXCASDatabase
53 | let client: FXCASFSClient
:
123 | size: Int(clamping: dirEntry.info.size)), id: dirEntry.id,
124 | scanResult: item.scanResult)
125 | guard self.filter(rootItem) else {
| `- warning: capture of 'self' with non-sendable type 'LLBConcurrentFileTreeWalker' in a '@Sendable' closure
126 | return []
127 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/Context.swift:42: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
10 | import TSCUtility
11 |
12 | private final class ContextKey {}
| `- note: class 'ContextKey' does not conform to the 'Sendable' protocol
13 |
14 | /// Support storing and retrieving file tree import options from a context
:
40 | /// Support storing and retrieving file tree export storage batcher from a context
41 | extension Context {
42 | 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
43 |
44 | package var fileTreeExportStorageBatcher: LLBBatchingFutureOperationQueue? {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/Context.swift:18:85: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
16 | package static func with(_ options: FXCASFileTree.ImportOptions) -> Context {
17 | return Context(
18 | dictionaryLiteral: (ObjectIdentifier(FXCASFileTree.ImportOptions.self), options as Any)
| `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
19 | )
20 | }
[842/847] Compiling llbuild2Testing DirectoryEntry.swift
[843/847] Compiling llbuild2Testing Errors.swift
[844/847] Compiling llbuild2Testing FileInfo.swift
[845/847] Compiling llbuild2Testing FileTree.swift
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:72: warning: reference to captured var 'refs' in concurrently-executing code
148 | // API should be fixed. One option would be to change this class so
149 | // it can directly operate on the encoded representation.
150 | return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'refs' in concurrently-executing code
151 | }
152 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:84: warning: reference to captured var 'dirBytes' in concurrently-executing code
148 | // API should be fixed. One option would be to change this class so
149 | // it can directly operate on the encoded representation.
150 | return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'dirBytes' in concurrently-executing code
151 | }
152 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:287:17: warning: mutation of captured var 'files' in concurrently-executing code
285 | return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
286 | for (idx, name, result, posixDetails) in mergedEntries {
287 | files[idx] = .init(
| `- warning: mutation of captured var 'files' in concurrently-executing code
288 | info: FXDirectoryEntry(
289 | name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:292:48: warning: reference to captured var 'files' in concurrently-executing code
290 | posixDetails: posixDetails), id: result.id)
291 | }
292 | return FXCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
293 | }
294 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:408:17: warning: mutation of captured var 'files' in concurrently-executing code
406 | return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
407 | for (idx, name, result, posixDetails) in mergedEntries {
408 | files[idx] = .init(
| `- warning: mutation of captured var 'files' in concurrently-executing code
409 | info: FXDirectoryEntry(
410 | name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:414:24: warning: reference to captured var 'files' in concurrently-executing code
412 | }
413 | return FXCASFileTree.create(
414 | files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
415 | }
416 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:234:13: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
232 | let casObjectFuture: FXFuture<FXCASObject> = db.get(item.id, ctx).flatMapThrowing {
233 | casObject in
234 | self.stats.downloadsInProgressObjects_.wrappingDecrement(ordering: .relaxed)
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
235 |
236 | guard let casObject = casObject else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
248 | // Unblock the current NIO thread.
249 | batcher.execute {
250 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
251 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
248 | // Unblock the current NIO thread.
249 | batcher.execute {
250 | 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
251 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:257:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
255 | } else {
256 | return casObjectFuture.flatMapThrowing { casObject in
257 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
258 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
259 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:353:14: warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
351 |
352 | let loop: FXFuturesDispatchLoop
353 | let _db: FXCASDatabase
| `- warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
354 | let finalResultPromise: LLBCancellablePromise<FXDataID>
355 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:319:28: warning: type 'T' does not conform to the 'Sendable' protocol
314 |
315 | // Retry with lesser concurrency if we see unexpected network errors.
316 | private static func recursivelyDecreasingLimit<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
317 | on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
318 | ) -> FXFuture<T> {
319 | return body(limit).flatMapError { error -> FXFuture<T> in
| `- warning: type 'T' does not conform to the 'Sendable' protocol
320 | // Check if something retryable happened.
321 | guard case FXCASDatabaseError.retryableNetworkError(_) = error else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:334:22: warning: type 'T' does not conform to the 'Sendable' protocol
314 |
315 | // Retry with lesser concurrency if we see unexpected network errors.
316 | private static func recursivelyDecreasingLimit<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
317 | on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
318 | ) -> FXFuture<T> {
:
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
334 | .cascade(to: promise)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
335 | }
336 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
331 | let promise = loop.makePromise(of: T.self)
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
334 | .cascade(to: promise)
335 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
331 | let promise = loop.makePromise(of: T.self)
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
334 | .cascade(to: promise)
335 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:525:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
523 | }
524 | }
525 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
526 | self.whenAllSucceed(nextStepFutures)
527 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:527:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
525 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
526 | self.whenAllSucceed(nextStepFutures)
527 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
528 | self.set(phase: .CheckIfUploaded)
529 | return self.recursivelyPerformSteps(
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:712:25: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
710 |
711 | guard finalResultPromise.isCompleted == false else {
712 | return loop.makeSucceededFuture([])
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
713 | }
714 |
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:732:56: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
730 | // Wait for the steps we need to wait in this phase, and then
731 | // advance the phase if there are no more steps to wait.
732 | 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
733 | if moreStepsInCurrentPhase.isEmpty {
734 | precondition(!currentPhase.isFinalPhase) // Avoid infinite recursion
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | 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
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: reference to captured var 'finishedSteps' in concurrently-executing code
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
738 | }
739 | self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
738 | }
739 | self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:741:65: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
739 | self.set(phase: nextPhase)
740 | return self.recursivelyPerformSteps(
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
742 | ).map {
743 | finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
742 | ).map {
743 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
744 | }
745 | } else {
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
742 | ).map {
743 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
744 | }
745 | } else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:748:37: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
746 | return self.recursivelyPerformSteps(
747 | currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase,
748 | nextPhaseSteps: nextPhaseSteps
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
749 | ).map {
750 | finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
748 | nextPhaseSteps: nextPhaseSteps
749 | ).map {
750 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
751 | }
752 | }
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
748 | nextPhaseSteps: nextPhaseSteps
749 | ).map {
750 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
751 | }
752 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1044:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1042 | > {
1043 | guard finalResultPromise.isCompleted == false else {
1044 | return loop.makeSucceededFuture(NextStep.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1045 | }
1046 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1056:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1054 | by: size, ordering: .relaxed)
1055 | }
1056 | return loop.makeSucceededFuture(encodeNextStep(for: blobId))
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1057 | }
1058 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1095:51: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1093 | let containsFuture = self.dbContains(segm, ctx)
1094 | let containsLoop = containsFuture.eventLoop
1095 | return containsFuture.flatMap { exists -> FXFuture<NextStep> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1096 |
1097 | guard !exists else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1098:88: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1096 |
1097 | guard !exists else {
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1099 | id in
1100 | return uploadFileInfo(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1107:53: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1105 | }
1106 |
1107 | return containsLoop.makeSucceededFuture(
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1108 | NextStep.execute(
1109 | in: .UploadingFiles,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1130:61: warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1128 | // free to take our load. This ensures that we're not
1129 | // limited by CPU parallelism for network concurrency.
1130 | return self.executeWithBackpressure(
| `- warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1131 | on: self.netQueue, loop: containsLoop,
1132 | size: slice.readableBytes, default: .skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1137:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1135 | refs: [], data: slice,
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1143:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1141 | }.map { result in
1142 | return result
1143 | }.hop(to: loop)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1144 | }
1145 | }.flatMap {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1145:47: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1143 | }.hop(to: loop)
1144 | }
1145 | }.flatMap {
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1146 | // This type of return ensures that cpuQueue does not
1147 | // wait for the netQueue operation to complete.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1148:60: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1146 | // This type of return ensures that cpuQueue does not
1147 | // wait for the netQueue operation to complete.
1148 | $0 ?? loop.makeSucceededFuture(NextStep.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1149 | }
1150 | nextStepFuture.cascade(to: partialStepPromise)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1203:23: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1201 | throw error
1202 |
1203 | }.flatMap { nextSteps in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1204 | // The next steps can only be empty if we've reacting on
1205 | // a filesystem-related error with some of our chunks.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1207:41: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1205 | // a filesystem-related error with some of our chunks.
1206 | guard nextSteps.isEmpty == false else {
1207 | return loop.makeSucceededFuture(.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1208 | }
1209 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1254:49: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1252 | // have been uploaded. Therefore we wait for the huge files in
1253 | // its own state, .UploadingWait.
1254 | return cheapNextStepFutures + [loop.makeSucceededFuture(combinePartialResultsStep)]
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1255 | }
1256 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1261:22: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1259 | in: .EstimatingSize,
1260 | run: {
1261 | loop.makeSucceededFuture(
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1262 | NextStep.wait(
1263 | in: .CheckIfUploaded,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1080:37: warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
1078 | importSize: importSize, ctx
1079 | ).map { id in
1080 | encodeNextStep(for: id)
| |- warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1081 | }
1082 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1026:30: warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1024 | promise: loop.makePromise(of: NextStep.self))
1025 |
1026 | func encodeNextStep(for id: FXDataID) -> NextStep {
| `- warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1027 | if isSingleChunk {
1028 | return .singleFile(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 | id in
1100 | return uploadFileInfo(
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 | blobId: id, importSize: segm.uncompressedSize)
1102 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 | id in
1100 | return uploadFileInfo(
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 | blobId: id, importSize: segm.uncompressedSize)
1102 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1040:30: warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1038 | // If the file has non-standard layout, upload it after we upload
1039 | // the binary blob.
1040 | func uploadFileInfo(blobId: FXDataID, importSize: Int? = nil) -> FXFuture<
| `- warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1041 | NextStep
1042 | > {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | 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
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | 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
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | 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
1139 | uploadFileInfo(blobId: id)
1140 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1139 | uploadFileInfo(blobId: id)
1140 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1225:44: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1223 | chunkIds.count > 1
1224 | ? self.options.fileChunkSize : allSegmentsUncompressedDataSize)
1225 | let posixDetails = importObject.posixDetails
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1226 | fileInfo.update(posixDetails: posixDetails, options: self.options)
1227 | do {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1308:25: warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1301 | }
1302 |
1303 | private func whenAllSucceed<Value>(
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 | _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 | ) -> FXFuture<[Value]> {
1306 | let loop = loop ?? self.loop
1307 | guard finalResultPromise.isCompleted == false else {
1308 | return loop.makeSucceededFuture([])
| `- warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1309 | }
1310 | return FXFuture.whenAllSucceed(futures, on: loop).map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1310:25: warning: type 'Value' does not conform to the 'Sendable' protocol
1301 | }
1302 |
1303 | private func whenAllSucceed<Value>(
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 | _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 | ) -> FXFuture<[Value]> {
:
1308 | return loop.makeSucceededFuture([])
1309 | }
1310 | return FXFuture.whenAllSucceed(futures, on: loop).map { result in
| `- warning: type 'Value' does not conform to the 'Sendable' protocol
1311 | guard self.finalResultPromise.isCompleted == false else {
1312 | return []
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1328:39: warning: type 'T' does not conform to the 'Sendable' protocol
1321 | /// Enqueue the callback unless the stop flag is in action.
1322 | /// If stop flag is set, return the value specified in `then`.
1323 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1324 | on queue: LLBBatchingFutureOperationQueue, default stopValue: T,
1325 | _ body: @escaping () throws -> T
1326 | ) -> FXFuture<T> {
1327 | guard finalResultPromise.isCompleted == false else {
1328 | return queue.group.next().makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1329 | }
1330 | return queue.execute {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1351:25: warning: type 'T' does not conform to the 'Sendable' protocol
1343 | /// Enqueue the callback unless the stop flag is in action.
1344 | /// If stop flag is set, return the value specified in `then`.
1345 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 | on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1349 | let loop = loop ?? self.loop
1350 | guard finalResultPromise.isCompleted == false else {
1351 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1352 | }
1353 | return queue.enqueue(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1355:29: warning: type 'T' does not conform to the 'Sendable' protocol
1343 | /// Enqueue the callback unless the stop flag is in action.
1344 | /// If stop flag is set, return the value specified in `then`.
1345 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 | on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1353 | return queue.enqueue(on: loop, share: size) {
1354 | guard self.finalResultPromise.isCompleted == false else {
1355 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1356 | }
1357 | return body().flatMapErrorThrowing { error in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1375:25: warning: type 'T' does not conform to the 'Sendable' protocol
1368 | )
1369 | @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 | private func executeWithBackpressure<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 | on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
1373 | ) -> FXFuture<T> {
1374 | guard finalResultPromise.isCompleted == false else {
1375 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1376 | }
1377 | return queue.enqueueWithBackpressure(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1379:29: warning: type 'T' does not conform to the 'Sendable' protocol
1368 | )
1369 | @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 | private func executeWithBackpressure<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 | on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1377 | return queue.enqueueWithBackpressure(on: loop, share: size) {
1378 | guard self.finalResultPromise.isCompleted == false else {
1379 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1380 | }
1381 | return body().flatMapErrorThrowing { error in
[846/847] Compiling llbuild2Testing FileTreeExport.swift
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:72: warning: reference to captured var 'refs' in concurrently-executing code
148 | // API should be fixed. One option would be to change this class so
149 | // it can directly operate on the encoded representation.
150 | return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'refs' in concurrently-executing code
151 | }
152 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:84: warning: reference to captured var 'dirBytes' in concurrently-executing code
148 | // API should be fixed. One option would be to change this class so
149 | // it can directly operate on the encoded representation.
150 | return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'dirBytes' in concurrently-executing code
151 | }
152 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:287:17: warning: mutation of captured var 'files' in concurrently-executing code
285 | return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
286 | for (idx, name, result, posixDetails) in mergedEntries {
287 | files[idx] = .init(
| `- warning: mutation of captured var 'files' in concurrently-executing code
288 | info: FXDirectoryEntry(
289 | name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:292:48: warning: reference to captured var 'files' in concurrently-executing code
290 | posixDetails: posixDetails), id: result.id)
291 | }
292 | return FXCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
293 | }
294 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:408:17: warning: mutation of captured var 'files' in concurrently-executing code
406 | return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
407 | for (idx, name, result, posixDetails) in mergedEntries {
408 | files[idx] = .init(
| `- warning: mutation of captured var 'files' in concurrently-executing code
409 | info: FXDirectoryEntry(
410 | name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:414:24: warning: reference to captured var 'files' in concurrently-executing code
412 | }
413 | return FXCASFileTree.create(
414 | files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
415 | }
416 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:234:13: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
232 | let casObjectFuture: FXFuture<FXCASObject> = db.get(item.id, ctx).flatMapThrowing {
233 | casObject in
234 | self.stats.downloadsInProgressObjects_.wrappingDecrement(ordering: .relaxed)
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
235 |
236 | guard let casObject = casObject else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
248 | // Unblock the current NIO thread.
249 | batcher.execute {
250 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
251 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
248 | // Unblock the current NIO thread.
249 | batcher.execute {
250 | 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
251 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:257:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
255 | } else {
256 | return casObjectFuture.flatMapThrowing { casObject in
257 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
258 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
259 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:353:14: warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
351 |
352 | let loop: FXFuturesDispatchLoop
353 | let _db: FXCASDatabase
| `- warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
354 | let finalResultPromise: LLBCancellablePromise<FXDataID>
355 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:319:28: warning: type 'T' does not conform to the 'Sendable' protocol
314 |
315 | // Retry with lesser concurrency if we see unexpected network errors.
316 | private static func recursivelyDecreasingLimit<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
317 | on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
318 | ) -> FXFuture<T> {
319 | return body(limit).flatMapError { error -> FXFuture<T> in
| `- warning: type 'T' does not conform to the 'Sendable' protocol
320 | // Check if something retryable happened.
321 | guard case FXCASDatabaseError.retryableNetworkError(_) = error else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:334:22: warning: type 'T' does not conform to the 'Sendable' protocol
314 |
315 | // Retry with lesser concurrency if we see unexpected network errors.
316 | private static func recursivelyDecreasingLimit<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
317 | on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
318 | ) -> FXFuture<T> {
:
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
334 | .cascade(to: promise)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
335 | }
336 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
331 | let promise = loop.makePromise(of: T.self)
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
334 | .cascade(to: promise)
335 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
331 | let promise = loop.makePromise(of: T.self)
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
334 | .cascade(to: promise)
335 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:525:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
523 | }
524 | }
525 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
526 | self.whenAllSucceed(nextStepFutures)
527 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:527:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
525 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
526 | self.whenAllSucceed(nextStepFutures)
527 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
528 | self.set(phase: .CheckIfUploaded)
529 | return self.recursivelyPerformSteps(
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:712:25: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
710 |
711 | guard finalResultPromise.isCompleted == false else {
712 | return loop.makeSucceededFuture([])
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
713 | }
714 |
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:732:56: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
730 | // Wait for the steps we need to wait in this phase, and then
731 | // advance the phase if there are no more steps to wait.
732 | 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
733 | if moreStepsInCurrentPhase.isEmpty {
734 | precondition(!currentPhase.isFinalPhase) // Avoid infinite recursion
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | 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
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: reference to captured var 'finishedSteps' in concurrently-executing code
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
738 | }
739 | self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
738 | }
739 | self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:741:65: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
739 | self.set(phase: nextPhase)
740 | return self.recursivelyPerformSteps(
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
742 | ).map {
743 | finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
742 | ).map {
743 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
744 | }
745 | } else {
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
742 | ).map {
743 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
744 | }
745 | } else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:748:37: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
746 | return self.recursivelyPerformSteps(
747 | currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase,
748 | nextPhaseSteps: nextPhaseSteps
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
749 | ).map {
750 | finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
748 | nextPhaseSteps: nextPhaseSteps
749 | ).map {
750 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
751 | }
752 | }
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
748 | nextPhaseSteps: nextPhaseSteps
749 | ).map {
750 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
751 | }
752 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1044:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1042 | > {
1043 | guard finalResultPromise.isCompleted == false else {
1044 | return loop.makeSucceededFuture(NextStep.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1045 | }
1046 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1056:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1054 | by: size, ordering: .relaxed)
1055 | }
1056 | return loop.makeSucceededFuture(encodeNextStep(for: blobId))
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1057 | }
1058 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1095:51: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1093 | let containsFuture = self.dbContains(segm, ctx)
1094 | let containsLoop = containsFuture.eventLoop
1095 | return containsFuture.flatMap { exists -> FXFuture<NextStep> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1096 |
1097 | guard !exists else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1098:88: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1096 |
1097 | guard !exists else {
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1099 | id in
1100 | return uploadFileInfo(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1107:53: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1105 | }
1106 |
1107 | return containsLoop.makeSucceededFuture(
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1108 | NextStep.execute(
1109 | in: .UploadingFiles,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1130:61: warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1128 | // free to take our load. This ensures that we're not
1129 | // limited by CPU parallelism for network concurrency.
1130 | return self.executeWithBackpressure(
| `- warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1131 | on: self.netQueue, loop: containsLoop,
1132 | size: slice.readableBytes, default: .skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1137:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1135 | refs: [], data: slice,
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1143:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1141 | }.map { result in
1142 | return result
1143 | }.hop(to: loop)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1144 | }
1145 | }.flatMap {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1145:47: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1143 | }.hop(to: loop)
1144 | }
1145 | }.flatMap {
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1146 | // This type of return ensures that cpuQueue does not
1147 | // wait for the netQueue operation to complete.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1148:60: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1146 | // This type of return ensures that cpuQueue does not
1147 | // wait for the netQueue operation to complete.
1148 | $0 ?? loop.makeSucceededFuture(NextStep.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1149 | }
1150 | nextStepFuture.cascade(to: partialStepPromise)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1203:23: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1201 | throw error
1202 |
1203 | }.flatMap { nextSteps in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1204 | // The next steps can only be empty if we've reacting on
1205 | // a filesystem-related error with some of our chunks.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1207:41: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1205 | // a filesystem-related error with some of our chunks.
1206 | guard nextSteps.isEmpty == false else {
1207 | return loop.makeSucceededFuture(.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1208 | }
1209 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1254:49: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1252 | // have been uploaded. Therefore we wait for the huge files in
1253 | // its own state, .UploadingWait.
1254 | return cheapNextStepFutures + [loop.makeSucceededFuture(combinePartialResultsStep)]
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1255 | }
1256 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1261:22: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1259 | in: .EstimatingSize,
1260 | run: {
1261 | loop.makeSucceededFuture(
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1262 | NextStep.wait(
1263 | in: .CheckIfUploaded,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1080:37: warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
1078 | importSize: importSize, ctx
1079 | ).map { id in
1080 | encodeNextStep(for: id)
| |- warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1081 | }
1082 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1026:30: warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1024 | promise: loop.makePromise(of: NextStep.self))
1025 |
1026 | func encodeNextStep(for id: FXDataID) -> NextStep {
| `- warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1027 | if isSingleChunk {
1028 | return .singleFile(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 | id in
1100 | return uploadFileInfo(
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 | blobId: id, importSize: segm.uncompressedSize)
1102 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 | id in
1100 | return uploadFileInfo(
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 | blobId: id, importSize: segm.uncompressedSize)
1102 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1040:30: warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1038 | // If the file has non-standard layout, upload it after we upload
1039 | // the binary blob.
1040 | func uploadFileInfo(blobId: FXDataID, importSize: Int? = nil) -> FXFuture<
| `- warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1041 | NextStep
1042 | > {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | 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
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | 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
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | 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
1139 | uploadFileInfo(blobId: id)
1140 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1139 | uploadFileInfo(blobId: id)
1140 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1225:44: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1223 | chunkIds.count > 1
1224 | ? self.options.fileChunkSize : allSegmentsUncompressedDataSize)
1225 | let posixDetails = importObject.posixDetails
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1226 | fileInfo.update(posixDetails: posixDetails, options: self.options)
1227 | do {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1308:25: warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1301 | }
1302 |
1303 | private func whenAllSucceed<Value>(
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 | _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 | ) -> FXFuture<[Value]> {
1306 | let loop = loop ?? self.loop
1307 | guard finalResultPromise.isCompleted == false else {
1308 | return loop.makeSucceededFuture([])
| `- warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1309 | }
1310 | return FXFuture.whenAllSucceed(futures, on: loop).map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1310:25: warning: type 'Value' does not conform to the 'Sendable' protocol
1301 | }
1302 |
1303 | private func whenAllSucceed<Value>(
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 | _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 | ) -> FXFuture<[Value]> {
:
1308 | return loop.makeSucceededFuture([])
1309 | }
1310 | return FXFuture.whenAllSucceed(futures, on: loop).map { result in
| `- warning: type 'Value' does not conform to the 'Sendable' protocol
1311 | guard self.finalResultPromise.isCompleted == false else {
1312 | return []
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1328:39: warning: type 'T' does not conform to the 'Sendable' protocol
1321 | /// Enqueue the callback unless the stop flag is in action.
1322 | /// If stop flag is set, return the value specified in `then`.
1323 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1324 | on queue: LLBBatchingFutureOperationQueue, default stopValue: T,
1325 | _ body: @escaping () throws -> T
1326 | ) -> FXFuture<T> {
1327 | guard finalResultPromise.isCompleted == false else {
1328 | return queue.group.next().makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1329 | }
1330 | return queue.execute {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1351:25: warning: type 'T' does not conform to the 'Sendable' protocol
1343 | /// Enqueue the callback unless the stop flag is in action.
1344 | /// If stop flag is set, return the value specified in `then`.
1345 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 | on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1349 | let loop = loop ?? self.loop
1350 | guard finalResultPromise.isCompleted == false else {
1351 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1352 | }
1353 | return queue.enqueue(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1355:29: warning: type 'T' does not conform to the 'Sendable' protocol
1343 | /// Enqueue the callback unless the stop flag is in action.
1344 | /// If stop flag is set, return the value specified in `then`.
1345 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 | on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1353 | return queue.enqueue(on: loop, share: size) {
1354 | guard self.finalResultPromise.isCompleted == false else {
1355 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1356 | }
1357 | return body().flatMapErrorThrowing { error in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1375:25: warning: type 'T' does not conform to the 'Sendable' protocol
1368 | )
1369 | @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 | private func executeWithBackpressure<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 | on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
1373 | ) -> FXFuture<T> {
1374 | guard finalResultPromise.isCompleted == false else {
1375 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1376 | }
1377 | return queue.enqueueWithBackpressure(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1379:29: warning: type 'T' does not conform to the 'Sendable' protocol
1368 | )
1369 | @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 | private func executeWithBackpressure<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 | on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1377 | return queue.enqueueWithBackpressure(on: loop, share: size) {
1378 | guard self.finalResultPromise.isCompleted == false else {
1379 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1380 | }
1381 | return body().flatMapErrorThrowing { error in
[847/847] Compiling llbuild2Testing FileTreeImport.swift
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:72: warning: reference to captured var 'refs' in concurrently-executing code
148 | // API should be fixed. One option would be to change this class so
149 | // it can directly operate on the encoded representation.
150 | return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'refs' in concurrently-executing code
151 | }
152 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:84: warning: reference to captured var 'dirBytes' in concurrently-executing code
148 | // API should be fixed. One option would be to change this class so
149 | // it can directly operate on the encoded representation.
150 | return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
| `- warning: reference to captured var 'dirBytes' in concurrently-executing code
151 | }
152 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:287:17: warning: mutation of captured var 'files' in concurrently-executing code
285 | return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
286 | for (idx, name, result, posixDetails) in mergedEntries {
287 | files[idx] = .init(
| `- warning: mutation of captured var 'files' in concurrently-executing code
288 | info: FXDirectoryEntry(
289 | name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:292:48: warning: reference to captured var 'files' in concurrently-executing code
290 | posixDetails: posixDetails), id: result.id)
291 | }
292 | return FXCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
293 | }
294 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:408:17: warning: mutation of captured var 'files' in concurrently-executing code
406 | return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
407 | for (idx, name, result, posixDetails) in mergedEntries {
408 | files[idx] = .init(
| `- warning: mutation of captured var 'files' in concurrently-executing code
409 | info: FXDirectoryEntry(
410 | name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:414:24: warning: reference to captured var 'files' in concurrently-executing code
412 | }
413 | return FXCASFileTree.create(
414 | files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
| `- warning: reference to captured var 'files' in concurrently-executing code
415 | }
416 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:234:13: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
232 | let casObjectFuture: FXFuture<FXCASObject> = db.get(item.id, ctx).flatMapThrowing {
233 | casObject in
234 | self.stats.downloadsInProgressObjects_.wrappingDecrement(ordering: .relaxed)
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
235 |
236 | guard let casObject = casObject else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
248 | // Unblock the current NIO thread.
249 | batcher.execute {
250 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
251 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
248 | // Unblock the current NIO thread.
249 | batcher.execute {
250 | 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
251 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:257:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
| `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 | let db: any FXCASDatabase
201 | let exportPathPrefix: AbsolutePath
:
255 | } else {
256 | return casObjectFuture.flatMapThrowing { casObject in
257 | try self.parseAndMaterialize(casObject, item).map {
| `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
258 | Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
259 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:353:14: warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
351 |
352 | let loop: FXFuturesDispatchLoop
353 | let _db: FXCASDatabase
| `- warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
354 | let finalResultPromise: LLBCancellablePromise<FXDataID>
355 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:319:28: warning: type 'T' does not conform to the 'Sendable' protocol
314 |
315 | // Retry with lesser concurrency if we see unexpected network errors.
316 | private static func recursivelyDecreasingLimit<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
317 | on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
318 | ) -> FXFuture<T> {
319 | return body(limit).flatMapError { error -> FXFuture<T> in
| `- warning: type 'T' does not conform to the 'Sendable' protocol
320 | // Check if something retryable happened.
321 | guard case FXCASDatabaseError.retryableNetworkError(_) = error else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:334:22: warning: type 'T' does not conform to the 'Sendable' protocol
314 |
315 | // Retry with lesser concurrency if we see unexpected network errors.
316 | private static func recursivelyDecreasingLimit<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
317 | on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
318 | ) -> FXFuture<T> {
:
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
334 | .cascade(to: promise)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
335 | }
336 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
331 | let promise = loop.makePromise(of: T.self)
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
334 | .cascade(to: promise)
335 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
331 | let promise = loop.makePromise(of: T.self)
332 | _ = loop.scheduleTask(in: .seconds(3)) {
333 | recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
| |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
334 | .cascade(to: promise)
335 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:525:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
523 | }
524 | }
525 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
526 | self.whenAllSucceed(nextStepFutures)
527 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:527:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
525 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
526 | self.whenAllSucceed(nextStepFutures)
527 | }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
528 | self.set(phase: .CheckIfUploaded)
529 | return self.recursivelyPerformSteps(
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:712:25: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
710 |
711 | guard finalResultPromise.isCompleted == false else {
712 | return loop.makeSucceededFuture([])
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
713 | }
714 |
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:732:56: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
730 | // Wait for the steps we need to wait in this phase, and then
731 | // advance the phase if there are no more steps to wait.
732 | 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
733 | if moreStepsInCurrentPhase.isEmpty {
734 | precondition(!currentPhase.isFinalPhase) // Avoid infinite recursion
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | 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
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
738 | }
739 | self.set(phase: nextPhase)
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: reference to captured var 'finishedSteps' in concurrently-executing code
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
738 | }
739 | self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
735 | let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
736 | guard nextPhase < .UploadingDirs else {
737 | return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
738 | }
739 | self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:741:65: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
739 | self.set(phase: nextPhase)
740 | return self.recursivelyPerformSteps(
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
742 | ).map {
743 | finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
742 | ).map {
743 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
744 | }
745 | } else {
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
741 | currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
742 | ).map {
743 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
744 | }
745 | } else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:748:37: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
746 | return self.recursivelyPerformSteps(
747 | currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase,
748 | nextPhaseSteps: nextPhaseSteps
| `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
749 | ).map {
750 | finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
748 | nextPhaseSteps: nextPhaseSteps
749 | ).map {
750 | finishedSteps + $0
| `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
751 | }
752 | }
:
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
748 | nextPhaseSteps: nextPhaseSteps
749 | ).map {
750 | finishedSteps + $0
| `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
751 | }
752 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1044:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1042 | > {
1043 | guard finalResultPromise.isCompleted == false else {
1044 | return loop.makeSucceededFuture(NextStep.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1045 | }
1046 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1056:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1054 | by: size, ordering: .relaxed)
1055 | }
1056 | return loop.makeSucceededFuture(encodeNextStep(for: blobId))
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1057 | }
1058 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1095:51: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1093 | let containsFuture = self.dbContains(segm, ctx)
1094 | let containsLoop = containsFuture.eventLoop
1095 | return containsFuture.flatMap { exists -> FXFuture<NextStep> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1096 |
1097 | guard !exists else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1098:88: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1096 |
1097 | guard !exists else {
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1099 | id in
1100 | return uploadFileInfo(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1107:53: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1105 | }
1106 |
1107 | return containsLoop.makeSucceededFuture(
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1108 | NextStep.execute(
1109 | in: .UploadingFiles,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1130:61: warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1128 | // free to take our load. This ensures that we're not
1129 | // limited by CPU parallelism for network concurrency.
1130 | return self.executeWithBackpressure(
| `- warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1131 | on: self.netQueue, loop: containsLoop,
1132 | size: slice.readableBytes, default: .skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1137:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1135 | refs: [], data: slice,
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1143:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1141 | }.map { result in
1142 | return result
1143 | }.hop(to: loop)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1144 | }
1145 | }.flatMap {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1145:47: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1143 | }.hop(to: loop)
1144 | }
1145 | }.flatMap {
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1146 | // This type of return ensures that cpuQueue does not
1147 | // wait for the netQueue operation to complete.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1148:60: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1146 | // This type of return ensures that cpuQueue does not
1147 | // wait for the netQueue operation to complete.
1148 | $0 ?? loop.makeSucceededFuture(NextStep.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1149 | }
1150 | nextStepFuture.cascade(to: partialStepPromise)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1203:23: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1201 | throw error
1202 |
1203 | }.flatMap { nextSteps in
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1204 | // The next steps can only be empty if we've reacting on
1205 | // a filesystem-related error with some of our chunks.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1207:41: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1205 | // a filesystem-related error with some of our chunks.
1206 | guard nextSteps.isEmpty == false else {
1207 | return loop.makeSucceededFuture(.skipped)
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1208 | }
1209 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1254:49: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1252 | // have been uploaded. Therefore we wait for the huge files in
1253 | // its own state, .UploadingWait.
1254 | return cheapNextStepFutures + [loop.makeSucceededFuture(combinePartialResultsStep)]
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1255 | }
1256 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1261:22: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
805 | }
806 |
807 | indirect enum NextStep {
| `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
808 | // Final step in a sequence: stop stepping through.
809 | case skipped
:
1259 | in: .EstimatingSize,
1260 | run: {
1261 | loop.makeSucceededFuture(
| `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1262 | NextStep.wait(
1263 | in: .CheckIfUploaded,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1080:37: warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
1078 | importSize: importSize, ctx
1079 | ).map { id in
1080 | encodeNextStep(for: id)
| |- warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1081 | }
1082 | } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1026:30: warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1024 | promise: loop.makePromise(of: NextStep.self))
1025 |
1026 | func encodeNextStep(for id: FXDataID) -> NextStep {
| `- warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1027 | if isSingleChunk {
1028 | return .singleFile(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 | id in
1100 | return uploadFileInfo(
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 | blobId: id, importSize: segm.uncompressedSize)
1102 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | switch importObject {
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 | let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 | id in
1100 | return uploadFileInfo(
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 | blobId: id, importSize: segm.uncompressedSize)
1102 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1040:30: warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1038 | // If the file has non-standard layout, upload it after we upload
1039 | // the binary blob.
1040 | func uploadFileInfo(blobId: FXDataID, importSize: Int? = nil) -> FXFuture<
| `- warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1041 | NextStep
1042 | > {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | 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
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1114 | let data: LLBFastData
1115 |
1116 | 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
1117 | case .link(let target):
1118 | data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | 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
1139 | uploadFileInfo(blobId: id)
1140 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1136 | importSize: segm.uncompressedSize, ctx
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1139 | uploadFileInfo(blobId: id)
1140 | }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 | ).flatMap { id -> FXFuture<NextStep> in
1138 | withExtendedLifetime(importObject) { // for mmap
1139 | uploadFileInfo(blobId: id)
| |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, 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'
1140 | }
1141 | }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1225:44: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
912 | let type: FXFileType
913 | let allSegmentsUncompressedDataSize: Int
914 | enum ObjectToImport {
| `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
915 | case link(target: LLBFastData)
916 | case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
:
1223 | chunkIds.count > 1
1224 | ? self.options.fileChunkSize : allSegmentsUncompressedDataSize)
1225 | let posixDetails = importObject.posixDetails
| `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1226 | fileInfo.update(posixDetails: posixDetails, options: self.options)
1227 | do {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1308:25: warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1301 | }
1302 |
1303 | private func whenAllSucceed<Value>(
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 | _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 | ) -> FXFuture<[Value]> {
1306 | let loop = loop ?? self.loop
1307 | guard finalResultPromise.isCompleted == false else {
1308 | return loop.makeSucceededFuture([])
| `- warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1309 | }
1310 | return FXFuture.whenAllSucceed(futures, on: loop).map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1310:25: warning: type 'Value' does not conform to the 'Sendable' protocol
1301 | }
1302 |
1303 | private func whenAllSucceed<Value>(
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 | _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 | ) -> FXFuture<[Value]> {
:
1308 | return loop.makeSucceededFuture([])
1309 | }
1310 | return FXFuture.whenAllSucceed(futures, on: loop).map { result in
| `- warning: type 'Value' does not conform to the 'Sendable' protocol
1311 | guard self.finalResultPromise.isCompleted == false else {
1312 | return []
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1328:39: warning: type 'T' does not conform to the 'Sendable' protocol
1321 | /// Enqueue the callback unless the stop flag is in action.
1322 | /// If stop flag is set, return the value specified in `then`.
1323 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1324 | on queue: LLBBatchingFutureOperationQueue, default stopValue: T,
1325 | _ body: @escaping () throws -> T
1326 | ) -> FXFuture<T> {
1327 | guard finalResultPromise.isCompleted == false else {
1328 | return queue.group.next().makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1329 | }
1330 | return queue.execute {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1351:25: warning: type 'T' does not conform to the 'Sendable' protocol
1343 | /// Enqueue the callback unless the stop flag is in action.
1344 | /// If stop flag is set, return the value specified in `then`.
1345 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 | on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1349 | let loop = loop ?? self.loop
1350 | guard finalResultPromise.isCompleted == false else {
1351 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1352 | }
1353 | return queue.enqueue(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1355:29: warning: type 'T' does not conform to the 'Sendable' protocol
1343 | /// Enqueue the callback unless the stop flag is in action.
1344 | /// If stop flag is set, return the value specified in `then`.
1345 | private func execute<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 | on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1353 | return queue.enqueue(on: loop, share: size) {
1354 | guard self.finalResultPromise.isCompleted == false else {
1355 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1356 | }
1357 | return body().flatMapErrorThrowing { error in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1375:25: warning: type 'T' does not conform to the 'Sendable' protocol
1368 | )
1369 | @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 | private func executeWithBackpressure<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 | on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
1373 | ) -> FXFuture<T> {
1374 | guard finalResultPromise.isCompleted == false else {
1375 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1376 | }
1377 | return queue.enqueueWithBackpressure(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1379:29: warning: type 'T' does not conform to the 'Sendable' protocol
1368 | )
1369 | @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 | private func executeWithBackpressure<T>(
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 | on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 | default stopValue: T, _ body: @escaping () -> FXFuture<T>
:
1377 | return queue.enqueueWithBackpressure(on: loop, share: size) {
1378 | guard self.finalResultPromise.isCompleted == false else {
1379 | return loop.makeSucceededFuture(stopValue)
| `- warning: type 'T' does not conform to the 'Sendable' protocol
1380 | }
1381 | return body().flatMapErrorThrowing { error in
Build complete! (170.09s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-atomics",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-atomics.git"
},
{
"identity" : "swift-async-algorithms",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.4",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-async-algorithms.git"
},
{
"identity" : "swift-collections",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-collections.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.80.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio.git"
},
{
"identity" : "swift-protobuf",
"requirement" : {
"range" : [
{
"lower_bound" : "1.17.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-protobuf.git"
},
{
"identity" : "swift-system",
"requirement" : {
"range" : [
{
"lower_bound" : "1.1.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-system.git"
},
{
"identity" : "swift-tools-support-async",
"requirement" : {
"range" : [
{
"lower_bound" : "0.17.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-tools-support-async.git"
},
{
"identity" : "swift-tools-support-core",
"requirement" : {
"range" : [
{
"lower_bound" : "0.2.7",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-tools-support-core.git"
}
],
"manifest_display_name" : "llbuild2",
"name" : "llbuild2",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "llbuild2",
"targets" : [
"llbuild2"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "llbuild2fx",
"targets" : [
"llbuild2fx"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "llbuild2Testing",
"targets" : [
"llbuild2Testing"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "llbuild2fxTests",
"module_type" : "SwiftTarget",
"name" : "llbuild2fxTests",
"path" : "Tests/llbuild2fxTests",
"sources" : [
"AdditionalCoverageTests.swift",
"CommandLineArgsCoderTests.swift",
"DeadlineTests.swift",
"EngineDelegateTests.swift",
"EngineTests.swift",
"FunctionCacheTests.swift",
"KeyDependencyGraphTests.swift",
"KeyTests.swift",
"ResourcesTests.swift",
"SpawnProcessTests.swift",
"TreeMaterializationTests.swift",
"VersioningTests.swift"
],
"target_dependencies" : [
"llbuild2fx",
"llbuild2Testing"
],
"type" : "test"
},
{
"c99name" : "llbuild2fx",
"module_type" : "SwiftTarget",
"name" : "llbuild2fx",
"path" : "Sources/llbuild2fx",
"product_dependencies" : [
"SwiftProtobuf",
"Logging",
"AsyncAlgorithms",
"_NIOFileSystem"
],
"product_memberships" : [
"llbuild2",
"llbuild2fx",
"llbuild2Testing"
],
"sources" : [
"Action.swift",
"ActionCache/FileBackedFunctionCache.swift",
"ActionCache/InMemoryFunctionCache.swift",
"ActionInterface.swift",
"CASTree.swift",
"Coding.swift",
"CommandLineArgsCoder.swift",
"Deadline.swift",
"Diagnostics.swift",
"Engine.swift",
"EngineDelegate.swift",
"Errors.swift",
"Executor.swift",
"FunctionCache.swift",
"FunctionInterface.swift",
"Generated/EngineProtocol/any_serializable.pb.swift",
"Key.swift",
"KeyConfiguration.swift",
"KeyDependencyGraph.swift",
"KeyOverride.swift",
"LocalExecutor.swift",
"NullExecutor.swift",
"Resources.swift",
"Reëxport.swift",
"Ruleset.swift",
"Service.swift",
"SortedSet.swift",
"SpawnProcess.swift",
"Stats.swift",
"Support/AnySerializable.swift",
"Support/CommonCodables.swift",
"Support/Logging.swift",
"Support/Protobuf+Extensions.swift",
"TaskCancellationRegistry.swift",
"TreeMaterialization.swift",
"Value.swift",
"Versioning.swift",
"WrappedDataID.swift"
],
"target_dependencies" : [
"FXCore",
"FXAsyncSupport"
],
"type" : "library"
},
{
"c99name" : "llbuild2TestingTests",
"module_type" : "SwiftTarget",
"name" : "llbuild2TestingTests",
"path" : "Tests/llbuild2TestingTests",
"sources" : [
"BufferedStreamWriterTests.swift",
"CASBlobTests.swift",
"FileTreeImportExportTests.swift",
"FileTreeTests.swift",
"LinkedListStreamTests.swift"
],
"target_dependencies" : [
"llbuild2Testing",
"FXAsyncSupport"
],
"type" : "test"
},
{
"c99name" : "llbuild2Testing",
"module_type" : "SwiftTarget",
"name" : "llbuild2Testing",
"path" : "Sources/llbuild2Testing",
"product_memberships" : [
"llbuild2Testing"
],
"sources" : [
"CASFileTree/BinarySearch.swift",
"CASFileTree/CASBlob.swift",
"CASFileTree/CASFSClient.swift",
"CASFileTree/CASFSNode.swift",
"CASFileTree/ConcurrentFileTreeWalker.swift",
"CASFileTree/Context.swift",
"CASFileTree/DeclFileTree.swift",
"CASFileTree/DirectoryEntry.swift",
"CASFileTree/Errors.swift",
"CASFileTree/FileInfo.swift",
"CASFileTree/FileTree.swift",
"CASFileTree/FileTreeExport.swift",
"CASFileTree/FileTreeImport.swift",
"CASFileTree/FilesystemObject.swift",
"CASFileTree/Generated/CASFileTreeProtocol/file_tree.pb.swift",
"CASFileTree/Internal/ConcurrentFilesystemScanner.swift",
"CASFileTree/Internal/FileSegmenter.swift",
"CASFileTree/Internal/FileTreeParser.swift",
"CASFileTree/TSCCASFileSystem.swift",
"CASUtilities/BufferedStreamWriter.swift",
"CASUtilities/LinkedListStream.swift",
"CASUtilities/StreamReader.swift",
"FXKeyTestOverride.swift",
"FXLocalCASTreeService.swift",
"FXTestingEngine.swift"
],
"target_dependencies" : [
"llbuild2fx",
"FXAsyncSupport"
],
"type" : "library"
},
{
"c99name" : "llbuild2",
"module_type" : "SwiftTarget",
"name" : "llbuild2",
"path" : "Sources/llbuild2",
"product_memberships" : [
"llbuild2"
],
"sources" : [
"Reexport.swift"
],
"target_dependencies" : [
"llbuild2fx"
],
"type" : "library"
},
{
"c99name" : "FXInteropTests",
"module_type" : "SwiftTarget",
"name" : "FXInteropTests",
"path" : "Tests/FXInteropTests",
"product_dependencies" : [
"SwiftToolsSupportCAS"
],
"sources" : [
"TSFInteropTests.swift"
],
"target_dependencies" : [
"llbuild2fx",
"llbuild2Testing"
],
"type" : "test"
},
{
"c99name" : "FXExampleRulesetTests",
"module_type" : "SwiftTarget",
"name" : "FXExampleRulesetTests",
"path" : "Tests/FXExampleRulesetTests",
"sources" : [
"FXExampleRulesetIsolationTests.swift",
"FXExampleRulesetTests.swift"
],
"target_dependencies" : [
"FXExampleRuleset",
"llbuild2Testing"
],
"type" : "test"
},
{
"c99name" : "FXExampleRuleset",
"module_type" : "SwiftTarget",
"name" : "FXExampleRuleset",
"path" : "Sources/FXExampleRuleset",
"sources" : [
"ExampleAction.swift",
"ExampleKeys.swift",
"ExampleResource.swift",
"ExampleRulesetPackage.swift",
"ExampleValues.swift"
],
"target_dependencies" : [
"llbuild2fx"
],
"type" : "library"
},
{
"c99name" : "FXCoreTests",
"module_type" : "SwiftTarget",
"name" : "FXCoreTests",
"path" : "Tests/FXCoreTests",
"sources" : [
"CASObjectTests.swift",
"DataIDTests.swift",
"InMemoryCASDatabaseTests.swift"
],
"target_dependencies" : [
"FXCore",
"FXAsyncSupport"
],
"type" : "test"
},
{
"c99name" : "FXCore",
"module_type" : "SwiftTarget",
"name" : "FXCore",
"path" : "Sources/FXCore",
"product_dependencies" : [
"NIOCore",
"NIOFoundationCompat",
"SwiftProtobuf",
"SwiftToolsSupport-auto"
],
"product_memberships" : [
"llbuild2",
"llbuild2fx",
"llbuild2Testing"
],
"sources" : [
"CAS/CASDatabaseAdapter.swift",
"CAS/DataID.swift",
"CAS/DataIDProtocol.swift",
"CAS/Database.swift",
"CAS/Generated/CASProtocol/cas_object.pb.swift",
"CAS/Generated/CASProtocol/data_id.pb.swift",
"CAS/Object.swift",
"CAS/ObjectProtocol.swift",
"CAS/TypedDatabase.swift",
"Futures/NIOAliases.swift",
"Utility/ByteBuffer.swift",
"Utility/Serializable.swift"
],
"type" : "library"
},
{
"c99name" : "FXCProcessSpawnSync",
"module_type" : "ClangTarget",
"name" : "FXCProcessSpawnSync",
"path" : "Sources/FXCProcessSpawnSync",
"product_memberships" : [
"llbuild2",
"llbuild2fx",
"llbuild2Testing"
],
"sources" : [
"spawner.c"
],
"type" : "library"
},
{
"c99name" : "FXCBLAKE3",
"module_type" : "ClangTarget",
"name" : "FXCBLAKE3",
"path" : "Sources/FXCBLAKE3",
"product_memberships" : [
"llbuild2",
"llbuild2fx",
"llbuild2Testing"
],
"sources" : [
"blake3_all.c",
"blake3_simd_avx2.c",
"blake3_simd_avx512.c",
"blake3_simd_sse41.c"
],
"type" : "library"
},
{
"c99name" : "FXAsyncSupportTests",
"module_type" : "SwiftTarget",
"name" : "FXAsyncSupportTests",
"path" : "Tests/FXAsyncSupportTests",
"product_dependencies" : [
"NIO",
"NIOConcurrencyHelpers",
"Atomics",
"Logging",
"AsyncAlgorithms"
],
"sources" : [
"AdditionalCoverageTests.swift",
"AsyncByteBufferLineSequenceTests.swift",
"BatchingFutureOperationQueue.swift",
"CancellableFutureTests.swift",
"CancellablePromiseTests.swift",
"CancellerTests.swift",
"EventualResultsCacheTests.swift",
"FutureDeduplicatorTests.swift",
"FutureOperationQueueTests.swift",
"Helpers+LogRecorderHandler.swift",
"IntegrationTests.swift",
"OrderManagerTests.swift"
],
"target_dependencies" : [
"FXAsyncSupport"
],
"type" : "test"
},
{
"c99name" : "FXAsyncSupport",
"module_type" : "SwiftTarget",
"name" : "FXAsyncSupport",
"path" : "Sources/FXAsyncSupport",
"product_dependencies" : [
"Atomics",
"NIO",
"NIOCore",
"NIOConcurrencyHelpers",
"NIOPosix",
"NIOFoundationCompat",
"SwiftProtobuf",
"SystemPackage",
"SwiftToolsSupport-auto",
"Logging",
"DequeModule",
"AsyncAlgorithms"
],
"product_memberships" : [
"llbuild2",
"llbuild2fx",
"llbuild2Testing"
],
"sources" : [
"AsyncProcess/ChunkSequence.swift",
"AsyncProcess/EOFSequence.swift",
"AsyncProcess/FileContentStream.swift",
"AsyncProcess/NIOAsyncPipeWriter.swift",
"AsyncProcess/ProcessExecutor+Convenience.swift",
"AsyncProcess/ProcessExecutor.swift",
"AsyncProcess/ProcessExit.swift",
"AsyncProcess/ProcessSpawner.swift",
"AsyncProcess/StructuredConcurrencyHelpers.swift",
"CAS/Blake3DataID.swift",
"CAS/DatabaseSpec.swift",
"CAS/InMemoryCASDatabase.swift",
"Futures/BatchingFutureOperationQueue.swift",
"Futures/CancellableFuture.swift",
"Futures/CancellablePromise.swift",
"Futures/Canceller.swift",
"Futures/EventualResultsCache.swift",
"Futures/FutureDeduplicator.swift",
"Futures/FutureOperationQueue.swift",
"Futures/OperationQueue+Extensions.swift",
"Futures/OrderManager.swift",
"Utility/FastData.swift",
"Utility/FutureFileSystem.swift"
],
"target_dependencies" : [
"FXCore",
"FXCBLAKE3",
"FXCProcessSpawnSync"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
basic-6.1-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:a7bfd71e9384436264431030299dc8a2d42d0664a168cfa1a5dd84c9bc592ccf
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest
Done.