The Swift Package Index logo.Swift Package Index

Build Information

Successful build of RogersBankDownloader, reference main (e8c59c), with Swift 6.1 for macOS (SPM) on 23 Apr 2026 20:46:28 UTC.

Swift 6 data race errors: 4

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Nef10/RogersBankDownloader.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Nef10/RogersBankDownloader
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at e8c59c7 Bump release-drafter from 7.1.1 to 7.2.0 (#248)
Cloned https://github.com/Nef10/RogersBankDownloader.git
Revision (git rev-parse @):
e8c59c7a1466caa79d08924e11f1dc541aaef7c2
SUCCESS checkout https://github.com/Nef10/RogersBankDownloader.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/Nef10/RogersBankDownloader.git
https://github.com/Nef10/RogersBankDownloader.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "RogersBankDownloader",
  "name" : "RogersBankDownloader",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RogersBankDownloader",
      "targets" : [
        "RogersBankDownloader"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RogersBankDownloaderTests",
      "module_type" : "SwiftTarget",
      "name" : "RogersBankDownloaderTests",
      "path" : "Tests/RogersBankDownloaderTests",
      "sources" : [
        "DownloadErrorTests.swift",
        "RogersActivityTests.swift"
      ],
      "target_dependencies" : [
        "RogersBankDownloader"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RogersBankDownloader",
      "module_type" : "SwiftTarget",
      "name" : "RogersBankDownloader",
      "path" : "Sources/RogersBankDownloader",
      "product_memberships" : [
        "RogersBankDownloader"
      ],
      "sources" : [
        "DownloadError.swift",
        "RogersAccount.swift",
        "RogersActivity.swift",
        "RogersAuthenticator.swift",
        "RogersStatement.swift",
        "RogersUser.swift",
        "URLTaskHelper.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
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/10] Compiling RogersBankDownloader URLTaskHelper.swift
[4/10] Compiling RogersBankDownloader RogersAuthenticator.swift
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:77:24: warning: static property 'startURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 75 | public class RogersAuthenticator: Authenticator {
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    |                        |- warning: static property 'startURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'startURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'startURL' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:78:24: warning: static property 'authenticationURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
    |                        |- warning: static property 'authenticationURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'authenticationURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'authenticationURL' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:79:24: warning: static property 'twoFactorPreferenceURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
    |                        |- warning: static property 'twoFactorPreferenceURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'twoFactorPreferenceURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'twoFactorPreferenceURL' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
 81 |     private static let twoFactorRequiredErrorTitle = "Device Not Found"
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:80:24: warning: static property 'validateTwoFactorCodeURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
    |                        |- warning: static property 'validateTwoFactorCodeURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'validateTwoFactorCodeURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'validateTwoFactorCodeURL' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 81 |     private static let twoFactorRequiredErrorTitle = "Device Not Found"
 82 |     private static let twoFactorRequiredErrorStatus = 412
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:140:21: warning: capture of 'completion' with non-sendable type '(DownloadError?) -> Void' in a '@Sendable' closure
138 |             guard data != nil else {
139 |                 if let error {
140 |                     completion(DownloadError.httpError(error: error.localizedDescription))
    |                     |- warning: capture of 'completion' with non-sendable type '(DownloadError?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
141 |                 } else {
142 |                     completion(DownloadError.noDataReceived)
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:213:21: warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a '@Sendable' closure
211 |             guard case let .success((data, httpResponse)) = processedResponse else {
212 |                 if case let .failure(error) = processedResponse {
213 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
214 |                 }
215 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:220:21: warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a '@Sendable' closure
 73 | ///
 74 | /// Call `login` to authenticate and receive a `User` instance
 75 | public class RogersAuthenticator: Authenticator {
    |              `- note: class 'RogersAuthenticator' does not conform to the 'Sendable' protocol
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    :
218 |                 if httpResponse.statusCode == 401, let error = try? JSONDecoder().decode(ErrorMessage.self, from: data),
219 |                     error.status == Self.twoFactorRequiredErrorStatus, error.title == Self.twoFactorRequiredErrorTitle {
220 |                     self.twoFactorAuthPreferences(completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a '@Sendable' closure
221 |                 } else {
222 |                     completion(.failure(DownloadError.httpError(error: "Status code \(httpResponse.statusCode)")))
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:246:21: warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a '@Sendable' closure
244 |             guard case let .success((data, httpResponse)) = processedResponse else {
245 |                 if case let .failure(error) = processedResponse {
246 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
247 |                 }
248 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:257:40: warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a '@Sendable' closure
 73 | ///
 74 | /// Call `login` to authenticate and receive a `User` instance
 75 | public class RogersAuthenticator: Authenticator {
    |              `- note: class 'RogersAuthenticator' does not conform to the 'Sendable' protocol
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    :
255 |                 let decoder = JSONDecoder()
256 |                 let twoFactorPreferences = try decoder.decode(TwoFactorPreferences.self, from: data)
257 |                 guard let preference = self.delegate?.selectTwoFactorPreference(twoFactorPreferences.preferences) else {
    |                                        `- warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a '@Sendable' closure
258 |                     completion(.failure(DownloadError.noTwoFactorPreference))
259 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:281:21: warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a '@Sendable' closure
279 |             guard case let .success((data, httpResponse)) = processedResponse else {
280 |                 if case let .failure(error) = processedResponse {
281 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
282 |                 }
283 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:292:21: warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a '@Sendable' closure
 73 | ///
 74 | /// Call `login` to authenticate and receive a `User` instance
 75 | public class RogersAuthenticator: Authenticator {
    |              `- note: class 'RogersAuthenticator' does not conform to the 'Sendable' protocol
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    :
290 |                 let result = try JSONDecoder().decode(TwoFactorCodeGenerationResult.self, from: data)
291 |                 if result.success {
292 |                     self.loginWithTwoFactorAuthenticationCode(completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a '@Sendable' closure
293 |                 } else {
294 |                     completion(.failure(DownloadError.twoFactorAuthenticationCodeGenerationFailed))
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:315:21: warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a '@Sendable' closure
313 |             guard case let .success((data, httpResponse)) = processedResponse else {
314 |                 if case let .failure(error) = processedResponse {
315 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<any User, DownloadError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
316 |                 }
317 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:328:17: warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a '@Sendable' closure
 73 | ///
 74 | /// Call `login` to authenticate and receive a `User` instance
 75 | public class RogersAuthenticator: Authenticator {
    |              `- note: class 'RogersAuthenticator' does not conform to the 'Sendable' protocol
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    :
326 |                 decoder.dateDecodingStrategy = .formatted(Self.dateFormatter)
327 |                 let user = try decoder.decode(RogersUser.self, from: data)
328 |                 self.delegate?.saveDeviceId(self.parameters["deviceId"] ?? "")
    |                 `- warning: capture of 'self' with non-sendable type 'RogersAuthenticator' in a '@Sendable' closure
329 |                 completion(.success(user))
330 |             } catch {
[5/10] Compiling RogersBankDownloader RogersStatement.swift
[6/10] Compiling RogersBankDownloader RogersActivity.swift
[7/10] Compiling RogersBankDownloader RogersUser.swift
[8/10] Compiling RogersBankDownloader DownloadError.swift
[9/10] Emitting module RogersBankDownloader
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:77:24: warning: static property 'startURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 75 | public class RogersAuthenticator: Authenticator {
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
    |                        |- warning: static property 'startURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'startURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'startURL' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:78:24: warning: static property 'authenticationURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
    |                        |- warning: static property 'authenticationURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'authenticationURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'authenticationURL' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:79:24: warning: static property 'twoFactorPreferenceURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 77 |     private static var startURL = URL(string: "https://rbaccess.rogersbank.com/?product=ROGERSBRAND")!
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
    |                        |- warning: static property 'twoFactorPreferenceURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'twoFactorPreferenceURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'twoFactorPreferenceURL' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
 81 |     private static let twoFactorRequiredErrorTitle = "Device Not Found"
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAuthenticator.swift:80:24: warning: static property 'validateTwoFactorCodeURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 78 |     private static var authenticationURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/user")!
 79 |     private static var twoFactorPreferenceURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/twofactorpasscode/preferences/user")!
 80 |     private static var validateTwoFactorCodeURL = URL(string: "https://rbaccess.rogersbank.com/issuing/digital/authenticate/validatepasscode")!
    |                        |- warning: static property 'validateTwoFactorCodeURL' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'validateTwoFactorCodeURL' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'validateTwoFactorCodeURL' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 81 |     private static let twoFactorRequiredErrorTitle = "Device Not Found"
 82 |     private static let twoFactorRequiredErrorStatus = 412
[10/10] Compiling RogersBankDownloader RogersAccount.swift
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAccount.swift:189:21: warning: capture of 'completion' with non-sendable type '(Result<URL, DownloadError>) -> Void' in a '@Sendable' closure
187 |             guard let url else {
188 |                 if let error {
189 |                     completion(.failure(DownloadError.httpError(error: error.localizedDescription)))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<URL, DownloadError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
190 |                 } else {
191 |                     completion(.failure(DownloadError.noDataReceived))
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAccount.swift:215:21: warning: capture of 'completion' with non-sendable type '(Result<[any Statement], DownloadError>) -> Void' in a '@Sendable' closure
213 |             guard let data else {
214 |                 if let error {
215 |                     completion(.failure(DownloadError.httpError(error: error.localizedDescription)))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<[any Statement], DownloadError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
216 |                 } else {
217 |                     completion(.failure(DownloadError.noDataReceived))
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAccount.swift:260:21: warning: capture of 'completion' with non-sendable type '(Result<[any Activity], DownloadError>) -> Void' in a '@Sendable' closure
258 |             guard case let .success((data, httpResponse)) = processedResponse else {
259 |                 if case let .failure(error) = processedResponse {
260 |                     completion(.failure(error))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<[any Activity], DownloadError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
261 |                 }
262 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/RogersBankDownloader/RogersAccount.swift:266:21: warning: capture of 'self' with non-sendable type 'RogersAccount' in a '@Sendable' closure
 72 |
 73 | /// A Rogers credit card account
 74 | public struct RogersAccount: Account, Codable {
    |               `- note: consider making struct 'RogersAccount' conform to the 'Sendable' protocol
 75 |
 76 |     enum CodingKeys: String, CodingKey {
    :
264 |             guard httpResponse.statusCode == 200 else {
265 |                 if retryAttempt < 2 {
266 |                     downloadActivities(statementNumber: statementNumber, retryAttempt: retryAttempt + 1, completion: completion)
    |                     `- warning: capture of 'self' with non-sendable type 'RogersAccount' in a '@Sendable' closure
267 |                 } else {
268 |                     completion(.failure(DownloadError.httpError(error: "Status code \(httpResponse.statusCode)")))
Build complete! (4.61s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "RogersBankDownloader",
  "name" : "RogersBankDownloader",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RogersBankDownloader",
      "targets" : [
        "RogersBankDownloader"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RogersBankDownloaderTests",
      "module_type" : "SwiftTarget",
      "name" : "RogersBankDownloaderTests",
      "path" : "Tests/RogersBankDownloaderTests",
      "sources" : [
        "DownloadErrorTests.swift",
        "RogersActivityTests.swift"
      ],
      "target_dependencies" : [
        "RogersBankDownloader"
      ],
      "type" : "test"
    },
    {
      "c99name" : "RogersBankDownloader",
      "module_type" : "SwiftTarget",
      "name" : "RogersBankDownloader",
      "path" : "Sources/RogersBankDownloader",
      "product_memberships" : [
        "RogersBankDownloader"
      ],
      "sources" : [
        "DownloadError.swift",
        "RogersAccount.swift",
        "RogersActivity.swift",
        "RogersAuthenticator.swift",
        "RogersStatement.swift",
        "RogersUser.swift",
        "URLTaskHelper.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.