Build Information
Successful build of QSChatView, reference v0.3.0 (9b1546
), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 01:47:53 UTC.
Swift 6 data race errors: 4
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/FiveSheepCo/QSChatView.git
Reference: v0.3.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/FiveSheepCo/QSChatView
* tag v0.3.0 -> FETCH_HEAD
HEAD is now at 9b15461 Add message deletion and `ChatConfigBuilder`
Cloned https://github.com/FiveSheepCo/QSChatView.git
Revision (git rev-parse @):
9b1546132d09f1b34d2e6051eaaf5b413334482f
SUCCESS checkout https://github.com/FiveSheepCo/QSChatView.git at v0.3.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": "qschatview",
"name": "QSChatView",
"url": "https://github.com/FiveSheepCo/QSChatView.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/QSChatView",
"dependencies": [
]
}
]
}
Fetching https://github.com/FiveSheepCo/QSChatView.git
[1/233] Fetching qschatview
Fetched https://github.com/FiveSheepCo/QSChatView.git from cache (1.07s)
Creating working copy for https://github.com/FiveSheepCo/QSChatView.git
Working copy of https://github.com/FiveSheepCo/QSChatView.git resolved at v0.3.0 (9b15461)
warning: '.resolve-product-dependencies': dependency 'qschatview' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/FiveSheepCo/QSChatView.git
https://github.com/FiveSheepCo/QSChatView.git
{
"dependencies" : [
],
"manifest_display_name" : "QSChatView",
"name" : "QSChatView",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "maccatalyst",
"version" : "15.0"
}
],
"products" : [
{
"name" : "QSChatView",
"targets" : [
"QSChatView"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "QSChatViewTests",
"module_type" : "SwiftTarget",
"name" : "QSChatViewTests",
"path" : "Tests/QSChatViewTests",
"sources" : [
"ChatControllerTests.swift",
"QSChatViewTests.swift"
],
"target_dependencies" : [
"QSChatView"
],
"type" : "test"
},
{
"c99name" : "QSChatView",
"module_type" : "SwiftTarget",
"name" : "QSChatView",
"path" : "Sources/QSChatView",
"product_memberships" : [
"QSChatView"
],
"sources" : [
"Internal/Components/BetterScrollView.swift",
"Internal/Components/ChatBubble.swift",
"Internal/Components/ChatTextField.swift",
"Internal/Components/TypingIndicator.swift",
"Internal/Components/WrappedChatBubble.swift",
"Internal/Data/ScrollViewData.swift",
"Internal/Modifiers/ContentHeightModifier.swift",
"Internal/Modifiers/ScrollOffsetModifier.swift",
"Internal/PreferenceKeys/ContentHeightPreferenceKey.swift",
"Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift",
"Internal/Styles/ChatTextFieldStyle.swift",
"Public/ChatAvatar.swift",
"Public/ChatController.swift",
"Public/ChatMessage.swift",
"Public/ChatMessageContent.swift",
"Public/ChatMessagePromise.swift",
"Public/ChatParticipant.swift",
"Public/ChatParticipantBuilder.swift",
"Public/ChatParticipantRole.swift",
"Public/Config/ChatConfig.swift",
"Public/Config/ChatConfigBuilder.swift",
"Public/Config/ChatContextMenuItem.swift",
"Public/Config/ChatScrollBehavior.swift",
"QSChatView.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/25] Emitting module QSChatView
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ContentHeightPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ContentHeightPreferenceKey: PreferenceKey {
12 | typealias Value = CGFloat
13 | static var defaultValue: CGFloat = 0
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | static func reduce(value: inout Value, nextValue: () -> Value) {
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ScrollOffsetPreferenceKey: PreferenceKey {
12 | typealias Value = CGFloat
13 | static var defaultValue: CGFloat = 0
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | static func reduce(value: inout Value, nextValue: () -> Value) {
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:16:23: warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
| |- warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultChatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | /// A chat participant representing the current user.
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 | /// A chat participant representing the current user.
19 | public static let me = ChatParticipant(role: .chatter)
| |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'me' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 | let name: String?
[4/27] Compiling QSChatView BetterScrollView.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/ChatBubble.swift:38:9: warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable
36 | var str = AttributedString(stringLiteral: message.displayTimeStamp)
37 | str.foregroundColor = timestampColor
38 | str.paragraphStyle = paragraphStyle
| `- warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable
39 | str.font = .footnote
40 | return str
:1:1: note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
1 | @_nonSendable(_assumed)
| `- note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
[5/27] Compiling QSChatView ChatBubble.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/ChatBubble.swift:38:9: warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable
36 | var str = AttributedString(stringLiteral: message.displayTimeStamp)
37 | str.foregroundColor = timestampColor
38 | str.paragraphStyle = paragraphStyle
| `- warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable
39 | str.font = .footnote
40 | return str
:1:1: note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
1 | @_nonSendable(_assumed)
| `- note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
[6/27] Compiling QSChatView ChatTextField.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/ChatBubble.swift:38:9: warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable
36 | var str = AttributedString(stringLiteral: message.displayTimeStamp)
37 | str.foregroundColor = timestampColor
38 | str.paragraphStyle = paragraphStyle
| `- warning: conformance of 'NSParagraphStyle' to 'Sendable' is unavailable
39 | str.font = .footnote
40 | return str
:1:1: note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
1 | @_nonSendable(_assumed)
| `- note: conformance of 'NSParagraphStyle' to 'Sendable' has been explicitly marked unavailable here
[7/27] Compiling QSChatView ChatScrollBehavior.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:185:53: warning: capture of 'chattee' with non-sendable type 'ChatParticipant' in a '@Sendable' closure
183 | }
184 | DispatchQueue.main.async {
185 | let participant = offset % 2 == 0 ? chattee : chatter
| `- warning: capture of 'chattee' with non-sendable type 'ChatParticipant' in a '@Sendable' closure
186 | let promise = controller.sendPromise(from: participant)
187 | let content = ChatMessageContent.text(dummyConversation[offset])
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:14:14: note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:185:63: warning: capture of 'chatter' with non-sendable type 'ChatParticipant' in a '@Sendable' closure
183 | }
184 | DispatchQueue.main.async {
185 | let participant = offset % 2 == 0 ? chattee : chatter
| `- warning: capture of 'chatter' with non-sendable type 'ChatParticipant' in a '@Sendable' closure
186 | let promise = controller.sendPromise(from: participant)
187 | let content = ChatMessageContent.text(dummyConversation[offset])
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:14:14: note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:186:31: warning: capture of 'controller' with non-sendable type 'ChatController' in a '@Sendable' closure
184 | DispatchQueue.main.async {
185 | let participant = offset % 2 == 0 ? chattee : chatter
186 | let promise = controller.sendPromise(from: participant)
| `- warning: capture of 'controller' with non-sendable type 'ChatController' in a '@Sendable' closure
187 | let content = ChatMessageContent.text(dummyConversation[offset])
188 | Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatController.swift:12:14: note: class 'ChatController' does not conform to the 'Sendable' protocol
10 |
11 | /// The chat controller used by ``QSChatView``.
12 | public class ChatController: ObservableObject {
| `- note: class 'ChatController' does not conform to the 'Sendable' protocol
13 | @Published var textInputContent: String = ""
14 | @Published var messages: [ChatMessage] = []
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:180:16: warning: reference to captured var 'offset' in concurrently-executing code
178 | timer?.invalidate()
179 | timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { timer in
180 | if offset == dummyConversation.count {
| `- warning: reference to captured var 'offset' in concurrently-executing code
181 | timer.invalidate()
182 | return
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:180:26: warning: main actor-isolated static property 'dummyConversation' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
141 | static var timer: Timer? = nil
142 |
143 | static var dummyConversation: [String] {
| `- note: static property declared here
144 | [
145 | "Hey! How's your day going?",
:
178 | timer?.invalidate()
179 | timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { timer in
180 | if offset == dummyConversation.count {
| `- warning: main actor-isolated static property 'dummyConversation' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
181 | timer.invalidate()
182 | return
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:25: warning: capture of 'controller' with non-sendable type 'ChatController' in a '@Sendable' closure
188 | Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 | DispatchQueue.main.async {
190 | controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
| `- warning: capture of 'controller' with non-sendable type 'ChatController' in a '@Sendable' closure
191 | startTimestamp += 60 * 2
192 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatController.swift:12:14: note: class 'ChatController' does not conform to the 'Sendable' protocol
10 |
11 | /// The chat controller used by ``QSChatView``.
12 | public class ChatController: ObservableObject {
| `- note: class 'ChatController' does not conform to the 'Sendable' protocol
13 | @Published var textInputContent: String = ""
14 | @Published var messages: [ChatMessage] = []
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:44: warning: capture of 'promise' with non-sendable type 'ChatMessagePromise' in a '@Sendable' closure
188 | Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 | DispatchQueue.main.async {
190 | controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
| `- warning: capture of 'promise' with non-sendable type 'ChatMessagePromise' in a '@Sendable' closure
191 | startTimestamp += 60 * 2
192 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatMessagePromise.swift:13:15: note: consider making struct 'ChatMessagePromise' conform to the 'Sendable' protocol
11 | ///
12 | /// Use via ``ChatController/sendPromise(from:)``
13 | public struct ChatMessagePromise {
| `- note: consider making struct 'ChatMessagePromise' conform to the 'Sendable' protocol
14 | let controller: ChatController
15 | let messageId: UUID
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:66: warning: capture of 'content' with non-sendable type 'ChatMessageContent' in a '@Sendable' closure
188 | Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 | DispatchQueue.main.async {
190 | controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
| `- warning: capture of 'content' with non-sendable type 'ChatMessageContent' in a '@Sendable' closure
191 | startTimestamp += 60 * 2
192 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatMessageContent.swift:12:13: note: consider making enum 'ChatMessageContent' conform to the 'Sendable' protocol
10 |
11 | /// The content of a chat message.
12 | public enum ChatMessageContent: Equatable {
| `- note: consider making enum 'ChatMessageContent' conform to the 'Sendable' protocol
13 |
14 | /// A typing indicator.
[8/27] Compiling QSChatView QSChatView.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:185:53: warning: capture of 'chattee' with non-sendable type 'ChatParticipant' in a '@Sendable' closure
183 | }
184 | DispatchQueue.main.async {
185 | let participant = offset % 2 == 0 ? chattee : chatter
| `- warning: capture of 'chattee' with non-sendable type 'ChatParticipant' in a '@Sendable' closure
186 | let promise = controller.sendPromise(from: participant)
187 | let content = ChatMessageContent.text(dummyConversation[offset])
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:14:14: note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:185:63: warning: capture of 'chatter' with non-sendable type 'ChatParticipant' in a '@Sendable' closure
183 | }
184 | DispatchQueue.main.async {
185 | let participant = offset % 2 == 0 ? chattee : chatter
| `- warning: capture of 'chatter' with non-sendable type 'ChatParticipant' in a '@Sendable' closure
186 | let promise = controller.sendPromise(from: participant)
187 | let content = ChatMessageContent.text(dummyConversation[offset])
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:14:14: note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:186:31: warning: capture of 'controller' with non-sendable type 'ChatController' in a '@Sendable' closure
184 | DispatchQueue.main.async {
185 | let participant = offset % 2 == 0 ? chattee : chatter
186 | let promise = controller.sendPromise(from: participant)
| `- warning: capture of 'controller' with non-sendable type 'ChatController' in a '@Sendable' closure
187 | let content = ChatMessageContent.text(dummyConversation[offset])
188 | Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatController.swift:12:14: note: class 'ChatController' does not conform to the 'Sendable' protocol
10 |
11 | /// The chat controller used by ``QSChatView``.
12 | public class ChatController: ObservableObject {
| `- note: class 'ChatController' does not conform to the 'Sendable' protocol
13 | @Published var textInputContent: String = ""
14 | @Published var messages: [ChatMessage] = []
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:180:16: warning: reference to captured var 'offset' in concurrently-executing code
178 | timer?.invalidate()
179 | timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { timer in
180 | if offset == dummyConversation.count {
| `- warning: reference to captured var 'offset' in concurrently-executing code
181 | timer.invalidate()
182 | return
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:180:26: warning: main actor-isolated static property 'dummyConversation' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
141 | static var timer: Timer? = nil
142 |
143 | static var dummyConversation: [String] {
| `- note: static property declared here
144 | [
145 | "Hey! How's your day going?",
:
178 | timer?.invalidate()
179 | timer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { timer in
180 | if offset == dummyConversation.count {
| `- warning: main actor-isolated static property 'dummyConversation' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
181 | timer.invalidate()
182 | return
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:25: warning: capture of 'controller' with non-sendable type 'ChatController' in a '@Sendable' closure
188 | Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 | DispatchQueue.main.async {
190 | controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
| `- warning: capture of 'controller' with non-sendable type 'ChatController' in a '@Sendable' closure
191 | startTimestamp += 60 * 2
192 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatController.swift:12:14: note: class 'ChatController' does not conform to the 'Sendable' protocol
10 |
11 | /// The chat controller used by ``QSChatView``.
12 | public class ChatController: ObservableObject {
| `- note: class 'ChatController' does not conform to the 'Sendable' protocol
13 | @Published var textInputContent: String = ""
14 | @Published var messages: [ChatMessage] = []
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:44: warning: capture of 'promise' with non-sendable type 'ChatMessagePromise' in a '@Sendable' closure
188 | Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 | DispatchQueue.main.async {
190 | controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
| `- warning: capture of 'promise' with non-sendable type 'ChatMessagePromise' in a '@Sendable' closure
191 | startTimestamp += 60 * 2
192 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatMessagePromise.swift:13:15: note: consider making struct 'ChatMessagePromise' conform to the 'Sendable' protocol
11 | ///
12 | /// Use via ``ChatController/sendPromise(from:)``
13 | public struct ChatMessagePromise {
| `- note: consider making struct 'ChatMessagePromise' conform to the 'Sendable' protocol
14 | let controller: ChatController
15 | let messageId: UUID
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/QSChatView.swift:190:66: warning: capture of 'content' with non-sendable type 'ChatMessageContent' in a '@Sendable' closure
188 | Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { _ in
189 | DispatchQueue.main.async {
190 | controller.fulfill(promise, withContent: content, timestamp: Date(timeIntervalSince1970: startTimestamp))
| `- warning: capture of 'content' with non-sendable type 'ChatMessageContent' in a '@Sendable' closure
191 | startTimestamp += 60 * 2
192 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatMessageContent.swift:12:13: note: consider making enum 'ChatMessageContent' conform to the 'Sendable' protocol
10 |
11 | /// The content of a chat message.
12 | public enum ChatMessageContent: Equatable {
| `- note: consider making enum 'ChatMessageContent' conform to the 'Sendable' protocol
13 |
14 | /// A typing indicator.
[9/27] Compiling QSChatView ChatController.swift
[10/27] Compiling QSChatView ChatMessage.swift
[11/27] Compiling QSChatView ChatMessageContent.swift
[12/27] Compiling QSChatView ChatMessagePromise.swift
[13/27] Compiling QSChatView TypingIndicator.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:39:21: warning: main actor-isolated property 'offset' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
18 | let innerSpacing: Double = 7.5
19 |
20 | @State private var offset: Double = 0
| `- note: mutation of this property is only permitted within the actor
21 | @State private var timer: Timer?
22 |
:
37 | ) { _ in
38 | withAnimation(.linear(duration: timeInterval)) {
39 | offset += offsetChangePerTimeStep
| `- warning: main actor-isolated property 'offset' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
40 | }
41 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:56: warning: main actor-isolated property 'frame' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated property 'frame' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:359:29: note: property declared here
357 | @property (readonly) NSRect cascadingReferenceFrame API_AVAILABLE(macos(15.0));
358 |
359 | @property (readonly) NSRect frame;
| `- note: property declared here
360 |
361 | /*! Subclasses can override \c animationResizeTime: to control the total time for the frame change.
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:44: warning: main actor-isolated property 'mainWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated property 'mainWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:201:48: note: property declared here
199 | - (nullable NSWindow *)windowWithWindowNumber:(NSInteger)windowNum;
200 |
201 | @property (nullable, readonly, weak) NSWindow *mainWindow;
| `- note: property declared here
202 | @property (nullable, readonly, weak) NSWindow *keyWindow;
203 | @property (getter=isActive, readonly) BOOL active;
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:37: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
[14/27] Compiling QSChatView WrappedChatBubble.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:39:21: warning: main actor-isolated property 'offset' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
18 | let innerSpacing: Double = 7.5
19 |
20 | @State private var offset: Double = 0
| `- note: mutation of this property is only permitted within the actor
21 | @State private var timer: Timer?
22 |
:
37 | ) { _ in
38 | withAnimation(.linear(duration: timeInterval)) {
39 | offset += offsetChangePerTimeStep
| `- warning: main actor-isolated property 'offset' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
40 | }
41 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:56: warning: main actor-isolated property 'frame' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated property 'frame' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:359:29: note: property declared here
357 | @property (readonly) NSRect cascadingReferenceFrame API_AVAILABLE(macos(15.0));
358 |
359 | @property (readonly) NSRect frame;
| `- note: property declared here
360 |
361 | /*! Subclasses can override \c animationResizeTime: to control the total time for the frame change.
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:44: warning: main actor-isolated property 'mainWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated property 'mainWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:201:48: note: property declared here
199 | - (nullable NSWindow *)windowWithWindowNumber:(NSInteger)windowNum;
200 |
201 | @property (nullable, readonly, weak) NSWindow *mainWindow;
| `- note: property declared here
202 | @property (nullable, readonly, weak) NSWindow *keyWindow;
203 | @property (getter=isActive, readonly) BOOL active;
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:37: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
[15/27] Compiling QSChatView ScrollViewData.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Components/TypingIndicator.swift:39:21: warning: main actor-isolated property 'offset' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
18 | let innerSpacing: Double = 7.5
19 |
20 | @State private var offset: Double = 0
| `- note: mutation of this property is only permitted within the actor
21 | @State private var timer: Timer?
22 |
:
37 | ) { _ in
38 | withAnimation(.linear(duration: timeInterval)) {
39 | offset += offsetChangePerTimeStep
| `- warning: main actor-isolated property 'offset' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
40 | }
41 | }
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:56: warning: main actor-isolated property 'frame' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated property 'frame' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:359:29: note: property declared here
357 | @property (readonly) NSRect cascadingReferenceFrame API_AVAILABLE(macos(15.0));
358 |
359 | @property (readonly) NSRect frame;
| `- note: property declared here
360 |
361 | /*! Subclasses can override \c animationResizeTime: to control the total time for the frame change.
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:44: warning: main actor-isolated property 'mainWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated property 'mainWindow' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:201:48: note: property declared here
199 | - (nullable NSWindow *)windowWithWindowNumber:(NSInteger)windowNum;
200 |
201 | @property (nullable, readonly, weak) NSWindow *mainWindow;
| `- note: property declared here
202 | @property (nullable, readonly, weak) NSWindow *keyWindow;
203 | @property (getter=isActive, readonly) BOOL active;
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/Data/ScrollViewData.swift:26:37: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | return UIScreen.main.bounds.height
25 | #elseif os(macOS)
26 | return Double(NSApplication.shared.mainWindow?.frame.height ?? 0)
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
27 | #endif
28 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
[16/27] Compiling QSChatView ChatParticipantRole.swift
[17/27] Compiling QSChatView ChatConfig.swift
[18/27] Compiling QSChatView ChatParticipant.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:16:23: warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
| |- warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultChatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | /// A chat participant representing the current user.
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 | /// A chat participant representing the current user.
19 | public static let me = ChatParticipant(role: .chatter)
| |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'me' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 | let name: String?
[19/27] Compiling QSChatView ChatParticipantBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:16:23: warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
| |- warning: static property 'defaultChatter' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultChatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | /// A chat participant representing the current user.
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Public/ChatParticipant.swift:19:23: warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
12 | ///
13 | /// You should use ``ChatParticipantBuilder`` to instantiate this.
14 | public class ChatParticipant: Identifiable, Equatable {
| `- note: class 'ChatParticipant' does not conform to the 'Sendable' protocol
15 | @available(*, deprecated, message: "Use ChatParticipant.me instead.")
16 | public static let defaultChatter = ChatParticipant(role: .chatter)
17 |
18 | /// A chat participant representing the current user.
19 | public static let me = ChatParticipant(role: .chatter)
| |- warning: static property 'me' is not concurrency-safe because non-'Sendable' type 'ChatParticipant' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'me' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 | let name: String?
[20/27] Compiling QSChatView ChatConfigBuilder.swift
[21/27] Compiling QSChatView ChatContextMenuItem.swift
[22/27] Compiling QSChatView ScrollOffsetPreferenceKey.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ScrollOffsetPreferenceKey: PreferenceKey {
12 | typealias Value = CGFloat
13 | static var defaultValue: CGFloat = 0
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | static func reduce(value: inout Value, nextValue: () -> Value) {
[23/27] Compiling QSChatView ChatTextFieldStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ScrollOffsetPreferenceKey: PreferenceKey {
12 | typealias Value = CGFloat
13 | static var defaultValue: CGFloat = 0
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | static func reduce(value: inout Value, nextValue: () -> Value) {
[24/27] Compiling QSChatView ChatAvatar.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ScrollOffsetPreferenceKey: PreferenceKey {
12 | typealias Value = CGFloat
13 | static var defaultValue: CGFloat = 0
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | static func reduce(value: inout Value, nextValue: () -> Value) {
[25/27] Compiling QSChatView ContentHeightModifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ContentHeightPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ContentHeightPreferenceKey: PreferenceKey {
12 | typealias Value = CGFloat
13 | static var defaultValue: CGFloat = 0
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | static func reduce(value: inout Value, nextValue: () -> Value) {
[26/27] Compiling QSChatView ScrollOffsetModifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ContentHeightPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ContentHeightPreferenceKey: PreferenceKey {
12 | typealias Value = CGFloat
13 | static var defaultValue: CGFloat = 0
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | static func reduce(value: inout Value, nextValue: () -> Value) {
[27/27] Compiling QSChatView ContentHeightPreferenceKey.swift
/Users/admin/builder/spi-builder-workspace/Sources/QSChatView/Internal/PreferenceKeys/ContentHeightPreferenceKey.swift:13:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 | struct ContentHeightPreferenceKey: PreferenceKey {
12 | typealias Value = CGFloat
13 | static var defaultValue: CGFloat = 0
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | static func reduce(value: inout Value, nextValue: () -> Value) {
Build complete! (10.71s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "QSChatView",
"name" : "QSChatView",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "maccatalyst",
"version" : "15.0"
}
],
"products" : [
{
"name" : "QSChatView",
"targets" : [
"QSChatView"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "QSChatViewTests",
"module_type" : "SwiftTarget",
"name" : "QSChatViewTests",
"path" : "Tests/QSChatViewTests",
"sources" : [
"ChatControllerTests.swift",
"QSChatViewTests.swift"
],
"target_dependencies" : [
"QSChatView"
],
"type" : "test"
},
{
"c99name" : "QSChatView",
"module_type" : "SwiftTarget",
"name" : "QSChatView",
"path" : "Sources/QSChatView",
"product_memberships" : [
"QSChatView"
],
"sources" : [
"Internal/Components/BetterScrollView.swift",
"Internal/Components/ChatBubble.swift",
"Internal/Components/ChatTextField.swift",
"Internal/Components/TypingIndicator.swift",
"Internal/Components/WrappedChatBubble.swift",
"Internal/Data/ScrollViewData.swift",
"Internal/Modifiers/ContentHeightModifier.swift",
"Internal/Modifiers/ScrollOffsetModifier.swift",
"Internal/PreferenceKeys/ContentHeightPreferenceKey.swift",
"Internal/PreferenceKeys/ScrollOffsetPreferenceKey.swift",
"Internal/Styles/ChatTextFieldStyle.swift",
"Public/ChatAvatar.swift",
"Public/ChatController.swift",
"Public/ChatMessage.swift",
"Public/ChatMessageContent.swift",
"Public/ChatMessagePromise.swift",
"Public/ChatParticipant.swift",
"Public/ChatParticipantBuilder.swift",
"Public/ChatParticipantRole.swift",
"Public/Config/ChatConfig.swift",
"Public/Config/ChatConfigBuilder.swift",
"Public/Config/ChatContextMenuItem.swift",
"Public/Config/ChatScrollBehavior.swift",
"QSChatView.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Done.