Build Information
Successful build of SwiftFileStore, reference v0.7.0 (61aa52
), with Swift 6.0 for macOS (SPM) on 30 Nov 2024 13:40:43 UTC.
Swift 6 data race errors: 5
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/juyan/swift-filestore.git
Reference: v0.7.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/juyan/swift-filestore
* tag v0.7.0 -> FETCH_HEAD
HEAD is now at 61aa52c platform support (#9)
Cloned https://github.com/juyan/swift-filestore.git
Revision (git rev-parse @):
61aa52c514e39a70c17ce6421d70807f46282154
SUCCESS checkout https://github.com/juyan/swift-filestore.git at v0.7.0
========================================
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": "swift-filestore",
"name": "SwiftFileStore",
"url": "https://github.com/juyan/swift-filestore.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-filestore",
"dependencies": [
]
}
]
}
Fetching https://github.com/juyan/swift-filestore.git
[1/204] Fetching swift-filestore
Fetched https://github.com/juyan/swift-filestore.git from cache (0.63s)
Creating working copy for https://github.com/juyan/swift-filestore.git
Working copy of https://github.com/juyan/swift-filestore.git resolved at v0.7.0 (61aa52c)
warning: '.resolve-product-dependencies': dependency 'swift-filestore' 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/juyan/swift-filestore.git
{
"dependencies" : [
],
"manifest_display_name" : "SwiftFileStore",
"name" : "SwiftFileStore",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "14.0"
},
{
"name" : "watchos",
"version" : "8.0"
}
],
"products" : [
{
"name" : "SwiftFileStore",
"targets" : [
"SwiftFileStore"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftFileStoreTests",
"module_type" : "SwiftTarget",
"name" : "SwiftFileStoreTests",
"path" : "Tests/SwiftFileStoreTests",
"sources" : [
"FileObjectStoreTests.swift",
"MemoryObjectStoreTests.swift",
"PersistenceLogTests.swift",
"TestObject.swift",
"XCTestCase+.swift"
],
"target_dependencies" : [
"SwiftFileStore"
],
"type" : "test"
},
{
"c99name" : "SwiftFileStore",
"module_type" : "SwiftTarget",
"name" : "SwiftFileStore",
"path" : "Sources/SwiftFileStore",
"product_memberships" : [
"SwiftFileStore"
],
"sources" : [
"FileObjectStore.swift",
"JSONDataRepresentable.swift",
"MemoryObjectStore.swift",
"ObjectStore+Expiry.swift",
"ObjectStore.swift",
"Observer.swift",
"ObserverManager.swift",
"PersistenceLog.swift"
],
"type" : "library"
}
],
"tools_version" : "5.6"
}
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 SwiftFileStore ObjectStore.swift
[4/11] Compiling SwiftFileStore ObjectStore+Expiry.swift
[5/11] Compiling SwiftFileStore ObserverManager.swift
[6/11] Compiling SwiftFileStore MemoryObjectStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:14:17: warning: non-sendable type 'T?' returned by actor-isolated instance method 'read(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
12 | public init() {}
13 |
14 | public func read<T>(key: String, namespace: String, objectType _: T.Type) async throws -> T? where T: DataRepresentable {
| | `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
| `- warning: non-sendable type 'T?' returned by actor-isolated instance method 'read(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
15 | objects[namespace]?[key].flatMap { try? T.from(data: $0) }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:18:17: warning: non-sendable type 'T' in parameter of the protocol requirement satisfied by actor-isolated instance method 'write(key:namespace:object:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
16 | }
17 |
18 | public func write<T>(key: String, namespace: String, object: T) async throws where T: DataRepresentable {
| `- warning: non-sendable type 'T' in parameter of the protocol requirement satisfied by actor-isolated instance method 'write(key:namespace:object:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
19 | let data = try object.serialize()
20 | objects[namespace, default: [:]][key] = data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/ObjectStore.swift:29:16: note: consider making generic parameter 'T' conform to the 'Sendable' protocol
27 | /// - namespace: namespace of the object, such as "Cats"
28 | /// - object: The object to write
29 | func write<T>(key: String, namespace: String, object: T) async throws where T: DataRepresentable
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
30 |
31 | /// Remove an object from storage
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:38:17: warning: non-sendable type 'AsyncThrowingStream<T?, any Error>' returned by actor-isolated instance method 'observe(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
36 | }
37 |
38 | public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
| | `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
| `- warning: non-sendable type 'AsyncThrowingStream<T?, any Error>' returned by actor-isolated instance method 'observe(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
39 | let observer = await observerManager.getObserver(key: key, namespace: namespace)
40 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:39:46: warning: non-sendable type 'Observer' returned by call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
37 |
38 | public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
39 | let observer = await observerManager.getObserver(key: key, namespace: namespace)
| `- warning: non-sendable type 'Observer' returned by call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
40 | do {
41 | let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/Observer.swift:7:13: note: class 'Observer' does not conform to the 'Sendable' protocol
5 | import Foundation
6 |
7 | final class Observer {
| `- note: class 'Observer' does not conform to the 'Sendable' protocol
8 | let key: String
9 | let namespace: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:55:21: warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 | }
54 | continuation.onTermination = { @Sendable _ in
55 | observer.callbacks.removeValue(forKey: callbackID)
| `- warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
56 | }
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/Observer.swift:7:13: note: class 'Observer' does not conform to the 'Sendable' protocol
5 | import Foundation
6 |
7 | final class Observer {
| `- note: class 'Observer' does not conform to the 'Sendable' protocol
8 | let key: String
9 | let namespace: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:21:31: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
19 | let data = try object.serialize()
20 | objects[namespace, default: [:]][key] = data
21 | await observerManager.publishValue(key: key, namespace: namespace, value: object)
| |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'object' to actor-isolated instance method 'publishValue(key:namespace:value:)' risks causing data races between actor-isolated and 'self'-isolated uses
22 | }
23 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:43:30: warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
41 | let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
42 | return AsyncThrowingStream { continuation in
43 | continuation.yield(existingValue)
| |- warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'existingValue' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
44 | let callbackID = UUID().uuidString
45 | observer.registerCallback(id: callbackID) { data in
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:47:38: warning: task-isolated value of type 'T' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
45 | observer.registerCallback(id: callbackID) { data in
46 | if let d = data, let typed = d as? T {
47 | continuation.yield(typed)
| `- warning: task-isolated value of type 'T' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
48 | } else if data == nil {
49 | continuation.yield(nil)
[7/11] Compiling SwiftFileStore PersistenceLog.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/PersistenceLog.swift:54:17: warning: non-sendable type 'Self.Element' in parameter of the protocol requirement satisfied by actor-isolated instance method 'append(element:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
52 | }
53 |
54 | public func append(element: ElementType) async throws {
| `- warning: non-sendable type 'Self.Element' in parameter of the protocol requirement satisfied by actor-isolated instance method 'append(element:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
55 | try fileHandle.seekToEnd()
56 | let data = try element.serialize()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/PersistenceLog.swift:62:17: warning: non-sendable type '[ElementType]' returned by actor-isolated instance method 'flush()' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
15 | }
16 |
17 | public actor PersistenceLogImpl<ElementType>: PersistenceLog where ElementType: DataRepresentable {
| `- note: consider making generic parameter 'ElementType' conform to the 'Sendable' protocol
18 | public typealias Element = ElementType
19 |
:
60 | }
61 |
62 | public func flush() async throws -> [ElementType] {
| `- warning: non-sendable type '[ElementType]' returned by actor-isolated instance method 'flush()' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
63 | try fileHandle.seek(toOffset: 0)
64 | let fileData = try fileHandle.readToEnd()
[8/11] Compiling SwiftFileStore Observer.swift
[9/11] Compiling SwiftFileStore FileObjectStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:114:1: warning: extension declares a conformance of imported type 'String' to imported protocol 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
112 | }
113 |
114 | extension String: Error {}
| |- warning: extension declares a conformance of imported type 'String' to imported protocol 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
115 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:71:46: warning: non-sendable type 'Observer' returned by call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
69 |
70 | public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
71 | let observer = await observerManager.getObserver(key: key, namespace: namespace)
| `- warning: non-sendable type 'Observer' returned by call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
72 | do {
73 | let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/Observer.swift:7:13: note: class 'Observer' does not conform to the 'Sendable' protocol
5 | import Foundation
6 |
7 | final class Observer {
| `- note: class 'Observer' does not conform to the 'Sendable' protocol
8 | let key: String
9 | let namespace: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:87:21: warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
85 | }
86 | continuation.onTermination = { @Sendable _ in
87 | observer.callbacks.removeValue(forKey: callbackID)
| `- warning: capture of 'observer' with non-sendable type 'Observer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
88 | }
89 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/Observer.swift:7:13: note: class 'Observer' does not conform to the 'Sendable' protocol
5 | import Foundation
6 |
7 | final class Observer {
| `- note: class 'Observer' does not conform to the 'Sendable' protocol
8 | let key: String
9 | let namespace: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:41:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
39 | try FileManager.default.createDirIfNotExist(url: dirURL)
40 | try object.serialize().write(to: fileURL)
41 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
42 | await observerManager.publishValue(key: key, namespace: namespace, value: object)
| `- note: closure captures 'self' which is accessible to code in the current task
43 | }
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:42:35: warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
40 | try object.serialize().write(to: fileURL)
41 | Task {
42 | await observerManager.publishValue(key: key, namespace: namespace, value: object)
| |- warning: sending 'object' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'object' to actor-isolated instance method 'publishValue(key:namespace:value:)' risks causing data races between actor-isolated and task-isolated uses
43 | }
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:52:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
50 | try FileManager.default.removeItem(at: fileURL)
51 | }
52 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
53 | await observerManager.publishRemoval(namespace: namespace, key: key)
| `- note: closure captures 'self' which is accessible to code in the current task
54 | }
55 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:60:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
58 | let dirURL = rootDir.appendingPathComponent(namespace)
59 | try FileManager.default.removeItem(at: dirURL)
60 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
61 | await observerManager.publishRemoval(namespace: namespace)
| `- note: closure captures 'self' which is accessible to code in the current task
62 | }
63 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:75:30: warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
73 | let existingValue = try await read(key: key, namespace: namespace, objectType: objectType)
74 | return AsyncThrowingStream { continuation in
75 | continuation.yield(existingValue)
| |- warning: sending 'existingValue' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'existingValue' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
76 | let callbackID = UUID().uuidString
77 | observer.registerCallback(id: callbackID) { data in
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:79:38: warning: task-isolated value of type 'T' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
77 | observer.registerCallback(id: callbackID) { data in
78 | if let d = data, let typed = d as? T {
79 | continuation.yield(typed)
| `- warning: task-isolated value of type 'T' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
80 | } else if data == nil {
81 | continuation.yield(nil)
[10/11] Emitting module SwiftFileStore
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/FileObjectStore.swift:114:1: warning: extension declares a conformance of imported type 'String' to imported protocol 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
112 | }
113 |
114 | extension String: Error {}
| |- warning: extension declares a conformance of imported type 'String' to imported protocol 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
115 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:14:17: warning: non-sendable type 'T?' returned by actor-isolated instance method 'read(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
12 | public init() {}
13 |
14 | public func read<T>(key: String, namespace: String, objectType _: T.Type) async throws -> T? where T: DataRepresentable {
| | `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
| `- warning: non-sendable type 'T?' returned by actor-isolated instance method 'read(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
15 | objects[namespace]?[key].flatMap { try? T.from(data: $0) }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:18:17: warning: non-sendable type 'T' in parameter of the protocol requirement satisfied by actor-isolated instance method 'write(key:namespace:object:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
16 | }
17 |
18 | public func write<T>(key: String, namespace: String, object: T) async throws where T: DataRepresentable {
| `- warning: non-sendable type 'T' in parameter of the protocol requirement satisfied by actor-isolated instance method 'write(key:namespace:object:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
19 | let data = try object.serialize()
20 | objects[namespace, default: [:]][key] = data
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/ObjectStore.swift:29:16: note: consider making generic parameter 'T' conform to the 'Sendable' protocol
27 | /// - namespace: namespace of the object, such as "Cats"
28 | /// - object: The object to write
29 | func write<T>(key: String, namespace: String, object: T) async throws where T: DataRepresentable
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
30 |
31 | /// Remove an object from storage
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/MemoryObjectStore.swift:38:17: warning: non-sendable type 'AsyncThrowingStream<T?, any Error>' returned by actor-isolated instance method 'observe(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
36 | }
37 |
38 | public func observe<T>(key: String, namespace: String, objectType: T.Type) async -> AsyncThrowingStream<T?, Error> where T: DataRepresentable {
| | `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
| `- warning: non-sendable type 'AsyncThrowingStream<T?, any Error>' returned by actor-isolated instance method 'observe(key:namespace:objectType:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
39 | let observer = await observerManager.getObserver(key: key, namespace: namespace)
40 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/PersistenceLog.swift:54:17: warning: non-sendable type 'Self.Element' in parameter of the protocol requirement satisfied by actor-isolated instance method 'append(element:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
52 | }
53 |
54 | public func append(element: ElementType) async throws {
| `- warning: non-sendable type 'Self.Element' in parameter of the protocol requirement satisfied by actor-isolated instance method 'append(element:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
55 | try fileHandle.seekToEnd()
56 | let data = try element.serialize()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftFileStore/PersistenceLog.swift:62:17: warning: non-sendable type '[ElementType]' returned by actor-isolated instance method 'flush()' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
15 | }
16 |
17 | public actor PersistenceLogImpl<ElementType>: PersistenceLog where ElementType: DataRepresentable {
| `- note: consider making generic parameter 'ElementType' conform to the 'Sendable' protocol
18 | public typealias Element = ElementType
19 |
:
60 | }
61 |
62 | public func flush() async throws -> [ElementType] {
| `- warning: non-sendable type '[ElementType]' returned by actor-isolated instance method 'flush()' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
63 | try fileHandle.seek(toOffset: 0)
64 | let fileData = try fileHandle.readToEnd()
[11/11] Compiling SwiftFileStore JSONDataRepresentable.swift
Build complete! (13.42s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SwiftFileStore",
"name" : "SwiftFileStore",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "14.0"
},
{
"name" : "watchos",
"version" : "8.0"
}
],
"products" : [
{
"name" : "SwiftFileStore",
"targets" : [
"SwiftFileStore"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftFileStoreTests",
"module_type" : "SwiftTarget",
"name" : "SwiftFileStoreTests",
"path" : "Tests/SwiftFileStoreTests",
"sources" : [
"FileObjectStoreTests.swift",
"MemoryObjectStoreTests.swift",
"PersistenceLogTests.swift",
"TestObject.swift",
"XCTestCase+.swift"
],
"target_dependencies" : [
"SwiftFileStore"
],
"type" : "test"
},
{
"c99name" : "SwiftFileStore",
"module_type" : "SwiftTarget",
"name" : "SwiftFileStore",
"path" : "Sources/SwiftFileStore",
"product_memberships" : [
"SwiftFileStore"
],
"sources" : [
"FileObjectStore.swift",
"JSONDataRepresentable.swift",
"MemoryObjectStore.swift",
"ObjectStore+Expiry.swift",
"ObjectStore.swift",
"Observer.swift",
"ObserverManager.swift",
"PersistenceLog.swift"
],
"type" : "library"
}
],
"tools_version" : "5.6"
}
Done.