Build Information
Successful build of Shallows with Swift 6.0 for macOS (SPM).
Swift 6 data race errors: 7
Build Command
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dreymonde/Shallows.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dreymonde/Shallows
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 3a9d673 add asyncMapKeys operator
Cloned https://github.com/dreymonde/Shallows.git
Revision (git rev-parse @):
3a9d673a7c01d6fd4fbaa5cd592648dbae42d4a7
SUCCESS checkout https://github.com/dreymonde/Shallows.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $workDir
https://github.com/dreymonde/Shallows.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/6] Write sources
[1/6] Write swift-version-6F35C1178C84523A.txt
[3/20] Compiling Shallows WriteOnlyStorage.swift
[4/21] Compiling Shallows SyncStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:5:32: warning: capture of 'function' with non-sendable type '(In) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
3 | internal func dispatched<In>(to queue: DispatchQueue, _ function: @escaping (In) -> ()) -> (In) -> () {
4 | return { input in
5 | queue.async(execute: { function(input) })
| |- warning: capture of 'function' with non-sendable type '(In) -> ()' 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'
6 | }
7 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:5:41: warning: capture of 'input' with non-sendable type 'In' in a `@Sendable` closure; this is an error in the Swift 6 language mode
1 | import Dispatch
2 |
3 | internal func dispatched<In>(to queue: DispatchQueue, _ function: @escaping (In) -> ()) -> (In) -> () {
| `- note: consider making generic parameter 'In' conform to the 'Sendable' protocol
4 | return { input in
5 | queue.async(execute: { function(input) })
| `- warning: capture of 'input' with non-sendable type 'In' in a `@Sendable` closure; this is an error in the Swift 6 language mode
6 | }
7 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:11:32: warning: capture of 'function' with non-sendable type '(In1, In2) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
9 | internal func dispatched<In1, In2>(to queue: DispatchQueue, _ function: @escaping (In1, In2) -> ()) -> (In1, In2) -> () {
10 | return { in1, in2 in
11 | queue.async(execute: { function(in1, in2) })
| |- warning: capture of 'function' with non-sendable type '(In1, In2) -> ()' 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'
12 | }
13 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:11:41: warning: capture of 'in1' with non-sendable type 'In1' in a `@Sendable` closure; this is an error in the Swift 6 language mode
7 | }
8 |
9 | internal func dispatched<In1, In2>(to queue: DispatchQueue, _ function: @escaping (In1, In2) -> ()) -> (In1, In2) -> () {
| `- note: consider making generic parameter 'In1' conform to the 'Sendable' protocol
10 | return { in1, in2 in
11 | queue.async(execute: { function(in1, in2) })
| `- warning: capture of 'in1' with non-sendable type 'In1' in a `@Sendable` closure; this is an error in the Swift 6 language mode
12 | }
13 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:11:46: warning: capture of 'in2' with non-sendable type 'In2' in a `@Sendable` closure; this is an error in the Swift 6 language mode
7 | }
8 |
9 | internal func dispatched<In1, In2>(to queue: DispatchQueue, _ function: @escaping (In1, In2) -> ()) -> (In1, In2) -> () {
| `- note: consider making generic parameter 'In2' conform to the 'Sendable' protocol
10 | return { in1, in2 in
11 | queue.async(execute: { function(in1, in2) })
| `- warning: capture of 'in2' with non-sendable type 'In2' in a `@Sendable` closure; this is an error in the Swift 6 language mode
12 | }
13 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:17:32: warning: capture of 'function' with non-sendable type '(In1, In2, In3) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
15 | internal func dispatched<In1, In2, In3>(to queue: DispatchQueue, _ function: @escaping (In1, In2, In3) -> ()) -> (In1, In2, In3) -> () {
16 | return { in1, in2, in3 in
17 | queue.async(execute: { function(in1, in2, in3) })
| |- warning: capture of 'function' with non-sendable type '(In1, In2, In3) -> ()' 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'
18 | }
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:17:41: warning: capture of 'in1' with non-sendable type 'In1' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 | }
14 |
15 | internal func dispatched<In1, In2, In3>(to queue: DispatchQueue, _ function: @escaping (In1, In2, In3) -> ()) -> (In1, In2, In3) -> () {
| `- note: consider making generic parameter 'In1' conform to the 'Sendable' protocol
16 | return { in1, in2, in3 in
17 | queue.async(execute: { function(in1, in2, in3) })
| `- warning: capture of 'in1' with non-sendable type 'In1' in a `@Sendable` closure; this is an error in the Swift 6 language mode
18 | }
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:17:46: warning: capture of 'in2' with non-sendable type 'In2' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 | }
14 |
15 | internal func dispatched<In1, In2, In3>(to queue: DispatchQueue, _ function: @escaping (In1, In2, In3) -> ()) -> (In1, In2, In3) -> () {
| `- note: consider making generic parameter 'In2' conform to the 'Sendable' protocol
16 | return { in1, in2, in3 in
17 | queue.async(execute: { function(in1, in2, in3) })
| `- warning: capture of 'in2' with non-sendable type 'In2' in a `@Sendable` closure; this is an error in the Swift 6 language mode
18 | }
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/SyncStorage.swift:17:51: warning: capture of 'in3' with non-sendable type 'In3' in a `@Sendable` closure; this is an error in the Swift 6 language mode
13 | }
14 |
15 | internal func dispatched<In1, In2, In3>(to queue: DispatchQueue, _ function: @escaping (In1, In2, In3) -> ()) -> (In1, In2, In3) -> () {
| `- note: consider making generic parameter 'In3' conform to the 'Sendable' protocol
16 | return { in1, in2, in3 in
17 | queue.async(execute: { function(in1, in2, in3) })
| `- warning: capture of 'in3' with non-sendable type 'In3' in a `@Sendable` closure; this is an error in the Swift 6 language mode
18 | }
19 | }
[5/21] Compiling Shallows Storage.swift
[6/21] Compiling Shallows Zip.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Zip.swift:57:13: warning: capture of 'self' with non-sendable type 'CompletionContainer<Left, Right>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 | }
42 |
43 | fileprivate final class CompletionContainer<Left, Right> {
| `- note: generic class 'CompletionContainer' does not conform to the 'Sendable' protocol
44 |
45 | private var left: Left?
:
55 | fileprivate func completeLeft(with left: Left) {
56 | queue.async {
57 | self.left = left
| `- warning: capture of 'self' with non-sendable type 'CompletionContainer<Left, Right>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 | self.check()
59 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Zip.swift:57:25: warning: capture of 'left' with non-sendable type 'Left' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 | }
42 |
43 | fileprivate final class CompletionContainer<Left, Right> {
| `- note: consider making generic parameter 'Left' conform to the 'Sendable' protocol
44 |
45 | private var left: Left?
:
55 | fileprivate func completeLeft(with left: Left) {
56 | queue.async {
57 | self.left = left
| `- warning: capture of 'left' with non-sendable type 'Left' in a `@Sendable` closure; this is an error in the Swift 6 language mode
58 | self.check()
59 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Zip.swift:64:13: warning: capture of 'self' with non-sendable type 'CompletionContainer<Left, Right>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 | }
42 |
43 | fileprivate final class CompletionContainer<Left, Right> {
| `- note: generic class 'CompletionContainer' does not conform to the 'Sendable' protocol
44 |
45 | private var left: Left?
:
62 | fileprivate func completeRight(with right: Right) {
63 | queue.async {
64 | self.right = right
| `- warning: capture of 'self' with non-sendable type 'CompletionContainer<Left, Right>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
65 | self.check()
66 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Zip.swift:64:26: warning: capture of 'right' with non-sendable type 'Right' in a `@Sendable` closure; this is an error in the Swift 6 language mode
41 | }
42 |
43 | fileprivate final class CompletionContainer<Left, Right> {
| `- note: consider making generic parameter 'Right' conform to the 'Sendable' protocol
44 |
45 | private var left: Left?
:
62 | fileprivate func completeRight(with right: Right) {
63 | queue.async {
64 | self.right = right
| `- warning: capture of 'right' with non-sendable type 'Right' in a `@Sendable` closure; this is an error in the Swift 6 language mode
65 | self.check()
66 | }
[7/21] Compiling Shallows ShallowsResult.swift
[8/21] Compiling Shallows Shallows.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Shallows.swift:83:23: warning: static property 'isEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
81 | public enum ShallowsLog {
82 |
83 | public static var isEnabled = false
| |- warning: static property 'isEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isEnabled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'isEnabled' 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
84 |
85 | }
[9/21] Compiling Shallows Filename.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
56 |
57 | @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
| |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'base64' 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
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:59:27: warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
57 | @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
| |- warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'base64URL' 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
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
61 | public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:60:27: warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
| |- warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'noEncoding' 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
61 | public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
62 | return Encoder(encode: encode)
[10/21] Compiling Shallows MemoryStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
56 |
57 | @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
| |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'base64' 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
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:59:27: warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
57 | @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
| |- warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'base64URL' 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
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
61 | public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:60:27: warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
| |- warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'noEncoding' 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
61 | public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
62 | return Encoder(encode: encode)
[11/21] Compiling Shallows NSCacheStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/NSCacheStorage.swift:6:14: warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public final class NSCacheStorage<Key : NSObject, Value : AnyObject> : StorageProtocol {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
4 |
5 | public enum Error : Swift.Error {
6 | case noValue(Key)
| `- warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
7 | }
8 |
[12/21] Compiling Shallows ReadOnlyStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/NSCacheStorage.swift:6:14: warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public final class NSCacheStorage<Key : NSObject, Value : AnyObject> : StorageProtocol {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
4 |
5 | public enum Error : Swift.Error {
6 | case noValue(Key)
| `- warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
7 | }
8 |
[13/21] Compiling Shallows Async.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:79:54: warning: capture of 'transform' with non-sendable type '(Self.Value) async throws -> OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | Task {
78 | do {
79 | let newValue = try await transform(value)
| |- warning: capture of 'transform' with non-sendable type '(Self.Value) async throws -> OtherValue' 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'
80 | completion(.success(newValue))
81 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:79:64: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | Task {
78 | do {
79 | let newValue = try await transform(value)
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
80 | completion(.success(newValue))
81 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:80:29: warning: capture of 'completion' with non-sendable type '(Result<OtherValue, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
78 | do {
79 | let newValue = try await transform(value)
80 | completion(.success(newValue))
| |- warning: capture of 'completion' with non-sendable type '(Result<OtherValue, any Error>) -> ()' 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'
81 | } catch {
82 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:99:44: warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
97 | Task {
98 | do {
99 | let newKey = try await transform(key)
| |- warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' 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'
100 | self.retrieve(forKey: newKey, completion: completion)
101 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:99:54: warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
90 | }
91 |
92 | public func asyncMapKeys<OtherKey>(
| `- note: consider making generic parameter 'OtherKey' conform to the 'Sendable' protocol
93 | to type: OtherKey.Type = OtherKey.self,
94 | _ transform: @escaping (OtherKey) async throws -> Key)
:
97 | Task {
98 | do {
99 | let newKey = try await transform(key)
| `- warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 | self.retrieve(forKey: newKey, completion: completion)
101 | } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:100:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | do {
99 | let newKey = try await transform(key)
100 | self.retrieve(forKey: newKey, completion: completion)
| `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
101 | } catch {
102 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:100:63: warning: capture of 'completion' with non-sendable type '(Result<Self.Value, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | do {
99 | let newKey = try await transform(key)
100 | self.retrieve(forKey: newKey, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(Result<Self.Value, any Error>) -> ()' 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'
101 | } catch {
102 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:131:46: warning: capture of 'transform' with non-sendable type '(OtherValue) async throws -> Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
129 | Task {
130 | do {
131 | let newValue = try await transform(value)
| |- warning: capture of 'transform' with non-sendable type '(OtherValue) async throws -> Self.Value' 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'
132 | self.set(newValue, forKey: key, completion: completion)
133 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:131:56: warning: capture of 'value' with non-sendable type 'OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 | @available(tvOS 13.0.0, *)
123 | extension WriteOnlyStorageProtocol {
124 | public func asyncMapValues<OtherValue>(
| `- note: consider making generic parameter 'OtherValue' conform to the 'Sendable' protocol
125 | to type: OtherValue.Type = OtherValue.self,
126 | _ transform: @escaping (OtherValue) async throws -> Value
:
129 | Task {
130 | do {
131 | let newValue = try await transform(value)
| `- warning: capture of 'value' with non-sendable type 'OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | self.set(newValue, forKey: key, completion: completion)
133 | } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let newValue = try await transform(value)
132 | self.set(newValue, forKey: key, completion: completion)
| `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | } catch {
134 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:48: warning: capture of 'key' with non-sendable type 'Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let newValue = try await transform(value)
132 | self.set(newValue, forKey: key, completion: completion)
| `- warning: capture of 'key' with non-sendable type 'Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | } catch {
134 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:65: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let newValue = try await transform(value)
132 | self.set(newValue, forKey: key, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') 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'
133 | } catch {
134 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:147:44: warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
145 | Task {
146 | do {
147 | let newKey = try await transform(key)
| |- warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' 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'
148 | self.set(value, forKey: newKey, completion: completion)
149 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:147:54: warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
138 | }
139 |
140 | public func asyncMapKeys<OtherKey>(
| `- note: consider making generic parameter 'OtherKey' conform to the 'Sendable' protocol
141 | to type: OtherKey.Type = OtherKey.self,
142 | _ transform: @escaping (OtherKey) async throws -> Key)
:
145 | Task {
146 | do {
147 | let newKey = try await transform(key)
| `- warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 | self.set(value, forKey: newKey, completion: completion)
149 | } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 | do {
147 | let newKey = try await transform(key)
148 | self.set(value, forKey: newKey, completion: completion)
| `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 | } catch {
150 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:30: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 | do {
147 | let newKey = try await transform(key)
148 | self.set(value, forKey: newKey, completion: completion)
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 | } catch {
150 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:65: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 | do {
147 | let newKey = try await transform(key)
148 | self.set(value, forKey: newKey, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') 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'
149 | } catch {
150 | completion(.failure(error))
[14/21] Compiling Shallows Composition.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:79:54: warning: capture of 'transform' with non-sendable type '(Self.Value) async throws -> OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | Task {
78 | do {
79 | let newValue = try await transform(value)
| |- warning: capture of 'transform' with non-sendable type '(Self.Value) async throws -> OtherValue' 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'
80 | completion(.success(newValue))
81 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:79:64: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | Task {
78 | do {
79 | let newValue = try await transform(value)
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
80 | completion(.success(newValue))
81 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:80:29: warning: capture of 'completion' with non-sendable type '(Result<OtherValue, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
78 | do {
79 | let newValue = try await transform(value)
80 | completion(.success(newValue))
| |- warning: capture of 'completion' with non-sendable type '(Result<OtherValue, any Error>) -> ()' 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'
81 | } catch {
82 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:99:44: warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
97 | Task {
98 | do {
99 | let newKey = try await transform(key)
| |- warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' 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'
100 | self.retrieve(forKey: newKey, completion: completion)
101 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:99:54: warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
90 | }
91 |
92 | public func asyncMapKeys<OtherKey>(
| `- note: consider making generic parameter 'OtherKey' conform to the 'Sendable' protocol
93 | to type: OtherKey.Type = OtherKey.self,
94 | _ transform: @escaping (OtherKey) async throws -> Key)
:
97 | Task {
98 | do {
99 | let newKey = try await transform(key)
| `- warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
100 | self.retrieve(forKey: newKey, completion: completion)
101 | } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:100:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | do {
99 | let newKey = try await transform(key)
100 | self.retrieve(forKey: newKey, completion: completion)
| `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
101 | } catch {
102 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:100:63: warning: capture of 'completion' with non-sendable type '(Result<Self.Value, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
98 | do {
99 | let newKey = try await transform(key)
100 | self.retrieve(forKey: newKey, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(Result<Self.Value, any Error>) -> ()' 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'
101 | } catch {
102 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:131:46: warning: capture of 'transform' with non-sendable type '(OtherValue) async throws -> Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
129 | Task {
130 | do {
131 | let newValue = try await transform(value)
| |- warning: capture of 'transform' with non-sendable type '(OtherValue) async throws -> Self.Value' 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'
132 | self.set(newValue, forKey: key, completion: completion)
133 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:131:56: warning: capture of 'value' with non-sendable type 'OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
122 | @available(tvOS 13.0.0, *)
123 | extension WriteOnlyStorageProtocol {
124 | public func asyncMapValues<OtherValue>(
| `- note: consider making generic parameter 'OtherValue' conform to the 'Sendable' protocol
125 | to type: OtherValue.Type = OtherValue.self,
126 | _ transform: @escaping (OtherValue) async throws -> Value
:
129 | Task {
130 | do {
131 | let newValue = try await transform(value)
| `- warning: capture of 'value' with non-sendable type 'OtherValue' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | self.set(newValue, forKey: key, completion: completion)
133 | } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let newValue = try await transform(value)
132 | self.set(newValue, forKey: key, completion: completion)
| `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | } catch {
134 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:48: warning: capture of 'key' with non-sendable type 'Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let newValue = try await transform(value)
132 | self.set(newValue, forKey: key, completion: completion)
| `- warning: capture of 'key' with non-sendable type 'Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | } catch {
134 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:132:65: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let newValue = try await transform(value)
132 | self.set(newValue, forKey: key, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') 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'
133 | } catch {
134 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:147:44: warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' in a `@Sendable` closure; this is an error in the Swift 6 language mode
145 | Task {
146 | do {
147 | let newKey = try await transform(key)
| |- warning: capture of 'transform' with non-sendable type '(OtherKey) async throws -> Self.Key' 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'
148 | self.set(value, forKey: newKey, completion: completion)
149 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:147:54: warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
138 | }
139 |
140 | public func asyncMapKeys<OtherKey>(
| `- note: consider making generic parameter 'OtherKey' conform to the 'Sendable' protocol
141 | to type: OtherKey.Type = OtherKey.self,
142 | _ transform: @escaping (OtherKey) async throws -> Key)
:
145 | Task {
146 | do {
147 | let newKey = try await transform(key)
| `- warning: capture of 'key' with non-sendable type 'OtherKey' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 | self.set(value, forKey: newKey, completion: completion)
149 | } catch {
<unknown>:0: note: consider making generic parameter 'Self' conform to the 'Sendable' protocol
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:21: warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 | do {
147 | let newKey = try await transform(key)
148 | self.set(value, forKey: newKey, completion: completion)
| `- warning: capture of 'self' with non-sendable type 'Self' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 | } catch {
150 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:30: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 | do {
147 | let newKey = try await transform(key)
148 | self.set(value, forKey: newKey, completion: completion)
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 | } catch {
150 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Async.swift:148:65: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
146 | do {
147 | let newKey = try await transform(key)
148 | self.set(value, forKey: newKey, completion: completion)
| |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') 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'
149 | } catch {
150 | completion(.failure(error))
[15/21] Emitting module Shallows
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskExtensions.swift:61:31: warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
59 |
60 | public struct DecodingError<T>: Error {
61 | @StringPrinted public var originalData: Data
| `- warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
62 | public var rawError: Error
63 | }
64 |
65 | @propertyWrapper
66 | public struct StringPrinted: CustomStringConvertible {
| `- note: consider making struct 'StringPrinted' conform to the 'Sendable' protocol
67 | public var wrappedValue: Data
68 |
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:162:23: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
87 | }
88 |
89 | public final class DiskStorage : StorageProtocol {
| `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
90 |
91 | public var storageName: String {
:
160 | extension DiskStorage {
161 |
162 | public static let main = DiskStorage(creatingDirectories: true)
| |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'main' 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
163 |
164 | public static func folder(_ folderName: String,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:24:54: warning: 'base64' is deprecated: for any new storages, please use .base64URL
22 | public init(folderURL: URL,
23 | diskStorage: Storage<URL, Data> = DiskStorage.main.asStorage(),
24 | filenameEncoder: Filename.Encoder = .base64) {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
25 | self.diskStorage = diskStorage
26 | self.folderURL = folderURL
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
56 |
57 | @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
| |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'base64' 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
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:167:68: warning: 'base64' is deprecated: for any new storages, please use .base64URL
165 | in directory: FileManager.SearchPathDirectory,
166 | domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
167 | filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
168 | return DiskStorage.main.folder(folderName, in: directory, domainMask: domainMask, filenameEncoder: filenameEncoder)
169 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:174:61: warning: 'base64' is deprecated: for any new storages, please use .base64URL
172 | in directory: FileManager.SearchPathDirectory,
173 | domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
174 | filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
175 | return DiskFolderStorage.inDirectory(
176 | directory,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:59:27: warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
57 | @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
| |- warning: static property 'base64URL' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'base64URL' 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
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
61 | public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:60:27: warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
| |- warning: static property 'noEncoding' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'noEncoding' 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
61 | public static func custom(_ encode: @escaping (Filename) -> String) -> Encoder {
62 | return Encoder(encode: encode)
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/NSCacheStorage.swift:6:14: warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public final class NSCacheStorage<Key : NSObject, Value : AnyObject> : StorageProtocol {
| `- note: consider making generic parameter 'Key' conform to the 'Sendable' protocol
4 |
5 | public enum Error : Swift.Error {
6 | case noValue(Key)
| `- warning: associated value 'noValue' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Key'; this is an error in the Swift 6 language mode
7 | }
8 |
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/Shallows.swift:83:23: warning: static property 'isEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
81 | public enum ShallowsLog {
82 |
83 | public static var isEnabled = false
| |- warning: static property 'isEnabled' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'isEnabled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'isEnabled' 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
84 |
85 | }
[16/21] Compiling Shallows DiskExtensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskExtensions.swift:61:31: warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
59 |
60 | public struct DecodingError<T>: Error {
61 | @StringPrinted public var originalData: Data
| `- warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
62 | public var rawError: Error
63 | }
64 |
65 | @propertyWrapper
66 | public struct StringPrinted: CustomStringConvertible {
| `- note: consider making struct 'StringPrinted' conform to the 'Sendable' protocol
67 | public var wrappedValue: Data
68 |
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:162:23: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
87 | }
88 |
89 | public final class DiskStorage : StorageProtocol {
| `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
90 |
91 | public var storageName: String {
:
160 | extension DiskStorage {
161 |
162 | public static let main = DiskStorage(creatingDirectories: true)
| |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'main' 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
163 |
164 | public static func folder(_ folderName: String,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:24:54: warning: 'base64' is deprecated: for any new storages, please use .base64URL
22 | public init(folderURL: URL,
23 | diskStorage: Storage<URL, Data> = DiskStorage.main.asStorage(),
24 | filenameEncoder: Filename.Encoder = .base64) {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
25 | self.diskStorage = diskStorage
26 | self.folderURL = folderURL
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
56 |
57 | @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
| |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'base64' 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
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:167:68: warning: 'base64' is deprecated: for any new storages, please use .base64URL
165 | in directory: FileManager.SearchPathDirectory,
166 | domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
167 | filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
168 | return DiskStorage.main.folder(folderName, in: directory, domainMask: domainMask, filenameEncoder: filenameEncoder)
169 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:174:61: warning: 'base64' is deprecated: for any new storages, please use .base64URL
172 | in directory: FileManager.SearchPathDirectory,
173 | domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
174 | filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
175 | return DiskFolderStorage.inDirectory(
176 | directory,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:108:17: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Data>) -> ()' (aka '(Result<Data, any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
106 | do {
107 | let data = try Data.init(contentsOf: key)
108 | completion(succeed(with: data))
| |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Data>) -> ()' (aka '(Result<Data, any Error>) -> ()') 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'
109 | } catch {
110 | completion(fail(with: error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:123:21: warning: capture of 'self' with non-sendable type 'DiskStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
87 | }
88 |
89 | public final class DiskStorage : StorageProtocol {
| `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
90 |
91 | public var storageName: String {
:
121 | queue.async {
122 | do {
123 | try self.createDirectoryURLIfNotExisting(for: key)
| `- warning: capture of 'self' with non-sendable type 'DiskStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 | let path = key.path
125 | if self.fileManager.createFile(atPath: path,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:128:21: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
126 | contents: value,
127 | attributes: nil) {
128 | completion(.success)
| |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') 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'
129 | } else {
130 | completion(fail(with: Error.cantCreateFile))
[17/21] Compiling Shallows DiskStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskExtensions.swift:61:31: warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
59 |
60 | public struct DecodingError<T>: Error {
61 | @StringPrinted public var originalData: Data
| `- warning: stored property '_originalData' of 'Sendable'-conforming generic struct 'DecodingError' has non-sendable type 'StringPrinted'; this is an error in the Swift 6 language mode
62 | public var rawError: Error
63 | }
64 |
65 | @propertyWrapper
66 | public struct StringPrinted: CustomStringConvertible {
| `- note: consider making struct 'StringPrinted' conform to the 'Sendable' protocol
67 | public var wrappedValue: Data
68 |
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:162:23: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
87 | }
88 |
89 | public final class DiskStorage : StorageProtocol {
| `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
90 |
91 | public var storageName: String {
:
160 | extension DiskStorage {
161 |
162 | public static let main = DiskStorage(creatingDirectories: true)
| |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'DiskStorage' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'main' 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
163 |
164 | public static func folder(_ folderName: String,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:24:54: warning: 'base64' is deprecated: for any new storages, please use .base64URL
22 | public init(folderURL: URL,
23 | diskStorage: Storage<URL, Data> = DiskStorage.main.asStorage(),
24 | filenameEncoder: Filename.Encoder = .base64) {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
25 | self.diskStorage = diskStorage
26 | self.folderURL = folderURL
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/Filename.swift:58:27: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | public struct Encoder {
| `- note: consider making struct 'Encoder' conform to the 'Sendable' protocol
50 |
51 | private let encode: (Filename) -> String
:
56 |
57 | @available(*, deprecated, message: "for any new storages, please use .base64URL")
58 | public static let base64: Encoder = Encoder(encode: { $0.base64Encoded() })
| |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'Filename.Encoder' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'base64' 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
59 | public static let base64URL: Encoder = Encoder(encode: { $0.base64URLEncoded() })
60 | public static let noEncoding: Encoder = Encoder(encode: { $0.rawValue })
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:167:68: warning: 'base64' is deprecated: for any new storages, please use .base64URL
165 | in directory: FileManager.SearchPathDirectory,
166 | domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
167 | filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
168 | return DiskStorage.main.folder(folderName, in: directory, domainMask: domainMask, filenameEncoder: filenameEncoder)
169 | }
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:174:61: warning: 'base64' is deprecated: for any new storages, please use .base64URL
172 | in directory: FileManager.SearchPathDirectory,
173 | domainMask: FileManager.SearchPathDomainMask = .userDomainMask,
174 | filenameEncoder: Filename.Encoder = .base64) -> DiskFolderStorage {
| `- warning: 'base64' is deprecated: for any new storages, please use .base64URL
175 | return DiskFolderStorage.inDirectory(
176 | directory,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:108:17: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Data>) -> ()' (aka '(Result<Data, any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
106 | do {
107 | let data = try Data.init(contentsOf: key)
108 | completion(succeed(with: data))
| |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Data>) -> ()' (aka '(Result<Data, any Error>) -> ()') 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'
109 | } catch {
110 | completion(fail(with: error))
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:123:21: warning: capture of 'self' with non-sendable type 'DiskStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
87 | }
88 |
89 | public final class DiskStorage : StorageProtocol {
| `- note: class 'DiskStorage' does not conform to the 'Sendable' protocol
90 |
91 | public var storageName: String {
:
121 | queue.async {
122 | do {
123 | try self.createDirectoryURLIfNotExisting(for: key)
| `- warning: capture of 'self' with non-sendable type 'DiskStorage' in a `@Sendable` closure; this is an error in the Swift 6 language mode
124 | let path = key.path
125 | if self.fileManager.createFile(atPath: path,
/Users/admin/builder/spi-builder-workspace/Sources/Shallows/DiskStorage/DiskStorage.swift:128:21: warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
126 | contents: value,
127 | attributes: nil) {
128 | completion(.success)
| |- warning: capture of 'completion' with non-sendable type '(ShallowsResult<Void>) -> ()' (aka '(Result<(), any Error>) -> ()') 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'
129 | } else {
130 | completion(fail(with: Error.cantCreateFile))
[17/21] Write Objects.LinkFileList
[19/21] Archiving libShallowsStatic.a
[20/21] Linking libShallowsDynamic.dylib
Build complete! (23.07s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Shallows",
"name" : "Shallows",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Shallows",
"targets" : [
"Shallows"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ShallowsStatic",
"targets" : [
"Shallows"
],
"type" : {
"library" : [
"static"
]
}
},
{
"name" : "ShallowsDynamic",
"targets" : [
"Shallows"
],
"type" : {
"library" : [
"dynamic"
]
}
}
],
"targets" : [
{
"c99name" : "ShallowsTests",
"module_type" : "SwiftTarget",
"name" : "ShallowsTests",
"path" : "Tests/ShallowsTests",
"sources" : [
"AdditionalSpec.swift",
"CompositionSpec.swift",
"DiskStorageSpec.swift",
"MemoryStorageSpec.swift",
"ResultSpec.swift",
"Spectre/Case.swift",
"Spectre/Context.swift",
"Spectre/Expectation.swift",
"Spectre/Failure.swift",
"Spectre/Global.swift",
"Spectre/GlobalContext.swift",
"Spectre/Reporter.swift",
"Spectre/Reporters.swift",
"TestExtensions.swift",
"XCTest.swift",
"ZipSpec.swift"
],
"target_dependencies" : [
"Shallows"
],
"type" : "test"
},
{
"c99name" : "Shallows",
"module_type" : "SwiftTarget",
"name" : "Shallows",
"path" : "Sources/Shallows",
"product_memberships" : [
"Shallows",
"ShallowsStatic",
"ShallowsDynamic"
],
"sources" : [
"Async.swift",
"Composition.swift",
"DiskStorage/DiskExtensions.swift",
"DiskStorage/DiskStorage.swift",
"DiskStorage/Filename.swift",
"MemoryStorage.swift",
"NSCacheStorage.swift",
"ReadOnlyStorage.swift",
"Shallows.swift",
"ShallowsResult.swift",
"Storage.swift",
"SyncStorage.swift",
"WriteOnlyStorage.swift",
"Zip.swift"
],
"type" : "library"
}
],
"tools_version" : "5.1"
}
Done.