Build Information
Successful build of WealthsimpleDownloader, reference v2.0.2 (af3e30
), with Swift 6.0 for macOS (SPM) on 1 Dec 2024 09:26:14 UTC.
Swift 6 data race errors: 19
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 -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.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Nef10/WealthsimpleDownloader.git
Reference: v2.0.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Nef10/WealthsimpleDownloader
* tag v2.0.2 -> FETCH_HEAD
HEAD is now at af3e30a Add online bill payment type
Cloned https://github.com/Nef10/WealthsimpleDownloader.git
Revision (git rev-parse @):
af3e30a235d0311de7b37536095f8cf6470abd51
SUCCESS checkout https://github.com/Nef10/WealthsimpleDownloader.git at v2.0.2
========================================
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": "wealthsimpledownloader",
"name": "WealthsimpleDownloader",
"url": "https://github.com/Nef10/WealthsimpleDownloader.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/WealthsimpleDownloader",
"dependencies": [
]
}
]
}
Fetching https://github.com/Nef10/WealthsimpleDownloader.git
[1/1855] Fetching wealthsimpledownloader
Fetched https://github.com/Nef10/WealthsimpleDownloader.git from cache (1.12s)
Creating working copy for https://github.com/Nef10/WealthsimpleDownloader.git
Working copy of https://github.com/Nef10/WealthsimpleDownloader.git resolved at v2.0.2 (af3e30a)
warning: '.resolve-product-dependencies': dependency 'wealthsimpledownloader' 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/Nef10/WealthsimpleDownloader.git
{
"dependencies" : [
],
"manifest_display_name" : "WealthsimpleDownloader",
"name" : "WealthsimpleDownloader",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Wealthsimple",
"targets" : [
"Wealthsimple"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "WealthsimpleTests",
"module_type" : "SwiftTarget",
"name" : "WealthsimpleTests",
"path" : "Tests/WealthsimpleTests",
"sources" : [
"Extensions/StringCamelCaseTests.swift",
"WealthsimpleDownloaderTests.swift"
],
"target_dependencies" : [
"Wealthsimple"
],
"type" : "test"
},
{
"c99name" : "Wealthsimple",
"module_type" : "SwiftTarget",
"name" : "Wealthsimple",
"path" : "Sources/Wealthsimple",
"product_memberships" : [
"Wealthsimple"
],
"sources" : [
"Extensions/String+CamelCase.swift",
"Token.swift",
"TransactionError.swift",
"WealthsimpleAccount.swift",
"WealthsimpleAsset.swift",
"WealthsimpleDownloader.swift",
"WealthsimplePosition.swift",
"WealthsimpleTransaction.swift"
],
"type" : "library"
}
],
"tools_version" : "5.2"
}
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 -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--7754E27361AE5C74.txt
[3/11] Compiling Wealthsimple WealthsimpleDownloader.swift
[4/11] Compiling Wealthsimple WealthsimplePosition.swift
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:22:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
20 | case invalidJson(error: String)
21 | /// When the received JSON does not have the right type
22 | case invalidJsonType(json: Any)
| `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 | case invalidJsonType(json: Any)
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
25 | /// When the received JSON does have an unexpected value
26 | case invalidResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:26:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
24 | case missingResultParamenter(json: [String: Any])
25 | /// When the received JSON does have an unexpected value
26 | case invalidResultParamenter(json: [String: Any])
| `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
27 | /// An error with the assets occured
28 | case assetError(_ error: AssetError)
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:53:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
51 | private static let baseUrl = URLComponents(string: "https://api.production.wealthsimple.com/v1/positions")!
52 |
53 | private static var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'dateFormatter' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | var dateFormatter = DateFormatter()
55 | dateFormatter.dateFormat = "yyyy-MM-dd"
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:112:94: warning: capture of 'completion' with non-sendable type '(Result<[any Position], PositionError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
110 | case let .success(request):
111 | let task = session.dataTask(with: request) { data, response, error in
112 | handleResponse(data: data, response: response, error: error, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(Result<[any Position], PositionError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
113 | }
114 | task.resume()
[5/11] Compiling Wealthsimple TransactionError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:19:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
17 | case invalidJson(error: String)
18 | /// When the received JSON does not have the right type
19 | case invalidJsonType(json: Any)
| `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
20 | /// When the received JSON does not have all expected values
21 | case missingResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:21:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
19 | case invalidJsonType(json: Any)
20 | /// When the received JSON does not have all expected values
21 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 | /// When the received JSON does have an unexpected value
23 | case invalidResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:23:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
21 | case missingResultParamenter(json: [String: Any])
22 | /// When the received JSON does have an unexpected value
23 | case invalidResultParamenter(json: [String: Any])
| `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
24 | /// An error with the token occured
25 | case tokenError(_ error: TokenError)
[6/11] Compiling Wealthsimple WealthsimpleAccount.swift
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:22:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
20 | case invalidJson(error: String)
21 | /// When the received JSON does not have the right type
22 | case invalidJsonType(json: Any)
| `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 | case invalidJsonType(json: Any)
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
25 | /// When the received JSON does have an unexpected value
26 | case invalidResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:26:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
24 | case missingResultParamenter(json: [String: Any])
25 | /// When the received JSON does have an unexpected value
26 | case invalidResultParamenter(json: [String: Any])
| `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
27 | /// An error with the token occured
28 | case tokenError(_ error: TokenError)
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:107:94: warning: capture of 'completion' with non-sendable type '(Result<[any Account], AccountError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
105 | case let .success(request):
106 | let task = session.dataTask(with: request) { data, response, error in
107 | handleResponse(data: data, response: response, error: error, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(Result<[any Account], AccountError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
108 | }
109 | task.resume()
[7/11] Compiling Wealthsimple WealthsimpleAsset.swift
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAsset.swift:13:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
11 | public enum AssetError: Error {
12 | /// When the received JSON does not have all expected values
13 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
14 | /// When the received JSON does have an unexpected value
15 | case invalidResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAsset.swift:15:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | case missingResultParamenter(json: [String: Any])
14 | /// When the received JSON does have an unexpected value
15 | case invalidResultParamenter(json: [String: Any])
| `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
16 | }
17 |
[8/11] Compiling Wealthsimple WealthsimpleTransaction.swift
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:119:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
117 | private static let baseUrl = URLComponents(string: "https://api.production.wealthsimple.com/v1/transactions")!
118 |
119 | private static var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'dateFormatter' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 | var dateFormatter = DateFormatter()
121 | dateFormatter.dateFormat = "yyyy-MM-dd"
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:208:94: warning: capture of 'completion' with non-sendable type '(Result<[any Transaction], TransactionError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 | case let .success(request):
207 | let task = session.dataTask(with: request) { data, response, error in
208 | handleResponse(data: data, response: response, error: error, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(Result<[any Transaction], TransactionError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | }
210 | task.resume()
[9/11] Compiling Wealthsimple Token.swift
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:20:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
18 | case invalidJson(error: String)
19 | /// When the received JSON does not have the right type
20 | case invalidJsonType(json: Any)
| `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
21 | /// When the paramters could not be converted to JSON
22 | case invalidParameters(parameters: [String: String])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 | case invalidParameters(parameters: [String: String])
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
25 | /// When an HTTP error occurs
26 | case httpError(error: String)
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:37:24: warning: static property 'url' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 | private static let credentialStorageKeyExpiry = "expiry"
36 |
37 | private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
| |- warning: static property 'url' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'url' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'url' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:38:24: warning: static property 'testUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 |
37 | private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
38 | private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
| |- warning: static property 'testUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'testUrl' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'testUrl' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:39:24: warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 | private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
38 | private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
| |- warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clientId' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'clientId' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
41 |
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:40:24: warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
| |- warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'scope' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'scope' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 |
42 | private let accessToken: String
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:121:98: warning: capture of 'credentialStorage' with non-sendable type 'any CredentialStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
119 | }
120 | let task = session.uploadTask(with: request, from: jsonData) { data, response, error in
121 | handleTokenResponse(data: data, response: response, error: error, credentialStorage: credentialStorage, completion: completion)
| `- warning: capture of 'credentialStorage' with non-sendable type 'any CredentialStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 | }
123 | task.resume()
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleDownloader.swift:13:17: note: protocol 'CredentialStorage' does not conform to the 'Sendable' protocol
11 | ///
12 | /// Can for example be implemented using Keychain on Apple devices
13 | public protocol CredentialStorage {
| `- note: protocol 'CredentialStorage' does not conform to the 'Sendable' protocol
14 |
15 | /// Save a value to the store
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:121:129: warning: capture of 'completion' with non-sendable type '(Result<Token, TokenError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
119 | }
120 | let task = session.uploadTask(with: request, from: jsonData) { data, response, error in
121 | handleTokenResponse(data: data, response: response, error: error, credentialStorage: credentialStorage, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(Result<Token, TokenError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
122 | }
123 | task.resume()
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:180:25: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
178 | let task = session.dataTask(with: request) { _, response, error in
179 | guard error == nil else {
180 | completion(false)
| |- warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
181 | return
182 | }
[10/11] Compiling Wealthsimple String+CamelCase.swift
[11/11] Emitting module Wealthsimple
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:20:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
18 | case invalidJson(error: String)
19 | /// When the received JSON does not have the right type
20 | case invalidJsonType(json: Any)
| `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
21 | /// When the paramters could not be converted to JSON
22 | case invalidParameters(parameters: [String: String])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 | case invalidParameters(parameters: [String: String])
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TokenError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
25 | /// When an HTTP error occurs
26 | case httpError(error: String)
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:37:24: warning: static property 'url' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 | private static let credentialStorageKeyExpiry = "expiry"
36 |
37 | private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
| |- warning: static property 'url' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'url' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'url' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:38:24: warning: static property 'testUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 |
37 | private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
38 | private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
| |- warning: static property 'testUrl' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'testUrl' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'testUrl' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:39:24: warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 | private static var url = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token")!
38 | private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
| |- warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clientId' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'clientId' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
41 |
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/Token.swift:40:24: warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | private static var testUrl = URL(string: "https://api.production.wealthsimple.com/v1/oauth/token/info")!
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
| |- warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'scope' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'scope' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 |
42 | private let accessToken: String
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:19:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
17 | case invalidJson(error: String)
18 | /// When the received JSON does not have the right type
19 | case invalidJsonType(json: Any)
| `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
20 | /// When the received JSON does not have all expected values
21 | case missingResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:21:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
19 | case invalidJsonType(json: Any)
20 | /// When the received JSON does not have all expected values
21 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 | /// When the received JSON does have an unexpected value
23 | case invalidResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/TransactionError.swift:23:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
21 | case missingResultParamenter(json: [String: Any])
22 | /// When the received JSON does have an unexpected value
23 | case invalidResultParamenter(json: [String: Any])
| `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'TransactionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
24 | /// An error with the token occured
25 | case tokenError(_ error: TokenError)
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:22:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
20 | case invalidJson(error: String)
21 | /// When the received JSON does not have the right type
22 | case invalidJsonType(json: Any)
| `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 | case invalidJsonType(json: Any)
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
25 | /// When the received JSON does have an unexpected value
26 | case invalidResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:26:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
24 | case missingResultParamenter(json: [String: Any])
25 | /// When the received JSON does have an unexpected value
26 | case invalidResultParamenter(json: [String: Any])
| `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AccountError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
27 | /// An error with the token occured
28 | case tokenError(_ error: TokenError)
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAsset.swift:13:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
11 | public enum AssetError: Error {
12 | /// When the received JSON does not have all expected values
13 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
14 | /// When the received JSON does have an unexpected value
15 | case invalidResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAsset.swift:15:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | case missingResultParamenter(json: [String: Any])
14 | /// When the received JSON does have an unexpected value
15 | case invalidResultParamenter(json: [String: Any])
| `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'AssetError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
16 | }
17 |
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:22:10: warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
20 | case invalidJson(error: String)
21 | /// When the received JSON does not have the right type
22 | case invalidJsonType(json: Any)
| `- warning: associated value 'invalidJsonType(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:24:10: warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
22 | case invalidJsonType(json: Any)
23 | /// When the received JSON does not have all expected values
24 | case missingResultParamenter(json: [String: Any])
| `- warning: associated value 'missingResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
25 | /// When the received JSON does have an unexpected value
26 | case invalidResultParamenter(json: [String: Any])
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:26:10: warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
24 | case missingResultParamenter(json: [String: Any])
25 | /// When the received JSON does have an unexpected value
26 | case invalidResultParamenter(json: [String: Any])
| `- warning: associated value 'invalidResultParamenter(json:)' of 'Sendable'-conforming enum 'PositionError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
27 | /// An error with the assets occured
28 | case assetError(_ error: AssetError)
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:53:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
51 | private static let baseUrl = URLComponents(string: "https://api.production.wealthsimple.com/v1/positions")!
52 |
53 | private static var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'dateFormatter' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 | var dateFormatter = DateFormatter()
55 | dateFormatter.dateFormat = "yyyy-MM-dd"
/Users/admin/builder/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:119:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
117 | private static let baseUrl = URLComponents(string: "https://api.production.wealthsimple.com/v1/transactions")!
118 |
119 | private static var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'dateFormatter' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 | var dateFormatter = DateFormatter()
121 | dateFormatter.dateFormat = "yyyy-MM-dd"
Build complete! (11.06s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "WealthsimpleDownloader",
"name" : "WealthsimpleDownloader",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Wealthsimple",
"targets" : [
"Wealthsimple"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "WealthsimpleTests",
"module_type" : "SwiftTarget",
"name" : "WealthsimpleTests",
"path" : "Tests/WealthsimpleTests",
"sources" : [
"Extensions/StringCamelCaseTests.swift",
"WealthsimpleDownloaderTests.swift"
],
"target_dependencies" : [
"Wealthsimple"
],
"type" : "test"
},
{
"c99name" : "Wealthsimple",
"module_type" : "SwiftTarget",
"name" : "Wealthsimple",
"path" : "Sources/Wealthsimple",
"product_memberships" : [
"Wealthsimple"
],
"sources" : [
"Extensions/String+CamelCase.swift",
"Token.swift",
"TransactionError.swift",
"WealthsimpleAccount.swift",
"WealthsimpleAsset.swift",
"WealthsimpleDownloader.swift",
"WealthsimplePosition.swift",
"WealthsimpleTransaction.swift"
],
"type" : "library"
}
],
"tools_version" : "5.2"
}
Done.