Build Information
Successful build of Tiercel, reference 3.2.10 (fdcada), with Swift 6.1 for macOS (SPM) on 15 Mar 2026 14:47:39 UTC.
Swift 6 data race errors: 7
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: 4.69.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Danie1s/Tiercel.git
Reference: 3.2.10
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Danie1s/Tiercel
* tag 3.2.10 -> FETCH_HEAD
HEAD is now at fdcadad fix: make UIKit imports conditional for SwiftPM compatibility
Cloned https://github.com/Danie1s/Tiercel.git
Revision (git rev-parse @):
fdcadad35f3136d0b7677dec2b2c019074b852e3
SUCCESS checkout https://github.com/Danie1s/Tiercel.git at 3.2.10
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/Danie1s/Tiercel.git
https://github.com/Danie1s/Tiercel.git
{
"dependencies" : [
],
"manifest_display_name" : "Tiercel",
"name" : "Tiercel",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
}
],
"products" : [
{
"name" : "Tiercel",
"targets" : [
"Tiercel"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "Tiercel",
"module_type" : "SwiftTarget",
"name" : "Tiercel",
"path" : "Sources",
"product_memberships" : [
"Tiercel"
],
"sources" : [
"Extensions/Array+Safe.swift",
"Extensions/CodingUserInfoKey+Cache.swift",
"Extensions/Data+Hash.swift",
"Extensions/DispatchQueue+Safe.swift",
"Extensions/Double+TaskInfo.swift",
"Extensions/FileManager+AvailableCapacity.swift",
"Extensions/Int64+TaskInfo.swift",
"Extensions/OperationQueue+DispatchQueue.swift",
"Extensions/String+Hash.swift",
"General/Cache.swift",
"General/Common.swift",
"General/DownloadTask.swift",
"General/Executer.swift",
"General/Notifications.swift",
"General/Protected.swift",
"General/SessionConfiguration.swift",
"General/SessionDelegate.swift",
"General/SessionManager.swift",
"General/Task.swift",
"General/TiercelError.swift",
"General/URLConvertible.swift",
"Utility/FileChecksumHelper.swift",
"Utility/ResumeDataHelper.swift"
],
"type" : "library"
}
],
"tools_version" : "5.1"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/24] Emitting module Tiercel
/Users/admin/builder/spi-builder-workspace/Sources/General/Common.swift:114:20: warning: static property 'tiercelTask' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
112 | extension URLSessionTask {
113 | private struct AssociatedKeys {
114 | static var tiercelTask: UInt8 = 0
| |- warning: static property 'tiercelTask' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'tiercelTask' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'tiercelTask' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
115 | }
116 |
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:29:16: warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
27 | import Foundation
28 |
29 | internal class SessionDelegate: NSObject {
| `- warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
30 | internal weak var manager: SessionManager?
31 |
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:30:23: warning: stored property 'manager' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
28 |
29 | internal class SessionDelegate: NSObject {
30 | internal weak var manager: SessionManager?
| `- warning: stored property 'manager' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
31 |
32 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:43:10: warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
41 |
42 | case unknown
43 | case invalidURL(url: URLConvertible)
| `- warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
44 | case duplicateURL(url: URLConvertible)
45 | case indexOutOfRange
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:44:10: warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
42 | case unknown
43 | case invalidURL(url: URLConvertible)
44 | case duplicateURL(url: URLConvertible)
| `- warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
45 | case indexOutOfRange
46 | case fetchDownloadTaskFailed(url: URLConvertible)
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:46:10: warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
44 | case duplicateURL(url: URLConvertible)
45 | case indexOutOfRange
46 | case fetchDownloadTaskFailed(url: URLConvertible)
| `- warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
47 | case headersMatchFailed
48 | case fileNamesMatchFailed
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:50:10: warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
29 | public enum TiercelError: Error {
30 |
31 | public enum CacheErrorReason {
| `- note: consider making enum 'CacheErrorReason' conform to the 'Sendable' protocol
32 | case cannotCreateDirectory(path: String, error: Error)
33 | case cannotRemoveItem(path: String, error: Error)
:
48 | case fileNamesMatchFailed
49 | case unacceptableStatusCode(code: Int)
50 | case cacheError(reason: CacheErrorReason)
| `- warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
51 | }
52 |
[4/26] Compiling Tiercel SessionConfiguration.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:29:16: warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
27 | import Foundation
28 |
29 | internal class SessionDelegate: NSObject {
| `- warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
30 | internal weak var manager: SessionManager?
31 |
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:30:23: warning: stored property 'manager' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
28 |
29 | internal class SessionDelegate: NSObject {
30 | internal weak var manager: SessionManager?
| `- warning: stored property 'manager' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
31 |
32 | }
[5/26] Compiling Tiercel SessionDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:29:16: warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
27 | import Foundation
28 |
29 | internal class SessionDelegate: NSObject {
| `- warning: non-final class 'SessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
30 | internal weak var manager: SessionManager?
31 |
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionDelegate.swift:30:23: warning: stored property 'manager' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
28 |
29 | internal class SessionDelegate: NSObject {
30 | internal weak var manager: SessionManager?
| `- warning: stored property 'manager' of 'Sendable'-conforming class 'SessionDelegate' is mutable; this is an error in the Swift 6 language mode
31 |
32 | }
[6/26] Compiling Tiercel FileChecksumHelper.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:60:17: warning: capture of 'completion' with non-sendable type '(Result<Bool, FileChecksumHelper.FileVerificationError>) -> ()' in a '@Sendable' closure
58 | ioQueue.async {
59 | guard FileManager.default.fileExists(atPath: filePath) else {
60 | completion(.failure(FileVerificationError.fileDoesnotExist(path: filePath)))
| |- warning: capture of 'completion' with non-sendable type '(Result<Bool, FileChecksumHelper.FileVerificationError>) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
61 | return
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:68:24: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
30 | public enum FileChecksumHelper {
31 |
32 | public enum VerificationType : Int {
| `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
33 | case md5
34 | case sha1
:
66 | let data = try Data(contentsOf: url, options: .mappedIfSafe)
67 | var string: String
68 | switch type {
| `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
69 | case .md5:
70 | string = data.tr.md5
[7/26] Compiling Tiercel ResumeDataHelper.swift
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:60:17: warning: capture of 'completion' with non-sendable type '(Result<Bool, FileChecksumHelper.FileVerificationError>) -> ()' in a '@Sendable' closure
58 | ioQueue.async {
59 | guard FileManager.default.fileExists(atPath: filePath) else {
60 | completion(.failure(FileVerificationError.fileDoesnotExist(path: filePath)))
| |- warning: capture of 'completion' with non-sendable type '(Result<Bool, FileChecksumHelper.FileVerificationError>) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
61 | return
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:68:24: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
30 | public enum FileChecksumHelper {
31 |
32 | public enum VerificationType : Int {
| `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
33 | case md5
34 | case sha1
:
66 | let data = try Data(contentsOf: url, options: .mappedIfSafe)
67 | var string: String
68 | switch type {
| `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
69 | case .md5:
70 | string = data.tr.md5
[8/26] Compiling Tiercel DownloadTask.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:223:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
221 | executeControl()
222 | operationQueue.async {
223 | self.didComplete(.local)
| `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
224 | }
225 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:257:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
255 | status = .willSuspend
256 | operationQueue.async {
257 | self.didComplete(.local)
| `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
258 | }
259 | case .willSuspend, .willCancel, .willRemove:
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:274:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
272 | status = .willCancel
273 | operationQueue.async {
274 | self.didComplete(.local)
| `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
275 | }
276 | case .willSuspend, .willCancel, .willRemove:
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:293:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
291 | status = .willRemove
292 | operationQueue.async {
293 | self.didComplete(.local)
| `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
294 | }
295 | case .willSuspend, .willCancel, .willRemove:
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:428:56: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
426 | handler: @escaping Handler<DownloadTask>) -> Self {
427 | operationQueue.async {
428 | let (verificationCode, verificationType) = self.protectedState.read {
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
429 | ($0.verificationCode, $0.verificationType)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:432:37: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
430 | }
431 | if verificationCode == code &&
432 | verificationType == type &&
| `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
433 | self.validation != .unkown {
434 | self.shouldValidateFile = false
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
30 | public enum FileChecksumHelper {
31 |
32 | public enum VerificationType : Int {
| `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
33 | case md5
34 | case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:443:81: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in a '@Sendable' closure
441 | self.manager?.storeTasks()
442 | }
443 | self.validateExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
444 | if self.status == .succeeded {
445 | self.validateFile()
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:432:37: warning: implicit capture of 'type' requires that 'FileChecksumHelper.VerificationType' conforms to 'Sendable'; this is an error in the Swift 6 language mode
430 | }
431 | if verificationCode == code &&
432 | verificationType == type &&
| `- warning: implicit capture of 'type' requires that 'FileChecksumHelper.VerificationType' conforms to 'Sendable'; this is an error in the Swift 6 language mode
433 | self.validation != .unkown {
434 | self.shouldValidateFile = false
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
30 | public enum FileChecksumHelper {
31 |
32 | public enum VerificationType : Int {
| `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
33 | case md5
34 | case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:433:17: warning: implicit capture of 'self' requires that 'Self' conforms to 'Sendable'; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
431 | if verificationCode == code &&
432 | verificationType == type &&
433 | self.validation != .unkown {
| `- warning: implicit capture of 'self' requires that 'Self' conforms to 'Sendable'; this is an error in the Swift 6 language mode
434 | self.shouldValidateFile = false
435 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:439:43: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in an isolated closure; this is an error in the Swift 6 language mode
437 | self.protectedState.write {
438 | $0.verificationCode = code
439 | $0.verificationType = type
| `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in an isolated closure; this is an error in the Swift 6 language mode
440 | }
441 | self.manager?.storeTasks()
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
30 | public enum FileChecksumHelper {
31 |
32 | public enum VerificationType : Int {
| `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
33 | case md5
34 | case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:158:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
156 | @objc private func fixDelegateMethodError() {
157 | DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
158 | self.sessionTask?.suspend()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
159 | self.sessionTask?.resume()
160 | }
[9/26] Compiling Tiercel Executer.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:223:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
221 | executeControl()
222 | operationQueue.async {
223 | self.didComplete(.local)
| `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
224 | }
225 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:257:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
255 | status = .willSuspend
256 | operationQueue.async {
257 | self.didComplete(.local)
| `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
258 | }
259 | case .willSuspend, .willCancel, .willRemove:
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:274:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
272 | status = .willCancel
273 | operationQueue.async {
274 | self.didComplete(.local)
| `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
275 | }
276 | case .willSuspend, .willCancel, .willRemove:
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:293:17: warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
291 | status = .willRemove
292 | operationQueue.async {
293 | self.didComplete(.local)
| `- warning: capture of 'self' with non-sendable type 'DownloadTask' in a '@Sendable' closure
294 | }
295 | case .willSuspend, .willCancel, .willRemove:
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:428:56: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
426 | handler: @escaping Handler<DownloadTask>) -> Self {
427 | operationQueue.async {
428 | let (verificationCode, verificationType) = self.protectedState.read {
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
429 | ($0.verificationCode, $0.verificationType)
430 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:432:37: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
430 | }
431 | if verificationCode == code &&
432 | verificationType == type &&
| `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in a '@Sendable' closure
433 | self.validation != .unkown {
434 | self.shouldValidateFile = false
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
30 | public enum FileChecksumHelper {
31 |
32 | public enum VerificationType : Int {
| `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
33 | case md5
34 | case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:443:81: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in a '@Sendable' closure
441 | self.manager?.storeTasks()
442 | }
443 | self.validateExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>' (aka '(DownloadTask) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
444 | if self.status == .succeeded {
445 | self.validateFile()
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:432:37: warning: implicit capture of 'type' requires that 'FileChecksumHelper.VerificationType' conforms to 'Sendable'; this is an error in the Swift 6 language mode
430 | }
431 | if verificationCode == code &&
432 | verificationType == type &&
| `- warning: implicit capture of 'type' requires that 'FileChecksumHelper.VerificationType' conforms to 'Sendable'; this is an error in the Swift 6 language mode
433 | self.validation != .unkown {
434 | self.shouldValidateFile = false
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
30 | public enum FileChecksumHelper {
31 |
32 | public enum VerificationType : Int {
| `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
33 | case md5
34 | case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:433:17: warning: implicit capture of 'self' requires that 'Self' conforms to 'Sendable'; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
:
431 | if verificationCode == code &&
432 | verificationType == type &&
433 | self.validation != .unkown {
| `- warning: implicit capture of 'self' requires that 'Self' conforms to 'Sendable'; this is an error in the Swift 6 language mode
434 | self.shouldValidateFile = false
435 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:439:43: warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in an isolated closure; this is an error in the Swift 6 language mode
437 | self.protectedState.write {
438 | $0.verificationCode = code
439 | $0.verificationType = type
| `- warning: capture of 'type' with non-sendable type 'FileChecksumHelper.VerificationType' in an isolated closure; this is an error in the Swift 6 language mode
440 | }
441 | self.manager?.storeTasks()
/Users/admin/builder/spi-builder-workspace/Sources/Utility/FileChecksumHelper.swift:32:17: note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
30 | public enum FileChecksumHelper {
31 |
32 | public enum VerificationType : Int {
| `- note: consider making enum 'VerificationType' conform to the 'Sendable' protocol
33 | case md5
34 | case sha1
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:158:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
156 | @objc private func fixDelegateMethodError() {
157 | DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
158 | self.sessionTask?.suspend()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
159 | self.sessionTask?.resume()
160 | }
[10/26] Compiling Tiercel Notifications.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:117:21: warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
115 | let workItem = DispatchWorkItem { [weak self, weak queue] in
116 | queue?.async {
117 | work()
| |- warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
118 | }
119 | self?.workItem = nil
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:149:21: warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
147 | let workItem = DispatchWorkItem { [weak self, weak queue] in
148 | queue?.async {
149 | work()
| |- warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
150 | }
151 | self?.workItem = nil
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:158:21: warning: capture of 'self' with non-sendable type 'Throttler?' in a '@Sendable' closure
125 | }
126 |
127 | final public class Throttler {
| `- note: class 'Throttler' does not conform to the 'Sendable' protocol
128 |
129 | private let dispatchQueue: DispatchQueue
:
156 | self.workItem = workItem
157 | dispatchQueue.asyncAfter(deadline: .now() + timeInterval) { [weak self] in
158 | self?.workItem?.perform()
| `- warning: capture of 'self' with non-sendable type 'Throttler?' in a '@Sendable' closure
159 | }
160 | } else {
[11/26] Compiling Tiercel Protected.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:117:21: warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
115 | let workItem = DispatchWorkItem { [weak self, weak queue] in
116 | queue?.async {
117 | work()
| |- warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
118 | }
119 | self?.workItem = nil
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:149:21: warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
147 | let workItem = DispatchWorkItem { [weak self, weak queue] in
148 | queue?.async {
149 | work()
| |- warning: capture of 'work' with non-sendable type '@convention(block) () -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
150 | }
151 | self?.workItem = nil
/Users/admin/builder/spi-builder-workspace/Sources/General/Protected.swift:158:21: warning: capture of 'self' with non-sendable type 'Throttler?' in a '@Sendable' closure
125 | }
126 |
127 | final public class Throttler {
| `- note: class 'Throttler' does not conform to the 'Sendable' protocol
128 |
129 | private let dispatchQueue: DispatchQueue
:
156 | self.workItem = workItem
157 | dispatchQueue.asyncAfter(deadline: .now() + timeInterval) { [weak self] in
158 | self?.workItem?.perform()
| `- warning: capture of 'self' with non-sendable type 'Throttler?' in a '@Sendable' closure
159 | }
160 | } else {
[12/26] Compiling Tiercel DispatchQueue+Safe.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/DispatchQueue+Safe.swift:37:17: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
35 | } else {
36 | DispatchQueue.main.async {
37 | block()
| |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
38 | }
39 | }
[13/26] Compiling Tiercel Double+TaskInfo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/DispatchQueue+Safe.swift:37:17: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
35 | } else {
36 | DispatchQueue.main.async {
37 | block()
| |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
38 | }
39 | }
[14/26] Compiling Tiercel FileManager+AvailableCapacity.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/DispatchQueue+Safe.swift:37:17: warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
35 | } else {
36 | DispatchQueue.main.async {
37 | block()
| |- warning: sending 'block' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'block' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
38 | }
39 | }
[15/26] Compiling Tiercel TiercelError.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:43:10: warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
41 |
42 | case unknown
43 | case invalidURL(url: URLConvertible)
| `- warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
44 | case duplicateURL(url: URLConvertible)
45 | case indexOutOfRange
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:44:10: warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
42 | case unknown
43 | case invalidURL(url: URLConvertible)
44 | case duplicateURL(url: URLConvertible)
| `- warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
45 | case indexOutOfRange
46 | case fetchDownloadTaskFailed(url: URLConvertible)
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:46:10: warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
44 | case duplicateURL(url: URLConvertible)
45 | case indexOutOfRange
46 | case fetchDownloadTaskFailed(url: URLConvertible)
| `- warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
47 | case headersMatchFailed
48 | case fileNamesMatchFailed
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:50:10: warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
29 | public enum TiercelError: Error {
30 |
31 | public enum CacheErrorReason {
| `- note: consider making enum 'CacheErrorReason' conform to the 'Sendable' protocol
32 | case cannotCreateDirectory(path: String, error: Error)
33 | case cannotRemoveItem(path: String, error: Error)
:
48 | case fileNamesMatchFailed
49 | case unacceptableStatusCode(code: Int)
50 | case cacheError(reason: CacheErrorReason)
| `- warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
51 | }
52 |
[16/26] Compiling Tiercel URLConvertible.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:43:10: warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
41 |
42 | case unknown
43 | case invalidURL(url: URLConvertible)
| `- warning: associated value 'invalidURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
44 | case duplicateURL(url: URLConvertible)
45 | case indexOutOfRange
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:44:10: warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
42 | case unknown
43 | case invalidURL(url: URLConvertible)
44 | case duplicateURL(url: URLConvertible)
| `- warning: associated value 'duplicateURL(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
45 | case indexOutOfRange
46 | case fetchDownloadTaskFailed(url: URLConvertible)
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:46:10: warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
44 | case duplicateURL(url: URLConvertible)
45 | case indexOutOfRange
46 | case fetchDownloadTaskFailed(url: URLConvertible)
| `- warning: associated value 'fetchDownloadTaskFailed(url:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'any URLConvertible'; this is an error in the Swift 6 language mode
47 | case headersMatchFailed
48 | case fileNamesMatchFailed
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/TiercelError.swift:50:10: warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
29 | public enum TiercelError: Error {
30 |
31 | public enum CacheErrorReason {
| `- note: consider making enum 'CacheErrorReason' conform to the 'Sendable' protocol
32 | case cannotCreateDirectory(path: String, error: Error)
33 | case cannotRemoveItem(path: String, error: Error)
:
48 | case fileNamesMatchFailed
49 | case unacceptableStatusCode(code: Int)
50 | case cacheError(reason: CacheErrorReason)
| `- warning: associated value 'cacheError(reason:)' of 'Sendable'-conforming enum 'TiercelError' has non-sendable type 'TiercelError.CacheErrorReason'; this is an error in the Swift 6 language mode
51 | }
52 |
[17/26] Compiling Tiercel Int64+TaskInfo.swift
[18/26] Compiling Tiercel OperationQueue+DispatchQueue.swift
[19/26] Compiling Tiercel String+Hash.swift
[20/26] Compiling Tiercel SessionManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:405:17: warning: capture of 'uniqueTasks' with non-sendable type '[DownloadTask]' in a '@Sendable' closure
403 | Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
404 | operationQueue.async {
405 | uniqueTasks.forEach {
| `- warning: capture of 'uniqueTasks' with non-sendable type '[DownloadTask]' in a '@Sendable' closure
406 | if $0.status != .succeeded {
407 | self._start($0)
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:407:25: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
405 | uniqueTasks.forEach {
406 | if $0.status != .succeeded {
407 | self._start($0)
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
408 | }
409 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:405:17: warning: reference to captured var 'uniqueTasks' in concurrently-executing code
403 | Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
404 | operationQueue.async {
405 | uniqueTasks.forEach {
| `- warning: reference to captured var 'uniqueTasks' in concurrently-executing code
406 | if $0.status != .succeeded {
407 | self._start($0)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:407:25: warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
405 | uniqueTasks.forEach {
406 | if $0.status != .succeeded {
407 | self._start($0)
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
408 | }
409 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:443:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
441 | public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
442 | operationQueue.async {
443 | self._start(url, onMainQueue: onMainQueue, handler: handler)
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
444 | }
445 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:443:25: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
441 | public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
442 | operationQueue.async {
443 | self._start(url, onMainQueue: onMainQueue, handler: handler)
| `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
444 | }
445 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:443:65: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
441 | public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
442 | operationQueue.async {
443 | self._start(url, onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
444 | }
445 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:449:27: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
447 | public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
448 | operationQueue.async {
449 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
450 | self.log(.error("can't start downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
451 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:449:42: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
447 | public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
448 | operationQueue.async {
449 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
450 | self.log(.error("can't start downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
451 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:453:66: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
451 | return
452 | }
453 | self._start(task, onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
454 | }
455 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:482:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
480 | public func suspend(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
481 | operationQueue.async {
482 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
483 | self.log(.error("can't suspend downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
484 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:482:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
480 | public func suspend(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
481 | operationQueue.async {
482 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
483 | self.log(.error("can't suspend downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
484 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:486:61: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
484 | return
485 | }
486 | task.suspend(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
487 | }
488 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:492:27: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
490 | public func suspend(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
491 | operationQueue.async {
492 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
493 | self.log(.error("can't suspend downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
494 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:492:42: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
490 | public func suspend(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
491 | operationQueue.async {
492 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
493 | self.log(.error("can't suspend downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
494 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:496:61: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
494 | return
495 | }
496 | task.suspend(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
497 | }
498 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:507:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
505 | public func cancel(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
506 | operationQueue.async {
507 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
508 | self.log(.error("can't cancel downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
509 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:507:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
505 | public func cancel(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
506 | operationQueue.async {
507 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
508 | self.log(.error("can't cancel downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
509 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:511:60: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
509 | return
510 | }
511 | task.cancel(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
512 | }
513 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:517:27: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
515 | public func cancel(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
516 | operationQueue.async {
517 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
518 | self.log(.error("can't cancel downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
519 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:517:42: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
515 | public func cancel(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
516 | operationQueue.async {
517 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
518 | self.log(.error("can't cancel downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
519 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:521:60: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
519 | return
520 | }
521 | task.cancel(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
522 | }
523 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:537:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
535 | public func remove(_ url: URLConvertible, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
536 | operationQueue.async {
537 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
538 | self.log(.error("can't remove downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
539 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:537:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
535 | public func remove(_ url: URLConvertible, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
536 | operationQueue.async {
537 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
538 | self.log(.error("can't remove downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
539 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:541:84: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
539 | return
540 | }
541 | task.remove(completely: completely, onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
542 | }
543 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:547:27: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
545 | public func remove(_ task: DownloadTask, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
546 | operationQueue.async {
547 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
548 | self.log(.error("can't remove downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
549 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:547:42: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
545 | public func remove(_ task: DownloadTask, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
546 | operationQueue.async {
547 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
548 | self.log(.error("can't remove downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
549 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:551:84: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
549 | return
550 | }
551 | task.remove(completely: completely, onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
552 | }
553 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:581:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
579 | public func totalStart(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
580 | operationQueue.async {
581 | self.tasks.forEach { task in
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
582 | if task.status != .succeeded {
583 | self._start(task)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:586:57: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
584 | }
585 | }
586 | Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
| |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
587 | }
588 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:583:21: warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
581 | self.tasks.forEach { task in
582 | if task.status != .succeeded {
583 | self._start(task)
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
584 | }
585 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:592:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
590 | public func totalSuspend(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
591 | operationQueue.async {
592 | guard self.status == .running || self.status == .waiting else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
593 | self.status = .willSuspend
594 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:594:80: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
592 | guard self.status == .running || self.status == .waiting else { return }
593 | self.status = .willSuspend
594 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
595 | self.tasks.forEach { $0.suspend() }
596 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:592:46: warning: implicit capture of 'self' requires that 'SessionManager' conforms to 'Sendable'; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
590 | public func totalSuspend(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
591 | operationQueue.async {
592 | guard self.status == .running || self.status == .waiting else { return }
| `- warning: implicit capture of 'self' requires that 'SessionManager' conforms to 'Sendable'; this is an error in the Swift 6 language mode
593 | self.status = .willSuspend
594 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:601:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
599 | public func totalCancel(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
600 | operationQueue.async {
601 | guard self.status != .succeeded && self.status != .canceled else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
602 | self.status = .willCancel
603 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:603:80: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
601 | guard self.status != .succeeded && self.status != .canceled else { return }
602 | self.status = .willCancel
603 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
604 | self.tasks.forEach { $0.cancel() }
605 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:601:48: warning: implicit capture of 'self' requires that 'SessionManager' conforms to 'Sendable'; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
599 | public func totalCancel(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
600 | operationQueue.async {
601 | guard self.status != .succeeded && self.status != .canceled else { return }
| `- warning: implicit capture of 'self' requires that 'SessionManager' conforms to 'Sendable'; this is an error in the Swift 6 language mode
602 | self.status = .willCancel
603 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:610:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
608 | public func totalRemove(completely: Bool = false, onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
609 | operationQueue.async {
610 | guard self.status != .removed else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
611 | self.status = .willRemove
612 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:612:80: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
610 | guard self.status != .removed else { return }
611 | self.status = .willRemove
612 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
613 | self.tasks.forEach { $0.remove(completely: completely) }
614 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:692:30: warning: capture of 'self' with non-sendable type 'SessionManager?' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
690 | }
691 | session?.getTasksWithCompletionHandler { [weak self] (dataTasks, uploadTasks, downloadTasks) in
692 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionManager?' in a '@Sendable' closure
693 | downloadTasks.forEach { downloadTask in
694 | if downloadTask.state == .running,
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:863:17: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
861 | // next task
862 | operationQueue.async {
863 | self.startNextTask()
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
864 | }
865 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:949:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
947 | if status == .succeeded && completionExecuter == nil{
948 | operationQueue.async {
949 | self.successExecuter?.execute(self)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
950 | }
951 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:964:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
962 | status == .failed) {
963 | operationQueue.async {
964 | self.failureExecuter?.execute(self)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
965 | }
966 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:979:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
977 | status == .failed {
978 | operationQueue.async {
979 | self.completionExecuter?.execute(self)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
980 | }
981 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:316:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
35 | }
36 |
37 | public class Task<TaskType>: NSObject, Codable {
| `- note: generic class 'Task' does not conform to the 'Sendable' protocol
38 |
39 | private enum CodingKeys: CodingKey {
:
314 | if status == .succeeded && completionExecuter == nil{
315 | operationQueue.async {
316 | self.execute(self.successExecuter)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
317 | }
318 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:332:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
35 | }
36 |
37 | public class Task<TaskType>: NSObject, Codable {
| `- note: generic class 'Task' does not conform to the 'Sendable' protocol
38 |
39 | private enum CodingKeys: CodingKey {
:
330 | status == .failed) {
331 | operationQueue.async {
332 | self.execute(self.failureExecuter)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
333 | }
334 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:347:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
35 | }
36 |
37 | public class Task<TaskType>: NSObject, Codable {
| `- note: generic class 'Task' does not conform to the 'Sendable' protocol
38 |
39 | private enum CodingKeys: CodingKey {
:
345 | status == .failed {
346 | operationQueue.async {
347 | self.execute(self.completionExecuter)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
348 | }
349 | }
[21/26] Compiling Tiercel Task.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:405:17: warning: capture of 'uniqueTasks' with non-sendable type '[DownloadTask]' in a '@Sendable' closure
403 | Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
404 | operationQueue.async {
405 | uniqueTasks.forEach {
| `- warning: capture of 'uniqueTasks' with non-sendable type '[DownloadTask]' in a '@Sendable' closure
406 | if $0.status != .succeeded {
407 | self._start($0)
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:407:25: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
405 | uniqueTasks.forEach {
406 | if $0.status != .succeeded {
407 | self._start($0)
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
408 | }
409 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:405:17: warning: reference to captured var 'uniqueTasks' in concurrently-executing code
403 | Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
404 | operationQueue.async {
405 | uniqueTasks.forEach {
| `- warning: reference to captured var 'uniqueTasks' in concurrently-executing code
406 | if $0.status != .succeeded {
407 | self._start($0)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:407:25: warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
405 | uniqueTasks.forEach {
406 | if $0.status != .succeeded {
407 | self._start($0)
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
408 | }
409 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:443:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
441 | public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
442 | operationQueue.async {
443 | self._start(url, onMainQueue: onMainQueue, handler: handler)
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
444 | }
445 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:443:25: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
441 | public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
442 | operationQueue.async {
443 | self._start(url, onMainQueue: onMainQueue, handler: handler)
| `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
444 | }
445 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:443:65: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
441 | public func start(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
442 | operationQueue.async {
443 | self._start(url, onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
444 | }
445 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:449:27: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
447 | public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
448 | operationQueue.async {
449 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
450 | self.log(.error("can't start downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
451 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:449:42: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
447 | public func start(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
448 | operationQueue.async {
449 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
450 | self.log(.error("can't start downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
451 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:453:66: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
451 | return
452 | }
453 | self._start(task, onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
454 | }
455 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:482:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
480 | public func suspend(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
481 | operationQueue.async {
482 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
483 | self.log(.error("can't suspend downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
484 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:482:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
480 | public func suspend(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
481 | operationQueue.async {
482 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
483 | self.log(.error("can't suspend downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
484 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:486:61: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
484 | return
485 | }
486 | task.suspend(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
487 | }
488 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:492:27: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
490 | public func suspend(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
491 | operationQueue.async {
492 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
493 | self.log(.error("can't suspend downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
494 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:492:42: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
490 | public func suspend(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
491 | operationQueue.async {
492 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
493 | self.log(.error("can't suspend downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
494 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:496:61: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
494 | return
495 | }
496 | task.suspend(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
497 | }
498 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:507:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
505 | public func cancel(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
506 | operationQueue.async {
507 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
508 | self.log(.error("can't cancel downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
509 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:507:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
505 | public func cancel(_ url: URLConvertible, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
506 | operationQueue.async {
507 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
508 | self.log(.error("can't cancel downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
509 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:511:60: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
509 | return
510 | }
511 | task.cancel(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
512 | }
513 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:517:27: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
515 | public func cancel(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
516 | operationQueue.async {
517 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
518 | self.log(.error("can't cancel downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
519 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:517:42: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
515 | public func cancel(_ task: DownloadTask, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
516 | operationQueue.async {
517 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
518 | self.log(.error("can't cancel downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
519 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:521:60: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
519 | return
520 | }
521 | task.cancel(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
522 | }
523 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:537:30: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
535 | public func remove(_ url: URLConvertible, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
536 | operationQueue.async {
537 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
538 | self.log(.error("can't remove downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
539 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:537:45: warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
535 | public func remove(_ url: URLConvertible, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
536 | operationQueue.async {
537 | guard let task = self.fetchTask(url) else {
| `- warning: capture of 'url' with non-sendable type 'any URLConvertible' in a '@Sendable' closure
538 | self.log(.error("can't remove downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: url)))
539 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/URLConvertible.swift:29:17: note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public protocol URLConvertible {
| `- note: protocol 'URLConvertible' does not conform to the 'Sendable' protocol
30 |
31 | func asURL() throws -> URL
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:541:84: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
539 | return
540 | }
541 | task.remove(completely: completely, onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
542 | }
543 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:547:27: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
545 | public func remove(_ task: DownloadTask, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
546 | operationQueue.async {
547 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
548 | self.log(.error("can't remove downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
549 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:547:42: warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
545 | public func remove(_ task: DownloadTask, completely: Bool = false, onMainQueue: Bool = true, handler: Handler<DownloadTask>? = nil) {
546 | operationQueue.async {
547 | guard let _ = self.fetchTask(task.url) else {
| `- warning: capture of 'task' with non-sendable type 'DownloadTask' in a '@Sendable' closure
548 | self.log(.error("can't remove downloadTask", error: TiercelError.fetchDownloadTaskFailed(url: task.url)))
549 | return
/Users/admin/builder/spi-builder-workspace/Sources/General/DownloadTask.swift:33:14: note: class 'DownloadTask' does not conform to the 'Sendable' protocol
31 | #endif
32 |
33 | public class DownloadTask: Task<DownloadTask> {
| `- note: class 'DownloadTask' does not conform to the 'Sendable' protocol
34 |
35 | private enum CodingKeys: CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:551:84: warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
549 | return
550 | }
551 | task.remove(completely: completely, onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<DownloadTask>?' (aka 'Optional<(DownloadTask) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
552 | }
553 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:581:13: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
579 | public func totalStart(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
580 | operationQueue.async {
581 | self.tasks.forEach { task in
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
582 | if task.status != .succeeded {
583 | self._start(task)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:586:57: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
584 | }
585 | }
586 | Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
| |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
587 | }
588 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:583:21: warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
581 | self.tasks.forEach { task in
582 | if task.status != .succeeded {
583 | self._start(task)
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in an isolated closure; this is an error in the Swift 6 language mode
584 | }
585 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:592:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
590 | public func totalSuspend(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
591 | operationQueue.async {
592 | guard self.status == .running || self.status == .waiting else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
593 | self.status = .willSuspend
594 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:594:80: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
592 | guard self.status == .running || self.status == .waiting else { return }
593 | self.status = .willSuspend
594 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
595 | self.tasks.forEach { $0.suspend() }
596 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:592:46: warning: implicit capture of 'self' requires that 'SessionManager' conforms to 'Sendable'; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
590 | public func totalSuspend(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
591 | operationQueue.async {
592 | guard self.status == .running || self.status == .waiting else { return }
| `- warning: implicit capture of 'self' requires that 'SessionManager' conforms to 'Sendable'; this is an error in the Swift 6 language mode
593 | self.status = .willSuspend
594 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:601:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
599 | public func totalCancel(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
600 | operationQueue.async {
601 | guard self.status != .succeeded && self.status != .canceled else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
602 | self.status = .willCancel
603 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:603:80: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
601 | guard self.status != .succeeded && self.status != .canceled else { return }
602 | self.status = .willCancel
603 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
604 | self.tasks.forEach { $0.cancel() }
605 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:601:48: warning: implicit capture of 'self' requires that 'SessionManager' conforms to 'Sendable'; this is an error in the Swift 6 language mode
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
599 | public func totalCancel(onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
600 | operationQueue.async {
601 | guard self.status != .succeeded && self.status != .canceled else { return }
| `- warning: implicit capture of 'self' requires that 'SessionManager' conforms to 'Sendable'; this is an error in the Swift 6 language mode
602 | self.status = .willCancel
603 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:610:19: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
608 | public func totalRemove(completely: Bool = false, onMainQueue: Bool = true, handler: Handler<SessionManager>? = nil) {
609 | operationQueue.async {
610 | guard self.status != .removed else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
611 | self.status = .willRemove
612 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:612:80: warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
610 | guard self.status != .removed else { return }
611 | self.status = .willRemove
612 | self.controlExecuter = Executer(onMainQueue: onMainQueue, handler: handler)
| |- warning: capture of 'handler' with non-sendable type 'Handler<SessionManager>?' (aka 'Optional<(SessionManager) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
613 | self.tasks.forEach { $0.remove(completely: completely) }
614 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:692:30: warning: capture of 'self' with non-sendable type 'SessionManager?' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
690 | }
691 | session?.getTasksWithCompletionHandler { [weak self] (dataTasks, uploadTasks, downloadTasks) in
692 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionManager?' in a '@Sendable' closure
693 | downloadTasks.forEach { downloadTask in
694 | if downloadTask.state == .running,
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:863:17: warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
861 | // next task
862 | operationQueue.async {
863 | self.startNextTask()
| `- warning: capture of 'self' with non-sendable type 'SessionManager' in a '@Sendable' closure
864 | }
865 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:949:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
947 | if status == .succeeded && completionExecuter == nil{
948 | operationQueue.async {
949 | self.successExecuter?.execute(self)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
950 | }
951 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:964:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
962 | status == .failed) {
963 | operationQueue.async {
964 | self.failureExecuter?.execute(self)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
965 | }
966 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/SessionManager.swift:979:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
31 | #endif
32 |
33 | public class SessionManager {
| `- note: class 'SessionManager' does not conform to the 'Sendable' protocol
34 |
35 | enum MaintainTasksAction {
:
977 | status == .failed {
978 | operationQueue.async {
979 | self.completionExecuter?.execute(self)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
980 | }
981 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:316:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
35 | }
36 |
37 | public class Task<TaskType>: NSObject, Codable {
| `- note: generic class 'Task' does not conform to the 'Sendable' protocol
38 |
39 | private enum CodingKeys: CodingKey {
:
314 | if status == .succeeded && completionExecuter == nil{
315 | operationQueue.async {
316 | self.execute(self.successExecuter)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
317 | }
318 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:332:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
35 | }
36 |
37 | public class Task<TaskType>: NSObject, Codable {
| `- note: generic class 'Task' does not conform to the 'Sendable' protocol
38 |
39 | private enum CodingKeys: CodingKey {
:
330 | status == .failed) {
331 | operationQueue.async {
332 | self.execute(self.failureExecuter)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
333 | }
334 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Task.swift:347:17: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
35 | }
36 |
37 | public class Task<TaskType>: NSObject, Codable {
| `- note: generic class 'Task' does not conform to the 'Sendable' protocol
38 |
39 | private enum CodingKeys: CodingKey {
:
345 | status == .failed {
346 | operationQueue.async {
347 | self.execute(self.completionExecuter)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
348 | }
349 | }
[22/26] Compiling Tiercel Cache.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:87:36: warning: type 'Cache' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
85 | createDirectory()
86 |
87 | decoder.userInfo[.cache] = self
| `- warning: type 'Cache' does not conform to the 'Sendable' protocol
88 |
89 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:175:19: warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
173 | public func clearDiskCache(onMainQueue: Bool = true, handler: Handler<Cache>? = nil) {
174 | ioQueue.async {
175 | guard self.fileManager.fileExists(atPath: self.downloadPath) else { return }
| `- warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
176 | do {
177 | try self.fileManager.removeItem(atPath: self.downloadPath)
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:184:30: warning: capture of 'handler' with non-sendable type 'Handler<Cache>?' (aka 'Optional<(Cache) -> ()>') in a '@Sendable' closure
182 | }
183 | self.createDirectory()
184 | if let handler = handler {
| |- warning: capture of 'handler' with non-sendable type 'Handler<Cache>?' (aka 'Optional<(Cache) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 | Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
186 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:344:16: warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
342 | internal func removeFile(_ filePath: String) {
343 | ioQueue.async {
344 | if self.fileManager.fileExists(atPath: filePath) {
| `- warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
345 | do {
346 | try self.fileManager.removeItem(atPath: filePath)
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:364:26: warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
362 | ioQueue.async {
363 | guard let tmpFileName = tmpFileName, !tmpFileName.isEmpty else { return }
364 | let path1 = (self.downloadTmpPath as NSString).appendingPathComponent(tmpFileName)
| `- warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
365 | let path2 = (NSTemporaryDirectory() as NSString).appendingPathComponent(tmpFileName)
366 | [path1, path2].forEach { (path) in
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:367:20: warning: capture of 'self' with non-sendable type 'Cache' in an isolated closure; this is an error in the Swift 6 language mode
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
365 | let path2 = (NSTemporaryDirectory() as NSString).appendingPathComponent(tmpFileName)
366 | [path1, path2].forEach { (path) in
367 | if self.fileManager.fileExists(atPath: path) {
| `- warning: capture of 'self' with non-sendable type 'Cache' in an isolated closure; this is an error in the Swift 6 language mode
368 | do {
369 | try self.fileManager.removeItem(atPath: path)
/Users/admin/builder/spi-builder-workspace/Sources/General/Common.swift:114:20: warning: static property 'tiercelTask' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
112 | extension URLSessionTask {
113 | private struct AssociatedKeys {
114 | static var tiercelTask: UInt8 = 0
| |- warning: static property 'tiercelTask' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'tiercelTask' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'tiercelTask' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
115 | }
116 |
[23/26] Compiling Tiercel Common.swift
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:87:36: warning: type 'Cache' does not conform to the 'Sendable' protocol
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
85 | createDirectory()
86 |
87 | decoder.userInfo[.cache] = self
| `- warning: type 'Cache' does not conform to the 'Sendable' protocol
88 |
89 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:175:19: warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
173 | public func clearDiskCache(onMainQueue: Bool = true, handler: Handler<Cache>? = nil) {
174 | ioQueue.async {
175 | guard self.fileManager.fileExists(atPath: self.downloadPath) else { return }
| `- warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
176 | do {
177 | try self.fileManager.removeItem(atPath: self.downloadPath)
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:184:30: warning: capture of 'handler' with non-sendable type 'Handler<Cache>?' (aka 'Optional<(Cache) -> ()>') in a '@Sendable' closure
182 | }
183 | self.createDirectory()
184 | if let handler = handler {
| |- warning: capture of 'handler' with non-sendable type 'Handler<Cache>?' (aka 'Optional<(Cache) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
185 | Executer(onMainQueue: onMainQueue, handler: handler).execute(self)
186 | }
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:344:16: warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
342 | internal func removeFile(_ filePath: String) {
343 | ioQueue.async {
344 | if self.fileManager.fileExists(atPath: filePath) {
| `- warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
345 | do {
346 | try self.fileManager.removeItem(atPath: filePath)
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:364:26: warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
362 | ioQueue.async {
363 | guard let tmpFileName = tmpFileName, !tmpFileName.isEmpty else { return }
364 | let path1 = (self.downloadTmpPath as NSString).appendingPathComponent(tmpFileName)
| `- warning: capture of 'self' with non-sendable type 'Cache' in a '@Sendable' closure
365 | let path2 = (NSTemporaryDirectory() as NSString).appendingPathComponent(tmpFileName)
366 | [path1, path2].forEach { (path) in
/Users/admin/builder/spi-builder-workspace/Sources/General/Cache.swift:367:20: warning: capture of 'self' with non-sendable type 'Cache' in an isolated closure; this is an error in the Swift 6 language mode
27 | import Foundation
28 |
29 | public class Cache {
| `- note: class 'Cache' does not conform to the 'Sendable' protocol
30 |
31 | private let ioQueue: DispatchQueue
:
365 | let path2 = (NSTemporaryDirectory() as NSString).appendingPathComponent(tmpFileName)
366 | [path1, path2].forEach { (path) in
367 | if self.fileManager.fileExists(atPath: path) {
| `- warning: capture of 'self' with non-sendable type 'Cache' in an isolated closure; this is an error in the Swift 6 language mode
368 | do {
369 | try self.fileManager.removeItem(atPath: path)
/Users/admin/builder/spi-builder-workspace/Sources/General/Common.swift:114:20: warning: static property 'tiercelTask' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
112 | extension URLSessionTask {
113 | private struct AssociatedKeys {
114 | static var tiercelTask: UInt8 = 0
| |- warning: static property 'tiercelTask' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'tiercelTask' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'tiercelTask' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
115 | }
116 |
[24/26] Compiling Tiercel Array+Safe.swift
[25/26] Compiling Tiercel CodingUserInfoKey+Cache.swift
[26/26] Compiling Tiercel Data+Hash.swift
Build complete! (5.41s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Tiercel",
"name" : "Tiercel",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
}
],
"products" : [
{
"name" : "Tiercel",
"targets" : [
"Tiercel"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "Tiercel",
"module_type" : "SwiftTarget",
"name" : "Tiercel",
"path" : "Sources",
"product_memberships" : [
"Tiercel"
],
"sources" : [
"Extensions/Array+Safe.swift",
"Extensions/CodingUserInfoKey+Cache.swift",
"Extensions/Data+Hash.swift",
"Extensions/DispatchQueue+Safe.swift",
"Extensions/Double+TaskInfo.swift",
"Extensions/FileManager+AvailableCapacity.swift",
"Extensions/Int64+TaskInfo.swift",
"Extensions/OperationQueue+DispatchQueue.swift",
"Extensions/String+Hash.swift",
"General/Cache.swift",
"General/Common.swift",
"General/DownloadTask.swift",
"General/Executer.swift",
"General/Notifications.swift",
"General/Protected.swift",
"General/SessionConfiguration.swift",
"General/SessionDelegate.swift",
"General/SessionManager.swift",
"General/Task.swift",
"General/TiercelError.swift",
"General/URLConvertible.swift",
"Utility/FileChecksumHelper.swift",
"Utility/ResumeDataHelper.swift"
],
"type" : "library"
}
],
"tools_version" : "5.1"
}
Done.