The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of URLSessionBackport, reference main (133026), with Swift 6.0 for macOS (SPM) on 2 Nov 2024 01:09:27 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mochidev/URLSessionBackport.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/mochidev/URLSessionBackport
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 133026d Removed the last preconditionFailure
Cloned https://github.com/mochidev/URLSessionBackport.git
Revision (git rev-parse @):
133026d8723a81d7ddd293ce3d9fcadf72317517
SUCCESS checkout https://github.com/mochidev/URLSessionBackport.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "urlsessionbackport",
      "name": "URLSessionBackport",
      "url": "https://github.com/mochidev/URLSessionBackport.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/URLSessionBackport",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/mochidev/URLSessionBackport.git
[1/165] Fetching urlsessionbackport
Fetched https://github.com/mochidev/URLSessionBackport.git from cache (0.64s)
Creating working copy for https://github.com/mochidev/URLSessionBackport.git
Working copy of https://github.com/mochidev/URLSessionBackport.git resolved at main (133026d)
warning: '.resolve-product-dependencies': dependency 'urlsessionbackport' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/mochidev/URLSessionBackport.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/8] Compiling URLSessionBackport URLSessionBackport.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:124:88: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
122 |         } else {
123 |             return try await withUnsafeThrowingContinuation { continuation in
124 |                 resume(session.dataTask(with: request, completionHandler: continuation.taskCompletionHandler), with: delegate)
    |                                                                                        `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
125 |             }
126 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:139:84: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
137 |         } else {
138 |             return try await withUnsafeThrowingContinuation { continuation in
139 |                 resume(session.dataTask(with: url, completionHandler: continuation.taskCompletionHandler), with: delegate)
    |                                                                                    `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
140 |             }
141 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:155:109: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
153 |         } else {
154 |             return try await withUnsafeThrowingContinuation { continuation in
155 |                 resume(session.uploadTask(with: request, fromFile: fileURL, completionHandler: continuation.taskCompletionHandler), with: delegate)
    |                                                                                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
156 |             }
157 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:171:106: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
169 |         } else {
170 |             return try await withUnsafeThrowingContinuation { continuation in
171 |                 resume(session.uploadTask(with: request, from: bodyData, completionHandler: continuation.taskCompletionHandler), with: delegate)
    |                                                                                                          `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
172 |             }
173 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:186:92: warning: converting non-sendable function value to '@Sendable (URL?, URLResponse?, (any Error)?) -> Void' may introduce data races
184 |         } else {
185 |             return try await withUnsafeThrowingContinuation { continuation in
186 |                 resume(session.downloadTask(with: request, completionHandler: continuation.taskCompletionHandler), with: delegate)
    |                                                                                            `- warning: converting non-sendable function value to '@Sendable (URL?, URLResponse?, (any Error)?) -> Void' may introduce data races
187 |             }
188 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:201:88: warning: converting non-sendable function value to '@Sendable (URL?, URLResponse?, (any Error)?) -> Void' may introduce data races
199 |         } else {
200 |             return try await withUnsafeThrowingContinuation { continuation in
201 |                 resume(session.downloadTask(with: url, completionHandler: continuation.taskCompletionHandler), with: delegate)
    |                                                                                        `- warning: converting non-sendable function value to '@Sendable (URL?, URLResponse?, (any Error)?) -> Void' may introduce data races
202 |             }
203 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:216:105: warning: converting non-sendable function value to '@Sendable (URL?, URLResponse?, (any Error)?) -> Void' may introduce data races
214 |         } else {
215 |             return try await withUnsafeThrowingContinuation { continuation in
216 |                 resume(session.downloadTask(withResumeData: resumeData, completionHandler: continuation.taskCompletionHandler), with: delegate)
    |                                                                                                         `- warning: converting non-sendable function value to '@Sendable (URL?, URLResponse?, (any Error)?) -> Void' may introduce data races
217 |             }
218 |         }
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:62:13: warning: task-isolated value of type '((A), (B))' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
 60 |         switch (a, b, error) {
 61 |         case (.some(let a), .some(let b), .none):
 62 |             resume(returning: (a, b))
    |             `- warning: task-isolated value of type '((A), (B))' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
 63 |         case (.none, .none, .some(let error)):
 64 |             resume(throwing: error)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:244:38: warning: task-isolated value of type '(URLSession.Backport.AsyncBytes, URLResponse)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
242 |                     switch results {
243 |                     case .success(let response):
244 |                         continuation.resume(returning: (AsyncBytes(task: task, dataAccumulator: accumulator), response))
    |                                      `- warning: task-isolated value of type '(URLSession.Backport.AsyncBytes, URLResponse)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
245 |                     case .failure(let error):
246 |                         continuation.resume(throwing: error)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/URLSessionBackport.swift:278:38: warning: task-isolated value of type '(URLSession.Backport.AsyncBytes, URLResponse)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
276 |                     switch results {
277 |                     case .success(let response):
278 |                         continuation.resume(returning: (AsyncBytes(task: task, dataAccumulator: accumulator), response))
    |                                      `- warning: task-isolated value of type '(URLSession.Backport.AsyncBytes, URLResponse)' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
279 |                     case .failure(let error):
280 |                         continuation.resume(throwing: error)
[4/8] Compiling URLSessionBackport DataAccumulator.swift
[5/8] Compiling URLSessionBackport TaskDelegateHandler.swift
[6/8] Compiling URLSessionBackport AsyncBytes.swift
[7/8] Emitting module URLSessionBackport
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:15:7: warning: non-final class 'SessionDelegateProxy' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 13 | ///
 14 | /// This class forwards all delegate methods supported pre iOS15/macOS 12 to both the underlying session delegate and any assigned task delegates, consisting of the majority of the backporting work.
 15 | class SessionDelegateProxy: NSObject {
    |       `- warning: non-final class 'SessionDelegateProxy' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 16 |     var originalDelegate: URLSessionDelegate?
 17 |     var taskMap: [Int : TaskDelegateHandler] = [:]
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:16:9: warning: stored property 'originalDelegate' of 'Sendable'-conforming class 'SessionDelegateProxy' is mutable; this is an error in the Swift 6 language mode
 14 | /// This class forwards all delegate methods supported pre iOS15/macOS 12 to both the underlying session delegate and any assigned task delegates, consisting of the majority of the backporting work.
 15 | class SessionDelegateProxy: NSObject {
 16 |     var originalDelegate: URLSessionDelegate?
    |         `- warning: stored property 'originalDelegate' of 'Sendable'-conforming class 'SessionDelegateProxy' is mutable; this is an error in the Swift 6 language mode
 17 |     var taskMap: [Int : TaskDelegateHandler] = [:]
 18 |
[8/8] Compiling URLSessionBackport SessionDelegateProxy.swift
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:15:7: warning: non-final class 'SessionDelegateProxy' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 13 | ///
 14 | /// This class forwards all delegate methods supported pre iOS15/macOS 12 to both the underlying session delegate and any assigned task delegates, consisting of the majority of the backporting work.
 15 | class SessionDelegateProxy: NSObject {
    |       `- warning: non-final class 'SessionDelegateProxy' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 16 |     var originalDelegate: URLSessionDelegate?
 17 |     var taskMap: [Int : TaskDelegateHandler] = [:]
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:16:9: warning: stored property 'originalDelegate' of 'Sendable'-conforming class 'SessionDelegateProxy' is mutable; this is an error in the Swift 6 language mode
 14 | /// This class forwards all delegate methods supported pre iOS15/macOS 12 to both the underlying session delegate and any assigned task delegates, consisting of the majority of the backporting work.
 15 | class SessionDelegateProxy: NSObject {
 16 |     var originalDelegate: URLSessionDelegate?
    |         `- warning: stored property 'originalDelegate' of 'Sendable'-conforming class 'SessionDelegateProxy' is mutable; this is an error in the Swift 6 language mode
 17 |     var taskMap: [Int : TaskDelegateHandler] = [:]
 18 |
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:61:48: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 57 |     }
 58 |
 59 |     func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                                                                                              `- note: parameter 'completionHandler' is implicitly non-sendable
 60 |         if let delegateMethod = originalDelegate?.urlSession(_:didReceive:completionHandler:) {
 61 |             delegateMethod(session, challenge, completionHandler)
    |                                                `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 62 |         } else {
 63 |             completionHandler(.performDefaultHandling, nil)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:80:56: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 76 |     var originalTaskDelegate: URLSessionTaskDelegate? { originalDelegate as? URLSessionTaskDelegate }
 77 |
 78 |     func urlSession(_ session: URLSession, task: URLSessionTask, willBeginDelayedRequest request: URLRequest, completionHandler: @escaping (URLSession.DelayedRequestDisposition, URLRequest?) -> Void) {
    |                                                                                                               `- note: parameter 'completionHandler' is implicitly non-sendable
 79 |         if let taskDelegateMethod = taskMap[task.taskIdentifier]?.delegate?.urlSession(_:task:willBeginDelayedRequest:completionHandler:) {
 80 |             taskDelegateMethod(session, task, request, completionHandler)
    |                                                        `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 81 |         } else if let delegateMethod = originalTaskDelegate?.urlSession(_:task:willBeginDelayedRequest:completionHandler:) {
 82 |             delegateMethod(session, task, request, completionHandler)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:82:52: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 76 |     var originalTaskDelegate: URLSessionTaskDelegate? { originalDelegate as? URLSessionTaskDelegate }
 77 |
 78 |     func urlSession(_ session: URLSession, task: URLSessionTask, willBeginDelayedRequest request: URLRequest, completionHandler: @escaping (URLSession.DelayedRequestDisposition, URLRequest?) -> Void) {
    |                                                                                                               `- note: parameter 'completionHandler' is implicitly non-sendable
 79 |         if let taskDelegateMethod = taskMap[task.taskIdentifier]?.delegate?.urlSession(_:task:willBeginDelayedRequest:completionHandler:) {
 80 |             taskDelegateMethod(session, task, request, completionHandler)
 81 |         } else if let delegateMethod = originalTaskDelegate?.urlSession(_:task:willBeginDelayedRequest:completionHandler:) {
 82 |             delegateMethod(session, task, request, completionHandler)
    |                                                    `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 83 |         } else {
 84 |             completionHandler(.continueLoading, nil)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:95:66: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 91 |     }
 92 |
 93 |     func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
    |                                                                                                                                                        `- note: parameter 'completionHandler' is implicitly non-sendable
 94 |         if let taskDelegateMethod = taskMap[task.taskIdentifier]?.delegate?.urlSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:) {
 95 |             taskDelegateMethod(session, task, response, request, completionHandler)
    |                                                                  `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 96 |         } else if let delegateMethod = originalTaskDelegate?.urlSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:) {
 97 |             delegateMethod(session, task, response, request, completionHandler)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:97:62: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 91 |     }
 92 |
 93 |     func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
    |                                                                                                                                                        `- note: parameter 'completionHandler' is implicitly non-sendable
 94 |         if let taskDelegateMethod = taskMap[task.taskIdentifier]?.delegate?.urlSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:) {
 95 |             taskDelegateMethod(session, task, response, request, completionHandler)
 96 |         } else if let delegateMethod = originalTaskDelegate?.urlSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:) {
 97 |             delegateMethod(session, task, response, request, completionHandler)
    |                                                              `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
 98 |         } else {
 99 |             completionHandler(request)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:105:58: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
101 |     }
102 |
103 |     func urlSession(_ session: URLSession, task: URLSessionTask, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                                                                                                                    `- note: parameter 'completionHandler' is implicitly non-sendable
104 |         if let taskDelegateMethod = taskMap[task.taskIdentifier]?.delegate?.urlSession(_:task:didReceive:completionHandler:) {
105 |             taskDelegateMethod(session, task, challenge, completionHandler)
    |                                                          `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
106 |         } else if let delegateMethod = originalTaskDelegate?.urlSession(_:task:didReceive:completionHandler:) {
107 |             delegateMethod(session, task, challenge, completionHandler)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:107:54: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
101 |     }
102 |
103 |     func urlSession(_ session: URLSession, task: URLSessionTask, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                                                                                                                    `- note: parameter 'completionHandler' is implicitly non-sendable
104 |         if let taskDelegateMethod = taskMap[task.taskIdentifier]?.delegate?.urlSession(_:task:didReceive:completionHandler:) {
105 |             taskDelegateMethod(session, task, challenge, completionHandler)
106 |         } else if let delegateMethod = originalTaskDelegate?.urlSession(_:task:didReceive:completionHandler:) {
107 |             delegateMethod(session, task, challenge, completionHandler)
    |                                                      `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
108 |         } else {
109 |             completionHandler(.performDefaultHandling, nil)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:115:47: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
111 |     }
112 |
113 |     func urlSession(_ session: URLSession, task: URLSessionTask, needNewBodyStream completionHandler: @escaping (InputStream?) -> Void) {
    |                                                                                    `- note: parameter 'completionHandler' is implicitly non-sendable
114 |         if let taskDelegateMethod = taskMap[task.taskIdentifier]?.delegate?.urlSession(_:task:needNewBodyStream:) {
115 |             taskDelegateMethod(session, task, completionHandler)
    |                                               `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
116 |         } else if let delegateMethod = originalTaskDelegate?.urlSession(_:task:needNewBodyStream:) {
117 |             delegateMethod(session, task, completionHandler)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:117:43: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
111 |     }
112 |
113 |     func urlSession(_ session: URLSession, task: URLSessionTask, needNewBodyStream completionHandler: @escaping (InputStream?) -> Void) {
    |                                                                                    `- note: parameter 'completionHandler' is implicitly non-sendable
114 |         if let taskDelegateMethod = taskMap[task.taskIdentifier]?.delegate?.urlSession(_:task:needNewBodyStream:) {
115 |             taskDelegateMethod(session, task, completionHandler)
116 |         } else if let delegateMethod = originalTaskDelegate?.urlSession(_:task:needNewBodyStream:) {
117 |             delegateMethod(session, task, completionHandler)
    |                                           `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
118 |         } else {
119 |             completionHandler(nil)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:169:61: warning: converting non-sendable function value to '@Sendable (URLSession.ResponseDisposition) -> Void' may introduce data races
167 |
168 |         if let taskDelegateMethod = taskDelegate?.dataDelegate?.urlSession(_:dataTask:didReceive:completionHandler:) {
169 |             taskDelegateMethod(session, dataTask, response, verifyDisposition)
    |                                                             `- warning: converting non-sendable function value to '@Sendable (URLSession.ResponseDisposition) -> Void' may introduce data races
170 |         } else if let delegateMethod = originalDataDelegate?.urlSession(_:dataTask:didReceive:completionHandler:) {
171 |             delegateMethod(session, dataTask, response, verifyDisposition)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:171:57: warning: converting non-sendable function value to '@Sendable (URLSession.ResponseDisposition) -> Void' may introduce data races
169 |             taskDelegateMethod(session, dataTask, response, verifyDisposition)
170 |         } else if let delegateMethod = originalDataDelegate?.urlSession(_:dataTask:didReceive:completionHandler:) {
171 |             delegateMethod(session, dataTask, response, verifyDisposition)
    |                                                         `- warning: converting non-sendable function value to '@Sendable (URLSession.ResponseDisposition) -> Void' may introduce data races
172 |         } else {
173 |             verifyDisposition(.allow)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:199:69: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
195 |     }
196 |
197 |     func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, willCacheResponse proposedResponse: CachedURLResponse, completionHandler: @escaping (CachedURLResponse?) -> Void) {
    |                                                                                                                                 `- note: parameter 'completionHandler' is implicitly non-sendable
198 |         if let taskDelegateMethod = taskMap[dataTask.taskIdentifier]?.dataDelegate?.urlSession(_:dataTask:willCacheResponse:completionHandler:) {
199 |             taskDelegateMethod(session, dataTask, proposedResponse, completionHandler)
    |                                                                     `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
200 |         } else if let delegateMethod = originalDataDelegate?.urlSession(_:dataTask:willCacheResponse:completionHandler:) {
201 |             delegateMethod(session, dataTask, proposedResponse, completionHandler)
/Users/admin/builder/spi-builder-workspace/Sources/URLSessionBackport/SessionDelegateProxy.swift:201:65: warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
195 |     }
196 |
197 |     func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, willCacheResponse proposedResponse: CachedURLResponse, completionHandler: @escaping (CachedURLResponse?) -> Void) {
    |                                                                                                                                 `- note: parameter 'completionHandler' is implicitly non-sendable
198 |         if let taskDelegateMethod = taskMap[dataTask.taskIdentifier]?.dataDelegate?.urlSession(_:dataTask:willCacheResponse:completionHandler:) {
199 |             taskDelegateMethod(session, dataTask, proposedResponse, completionHandler)
200 |         } else if let delegateMethod = originalDataDelegate?.urlSession(_:dataTask:willCacheResponse:completionHandler:) {
201 |             delegateMethod(session, dataTask, proposedResponse, completionHandler)
    |                                                                 `- warning: passing non-sendable parameter 'completionHandler' to function expecting a @Sendable closure
202 |         } else {
203 |             completionHandler(proposedResponse)
Build complete! (7.98s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "URLSessionBackport",
  "name" : "URLSessionBackport",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "URLSessionBackport",
      "targets" : [
        "URLSessionBackport"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "URLSessionBackportTests",
      "module_type" : "SwiftTarget",
      "name" : "URLSessionBackportTests",
      "path" : "Tests/URLSessionBackportTests",
      "sources" : [
        "URLSessionBackportTests.swift"
      ],
      "target_dependencies" : [
        "URLSessionBackport"
      ],
      "type" : "test"
    },
    {
      "c99name" : "URLSessionBackport",
      "module_type" : "SwiftTarget",
      "name" : "URLSessionBackport",
      "path" : "Sources/URLSessionBackport",
      "product_memberships" : [
        "URLSessionBackport"
      ],
      "sources" : [
        "AsyncBytes.swift",
        "DataAccumulator.swift",
        "SessionDelegateProxy.swift",
        "TaskDelegateHandler.swift",
        "URLSessionBackport.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.