Build Information
Successful build of discord, reference 0.1.3-beta (7d24b2
), with Swift 6.0 for Linux on 30 Nov 2024 03:01:13 UTC.
Swift 6 data race errors: 31
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
Build Log
824 | /// If users can be mentioned in a message.
:
847 |
848 | /// An `AllowedMentions` object with everything disabled.
849 | public static let none = AllowedMentions(users: false, roles: false, repliedUser: false, everyone: false)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
850 |
851 | /// Initializes a new allowed mentions object.
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:203:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
201 |
202 | /// Returns a permissions object with all permissions disabled.
203 | public static let none = Permissions(permsValue: 0)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
204 |
205 | init(permsValue: Int) {
[2197/2219] Compiling Discord Emoji.swift
/host/spi-builder-workspace/Sources/Discord/Models/Emoji.swift:91:16: warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
89 | private let guildId: Snowflake
90 |
91 | static let regex = #/<a?:.+?:[0-9]{17,20}>/#
| |- warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'regex' 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
92 |
93 | // Hashable
_StringProcessing.Regex:2:15: note: generic struct 'Regex' does not conform to the 'Sendable' protocol
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public struct Regex<Output> : RegexComponent {
| `- note: generic struct 'Regex' does not conform to the 'Sendable' protocol
3 | public var regex: Regex<Output> { get }
4 | @available(iOS 16.0, tvOS 16.0, watchOS 9.0, macOS 13.0, *)
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:91:25: warning: instance method 'shutdown' is unavailable from asynchronous contexts; This can block the thread and should not be called in an async context; this is an error in the Swift 6 language mode
89 | // Vapor complains if the `Application` isn't
90 | // shutdown before it's deinitialized
91 | defer { app.shutdown() }
| `- warning: instance method 'shutdown' is unavailable from asynchronous contexts; This can block the thread and should not be called in an async context; this is an error in the Swift 6 language mode
92 |
93 | for (n, url) in urlsWithExt.enumerated() {
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:85:26: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
83 | let urlsWithExt = urls.filter({ $0.pathExtension != .empty })
84 |
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
86 | var files = [File]()
87 | let app = Vapor.Application()
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:85:69: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
83 | let urlsWithExt = urls.filter({ $0.pathExtension != .empty })
84 |
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
86 | var files = [File]()
87 | let app = Vapor.Application()
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:87:29: warning: initializer 'init' is unavailable from asynchronous contexts; This initialiser cannot be used in async contexts, use Application.make(_:_:) instead; this is an error in the Swift 6 language mode
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
86 | var files = [File]()
87 | let app = Vapor.Application()
| `- warning: initializer 'init' is unavailable from asynchronous contexts; This initialiser cannot be used in async contexts, use Application.make(_:_:) instead; this is an error in the Swift 6 language mode
88 |
89 | // Vapor complains if the `Application` isn't
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:94:23: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
92 |
93 | for (n, url) in urlsWithExt.enumerated() {
94 | group.addTask {
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
95 | let resp = try await app.client.get(URI(string: url.absoluteString))
96 | let data = Data(buffer: resp.body!)
[2198/2219] Compiling Discord Error.swift
/host/spi-builder-workspace/Sources/Discord/Models/Emoji.swift:91:16: warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
89 | private let guildId: Snowflake
90 |
91 | static let regex = #/<a?:.+?:[0-9]{17,20}>/#
| |- warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'regex' 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
92 |
93 | // Hashable
_StringProcessing.Regex:2:15: note: generic struct 'Regex' does not conform to the 'Sendable' protocol
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public struct Regex<Output> : RegexComponent {
| `- note: generic struct 'Regex' does not conform to the 'Sendable' protocol
3 | public var regex: Regex<Output> { get }
4 | @available(iOS 16.0, tvOS 16.0, watchOS 9.0, macOS 13.0, *)
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:91:25: warning: instance method 'shutdown' is unavailable from asynchronous contexts; This can block the thread and should not be called in an async context; this is an error in the Swift 6 language mode
89 | // Vapor complains if the `Application` isn't
90 | // shutdown before it's deinitialized
91 | defer { app.shutdown() }
| `- warning: instance method 'shutdown' is unavailable from asynchronous contexts; This can block the thread and should not be called in an async context; this is an error in the Swift 6 language mode
92 |
93 | for (n, url) in urlsWithExt.enumerated() {
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:85:26: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
83 | let urlsWithExt = urls.filter({ $0.pathExtension != .empty })
84 |
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
86 | var files = [File]()
87 | let app = Vapor.Application()
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:85:69: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
83 | let urlsWithExt = urls.filter({ $0.pathExtension != .empty })
84 |
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
86 | var files = [File]()
87 | let app = Vapor.Application()
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:87:29: warning: initializer 'init' is unavailable from asynchronous contexts; This initialiser cannot be used in async contexts, use Application.make(_:_:) instead; this is an error in the Swift 6 language mode
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
86 | var files = [File]()
87 | let app = Vapor.Application()
| `- warning: initializer 'init' is unavailable from asynchronous contexts; This initialiser cannot be used in async contexts, use Application.make(_:_:) instead; this is an error in the Swift 6 language mode
88 |
89 | // Vapor complains if the `Application` isn't
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:94:23: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
92 |
93 | for (n, url) in urlsWithExt.enumerated() {
94 | group.addTask {
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
95 | let resp = try await app.client.get(URI(string: url.absoluteString))
96 | let data = Data(buffer: resp.body!)
[2199/2219] Compiling Discord File.swift
/host/spi-builder-workspace/Sources/Discord/Models/Emoji.swift:91:16: warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
89 | private let guildId: Snowflake
90 |
91 | static let regex = #/<a?:.+?:[0-9]{17,20}>/#
| |- warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'regex' 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
92 |
93 | // Hashable
_StringProcessing.Regex:2:15: note: generic struct 'Regex' does not conform to the 'Sendable' protocol
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public struct Regex<Output> : RegexComponent {
| `- note: generic struct 'Regex' does not conform to the 'Sendable' protocol
3 | public var regex: Regex<Output> { get }
4 | @available(iOS 16.0, tvOS 16.0, watchOS 9.0, macOS 13.0, *)
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:91:25: warning: instance method 'shutdown' is unavailable from asynchronous contexts; This can block the thread and should not be called in an async context; this is an error in the Swift 6 language mode
89 | // Vapor complains if the `Application` isn't
90 | // shutdown before it's deinitialized
91 | defer { app.shutdown() }
| `- warning: instance method 'shutdown' is unavailable from asynchronous contexts; This can block the thread and should not be called in an async context; this is an error in the Swift 6 language mode
92 |
93 | for (n, url) in urlsWithExt.enumerated() {
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:85:26: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
83 | let urlsWithExt = urls.filter({ $0.pathExtension != .empty })
84 |
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
86 | var files = [File]()
87 | let app = Vapor.Application()
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:85:69: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
83 | let urlsWithExt = urls.filter({ $0.pathExtension != .empty })
84 |
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
86 | var files = [File]()
87 | let app = Vapor.Application()
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:87:29: warning: initializer 'init' is unavailable from asynchronous contexts; This initialiser cannot be used in async contexts, use Application.make(_:_:) instead; this is an error in the Swift 6 language mode
85 | return try await withThrowingTaskGroup(of: File.self, body: { group -> [File] in
86 | var files = [File]()
87 | let app = Vapor.Application()
| `- warning: initializer 'init' is unavailable from asynchronous contexts; This initialiser cannot be used in async contexts, use Application.make(_:_:) instead; this is an error in the Swift 6 language mode
88 |
89 | // Vapor complains if the `Application` isn't
/host/spi-builder-workspace/Sources/Discord/Models/File.swift:94:23: warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a file to upload to Discord.
29 | public struct File {
| `- note: consider making struct 'File' conform to the 'Sendable' protocol
30 |
31 | /// The absolute path of the file.
:
92 |
93 | for (n, url) in urlsWithExt.enumerated() {
94 | group.addTask {
| `- warning: type 'File' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
95 | let resp = try await app.client.get(URI(string: url.absoluteString))
96 | let data = Data(buffer: resp.body!)
[2200/2219] Compiling Discord Invite.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:843:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
841 |
842 | /// An `AllowedMentions` object with everything enabled.
843 | public static let all = AllowedMentions(users: true, roles: true, repliedUser: true, everyone: true)
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'all' 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
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:846:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
846 | public static let `default` = AllowedMentions(users: true, roles: false, repliedUser: true, everyone: false)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
847 |
848 | /// An `AllowedMentions` object with everything disabled.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:849:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
847 |
848 | /// An `AllowedMentions` object with everything disabled.
849 | public static let none = AllowedMentions(users: false, roles: false, repliedUser: false, everyone: false)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
850 |
851 | /// Initializes a new allowed mentions object.
/host/spi-builder-workspace/Sources/Discord/Models/Emoji.swift:91:16: warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
89 | private let guildId: Snowflake
90 |
91 | static let regex = #/<a?:.+?:[0-9]{17,20}>/#
| |- warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'regex' 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
92 |
93 | // Hashable
_StringProcessing.Regex:2:15: note: generic struct 'Regex' does not conform to the 'Sendable' protocol
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public struct Regex<Output> : RegexComponent {
| `- note: generic struct 'Regex' does not conform to the 'Sendable' protocol
3 | public var regex: Regex<Output> { get }
4 | @available(iOS 16.0, tvOS 16.0, watchOS 9.0, macOS 13.0, *)
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:487:17: warning: capture of 'self' with non-sendable type 'Message' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |
27 | /// Represents a Discord message.
28 | public class Message : Object, Hashable, Updateable {
| `- note: class 'Message' does not conform to the 'Sendable' protocol
29 |
30 | /// ID of the message.
:
485 | DispatchQueue.main.async {
486 | self.cacheExpireTimer = .scheduledTimer(withTimeInterval: self.expires.timeIntervalSince(.now), repeats: false, block: { [self] _ in
487 | bot!.removeCachedMessage(id)
| `- warning: capture of 'self' with non-sendable type 'Message' in a `@Sendable` closure; this is an error in the Swift 6 language mode
488 | })
489 | }
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:486:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
484 | cacheExpireTimer?.invalidate()
485 | DispatchQueue.main.async {
486 | self.cacheExpireTimer = .scheduledTimer(withTimeInterval: self.expires.timeIntervalSince(.now), repeats: false, block: { [self] _ in
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
487 | bot!.removeCachedMessage(id)
488 | })
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:452:18: 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
450 | let after = max(0, after)
451 | if after > 0 {
452 | 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
453 | await sleep(Int(after * 1000))
454 |
455 | // Since this is in the background, the message could have possibly been already deleted, so silently
456 | // ignore any errors that may arise.
457 | try? await self.bot!.http.deleteMessage(channelId: self.channel.id, messageId: self.id, reason: reason)
| `- note: closure captures 'self' which is accessible to code in the current task
458 | }
459 | } else {
[2201/2219] Compiling Discord Member.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:843:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
841 |
842 | /// An `AllowedMentions` object with everything enabled.
843 | public static let all = AllowedMentions(users: true, roles: true, repliedUser: true, everyone: true)
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'all' 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
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:846:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
846 | public static let `default` = AllowedMentions(users: true, roles: false, repliedUser: true, everyone: false)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
847 |
848 | /// An `AllowedMentions` object with everything disabled.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:849:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
847 |
848 | /// An `AllowedMentions` object with everything disabled.
849 | public static let none = AllowedMentions(users: false, roles: false, repliedUser: false, everyone: false)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
850 |
851 | /// Initializes a new allowed mentions object.
/host/spi-builder-workspace/Sources/Discord/Models/Emoji.swift:91:16: warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
89 | private let guildId: Snowflake
90 |
91 | static let regex = #/<a?:.+?:[0-9]{17,20}>/#
| |- warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'regex' 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
92 |
93 | // Hashable
_StringProcessing.Regex:2:15: note: generic struct 'Regex' does not conform to the 'Sendable' protocol
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public struct Regex<Output> : RegexComponent {
| `- note: generic struct 'Regex' does not conform to the 'Sendable' protocol
3 | public var regex: Regex<Output> { get }
4 | @available(iOS 16.0, tvOS 16.0, watchOS 9.0, macOS 13.0, *)
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:487:17: warning: capture of 'self' with non-sendable type 'Message' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |
27 | /// Represents a Discord message.
28 | public class Message : Object, Hashable, Updateable {
| `- note: class 'Message' does not conform to the 'Sendable' protocol
29 |
30 | /// ID of the message.
:
485 | DispatchQueue.main.async {
486 | self.cacheExpireTimer = .scheduledTimer(withTimeInterval: self.expires.timeIntervalSince(.now), repeats: false, block: { [self] _ in
487 | bot!.removeCachedMessage(id)
| `- warning: capture of 'self' with non-sendable type 'Message' in a `@Sendable` closure; this is an error in the Swift 6 language mode
488 | })
489 | }
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:486:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
484 | cacheExpireTimer?.invalidate()
485 | DispatchQueue.main.async {
486 | self.cacheExpireTimer = .scheduledTimer(withTimeInterval: self.expires.timeIntervalSince(.now), repeats: false, block: { [self] _ in
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
487 | bot!.removeCachedMessage(id)
488 | })
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:452:18: 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
450 | let after = max(0, after)
451 | if after > 0 {
452 | 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
453 | await sleep(Int(after * 1000))
454 |
455 | // Since this is in the background, the message could have possibly been already deleted, so silently
456 | // ignore any errors that may arise.
457 | try? await self.bot!.http.deleteMessage(channelId: self.channel.id, messageId: self.id, reason: reason)
| `- note: closure captures 'self' which is accessible to code in the current task
458 | }
459 | } else {
[2202/2219] Compiling Discord Message.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:843:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
841 |
842 | /// An `AllowedMentions` object with everything enabled.
843 | public static let all = AllowedMentions(users: true, roles: true, repliedUser: true, everyone: true)
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'all' 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
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:846:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
846 | public static let `default` = AllowedMentions(users: true, roles: false, repliedUser: true, everyone: false)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
847 |
848 | /// An `AllowedMentions` object with everything disabled.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:849:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
847 |
848 | /// An `AllowedMentions` object with everything disabled.
849 | public static let none = AllowedMentions(users: false, roles: false, repliedUser: false, everyone: false)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
850 |
851 | /// Initializes a new allowed mentions object.
/host/spi-builder-workspace/Sources/Discord/Models/Emoji.swift:91:16: warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
89 | private let guildId: Snowflake
90 |
91 | static let regex = #/<a?:.+?:[0-9]{17,20}>/#
| |- warning: static property 'regex' is not concurrency-safe because non-'Sendable' type 'Regex<Substring>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'regex' 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
92 |
93 | // Hashable
_StringProcessing.Regex:2:15: note: generic struct 'Regex' does not conform to the 'Sendable' protocol
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public struct Regex<Output> : RegexComponent {
| `- note: generic struct 'Regex' does not conform to the 'Sendable' protocol
3 | public var regex: Regex<Output> { get }
4 | @available(iOS 16.0, tvOS 16.0, watchOS 9.0, macOS 13.0, *)
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:487:17: warning: capture of 'self' with non-sendable type 'Message' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |
27 | /// Represents a Discord message.
28 | public class Message : Object, Hashable, Updateable {
| `- note: class 'Message' does not conform to the 'Sendable' protocol
29 |
30 | /// ID of the message.
:
485 | DispatchQueue.main.async {
486 | self.cacheExpireTimer = .scheduledTimer(withTimeInterval: self.expires.timeIntervalSince(.now), repeats: false, block: { [self] _ in
487 | bot!.removeCachedMessage(id)
| `- warning: capture of 'self' with non-sendable type 'Message' in a `@Sendable` closure; this is an error in the Swift 6 language mode
488 | })
489 | }
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:486:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
484 | cacheExpireTimer?.invalidate()
485 | DispatchQueue.main.async {
486 | self.cacheExpireTimer = .scheduledTimer(withTimeInterval: self.expires.timeIntervalSince(.now), repeats: false, block: { [self] _ in
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
487 | bot!.removeCachedMessage(id)
488 | })
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:452:18: 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
450 | let after = max(0, after)
451 | if after > 0 {
452 | 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
453 | await sleep(Int(after * 1000))
454 |
455 | // Since this is in the background, the message could have possibly been already deleted, so silently
456 | // ignore any errors that may arise.
457 | try? await self.bot!.http.deleteMessage(channelId: self.channel.id, messageId: self.id, reason: reason)
| `- note: closure captures 'self' which is accessible to code in the current task
458 | }
459 | } else {
[2203/2219] Compiling Discord Asset.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Channel.swift:203:29: 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
201 | public func triggerTyping(while: (() async -> Void)? = nil) async throws {
202 | if let closure = `while` {
203 | let task = 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
204 | while true {
205 | do { try Task.checkCancellation() }
206 | catch { break }
207 | try await bot!.http.triggerTypingIndicator(channelId: id)
| `- note: closure captures 'self' which is accessible to code in the current task
208 |
209 | // The delay isn't 10s because once it hits the 10s mark, the "is typing"
[2204/2219] Compiling Discord AuditLogs.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Channel.swift:203:29: 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
201 | public func triggerTyping(while: (() async -> Void)? = nil) async throws {
202 | if let closure = `while` {
203 | let task = 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
204 | while true {
205 | do { try Task.checkCancellation() }
206 | catch { break }
207 | try await bot!.http.triggerTypingIndicator(channelId: id)
| `- note: closure captures 'self' which is accessible to code in the current task
208 |
209 | // The delay isn't 10s because once it hits the 10s mark, the "is typing"
[2205/2219] Compiling Discord AutoModeration.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Channel.swift:203:29: 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
201 | public func triggerTyping(while: (() async -> Void)? = nil) async throws {
202 | if let closure = `while` {
203 | let task = 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
204 | while true {
205 | do { try Task.checkCancellation() }
206 | catch { break }
207 | try await bot!.http.triggerTypingIndicator(channelId: id)
| `- note: closure captures 'self' which is accessible to code in the current task
208 |
209 | // The delay isn't 10s because once it hits the 10s mark, the "is typing"
[2206/2219] Compiling Discord Channel.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Channel.swift:203:29: 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
201 | public func triggerTyping(while: (() async -> Void)? = nil) async throws {
202 | if let closure = `while` {
203 | let task = 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
204 | while true {
205 | do { try Task.checkCancellation() }
206 | catch { break }
207 | try await bot!.http.triggerTypingIndicator(channelId: id)
| `- note: closure captures 'self' which is accessible to code in the current task
208 |
209 | // The delay isn't 10s because once it hits the 10s mark, the "is typing"
[2207/2219] Compiling Discord User.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:203:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
201 |
202 | /// Returns a permissions object with all permissions disabled.
203 | public static let none = Permissions(permsValue: 0)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
204 |
205 | init(permsValue: Int) {
[2208/2219] Compiling Discord Webhook.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:203:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
201 |
202 | /// Returns a permissions object with all permissions disabled.
203 | public static let none = Permissions(permsValue: 0)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
204 |
205 | init(permsValue: Int) {
[2209/2219] Compiling Discord Utils.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:203:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
201 |
202 | /// Returns a permissions object with all permissions disabled.
203 | public static let none = Permissions(permsValue: 0)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
204 |
205 | init(permsValue: Int) {
[2210/2219] Compiling Discord Permissions.swift
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:178:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
176 | /// - `sendVoiceMessages`
177 | /// - `requestToSpeak`
178 | public static let `default` = Permissions(enable: [
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
179 | .viewChannel,
180 | .createInstantInvite,
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:203:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
201 |
202 | /// Returns a permissions object with all permissions disabled.
203 | public static let none = Permissions(permsValue: 0)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
204 |
205 | init(permsValue: Int) {
[2211/2219] Compiling Discord Role.swift
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:178:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
176 | /// - `sendVoiceMessages`
177 | /// - `requestToSpeak`
178 | public static let `default` = Permissions(enable: [
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
179 | .viewChannel,
180 | .createInstantInvite,
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:203:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
201 |
202 | /// Returns a permissions object with all permissions disabled.
203 | public static let none = Permissions(permsValue: 0)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
204 |
205 | init(permsValue: Int) {
[2212/2219] Compiling Discord Sticker.swift
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:178:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
176 | /// - `sendVoiceMessages`
177 | /// - `requestToSpeak`
178 | public static let `default` = Permissions(enable: [
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
179 | .viewChannel,
180 | .createInstantInvite,
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:203:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
201 |
202 | /// Returns a permissions object with all permissions disabled.
203 | public static let none = Permissions(permsValue: 0)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
204 |
205 | init(permsValue: Int) {
[2213/2219] Compiling Discord Guild.swift
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:178:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
176 | /// - `sendVoiceMessages`
177 | /// - `requestToSpeak`
178 | public static let `default` = Permissions(enable: [
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
179 | .viewChannel,
180 | .createInstantInvite,
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:189:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
187 |
188 | /// Enables all intents.
189 | public static let all = Set<Intents>().union(Intents.allCases)
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'all' 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
190 |
191 | /// All intents enabled except ``dmTyping``, ``guildMessageTyping``, and ``guildPresences``.
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:192:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
190 |
191 | /// All intents enabled except ``dmTyping``, ``guildMessageTyping``, and ``guildPresences``.
192 | public static let `default` = Intents.all(except: [.dmTyping, .guildMessageTyping, .guildPresences])
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
193 |
194 | /// Disables all intents.
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:195:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
193 |
194 | /// Disables all intents.
195 | public static let none = Set<Intents>()
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
196 |
197 | /// Enables all intents except the ones specified.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
[2214/2219] Compiling Discord Intents.swift
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:178:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
176 | /// - `sendVoiceMessages`
177 | /// - `requestToSpeak`
178 | public static let `default` = Permissions(enable: [
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
179 | .viewChannel,
180 | .createInstantInvite,
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:189:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
187 |
188 | /// Enables all intents.
189 | public static let all = Set<Intents>().union(Intents.allCases)
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'all' 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
190 |
191 | /// All intents enabled except ``dmTyping``, ``guildMessageTyping``, and ``guildPresences``.
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:192:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
190 |
191 | /// All intents enabled except ``dmTyping``, ``guildMessageTyping``, and ``guildPresences``.
192 | public static let `default` = Intents.all(except: [.dmTyping, .guildMessageTyping, .guildPresences])
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
193 |
194 | /// Disables all intents.
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:195:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
193 |
194 | /// Disables all intents.
195 | public static let none = Set<Intents>()
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
196 |
197 | /// Enables all intents except the ones specified.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
[2215/2219] Compiling Discord Interactions.swift
/host/spi-builder-workspace/Sources/Discord/Models/Permissions.swift:178:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
141 |
142 | /// Represents the permissions for a channel, user, or guild.
143 | public class Permissions {
| `- note: class 'Permissions' does not conform to the 'Sendable' protocol
144 |
145 | /// The bitset value for the permissions that are enabled/disabled.
:
176 | /// - `sendVoiceMessages`
177 | /// - `requestToSpeak`
178 | public static let `default` = Permissions(enable: [
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Permissions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
179 | .viewChannel,
180 | .createInstantInvite,
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:189:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
187 |
188 | /// Enables all intents.
189 | public static let all = Set<Intents>().union(Intents.allCases)
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'all' 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
190 |
191 | /// All intents enabled except ``dmTyping``, ``guildMessageTyping``, and ``guildPresences``.
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:192:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
190 |
191 | /// All intents enabled except ``dmTyping``, ``guildMessageTyping``, and ``guildPresences``.
192 | public static let `default` = Intents.all(except: [.dmTyping, .guildMessageTyping, .guildPresences])
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
193 |
194 | /// Disables all intents.
/host/spi-builder-workspace/Sources/Discord/Models/Intents.swift:195:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// Represents Discords events that are dispatched.
26 | public enum Intents : Int, CaseIterable {
| `- note: consider making enum 'Intents' conform to the 'Sendable' protocol
27 |
28 | /// Enabling this intent allows the following events to be dispatched:
:
193 |
194 | /// Disables all intents.
195 | public static let none = Set<Intents>()
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Set<Intents>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
196 |
197 | /// Enables all intents except the ones specified.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
[2216/2219] Compiling Discord Discord.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:846:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
846 | public static let `default` = AllowedMentions(users: true, roles: false, repliedUser: true, everyone: false)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
847 |
848 | /// An `AllowedMentions` object with everything disabled.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:663:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
661 |
662 | /// Has all caching capabilities enabled and a max message cache size of 1,500.
663 | public static let `default` = CacheManager(messages: 1500, users: true, members: true)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
664 |
665 | /// Has `users` caching capabilities disabled and a max message cache size of 500.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:660:23: warning: static property 'scaled' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
660 | public static let scaled = CacheManager(messages: 10_000, users: true, members: true)
| |- warning: static property 'scaled' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'scaled' 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
661 |
662 | /// Has all caching capabilities enabled and a max message cache size of 1,500.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:666:23: warning: static property 'limited' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
664 |
665 | /// Has `users` caching capabilities disabled and a max message cache size of 500.
666 | public static let limited = CacheManager(messages: 500, users: false, members: true)
| |- warning: static property 'limited' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'limited' 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
667 |
668 | /// Has all caching capabilities disabled and a max message cache size of 100.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:669:23: warning: static property 'restricted' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
667 |
668 | /// Has all caching capabilities disabled and a max message cache size of 100.
669 | public static let restricted = CacheManager(messages: 100, users: false, members: false)
| |- warning: static property 'restricted' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'restricted' 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
670 |
671 | /// Has all caching capabilities disabled and a max message cache size of 0.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:672:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
670 |
671 | /// Has all caching capabilities disabled and a max message cache size of 0.
672 | public static let none = CacheManager(messages: 0, users: false, members: false)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
673 |
674 | /// The amount of messages that are allowed to be cached.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:349:28: warning: capture of 'self' with non-sendable type 'Bot' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a Discord bot.
29 | public class Bot {
| `- note: class 'Bot' does not conform to the 'Sendable' protocol
30 |
31 | /// Version of the library.
:
347 | if !isConnected {
348 | try! app.eventLoopGroup.any().makeFutureWithTask {
349 | try! await self.gw.startNewSession()
| `- warning: capture of 'self' with non-sendable type 'Bot' in a `@Sendable` closure; this is an error in the Swift 6 language mode
350 | }.wait()
351 | if let onceExecute {
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:202:17: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
200 | on: elg,
201 | onUpgrade: { socket in
202 | self.websocketSetup(websocket: socket)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | Log.message("[Reconnect] connection successful - sending RESUME payload...")
204 | self.sendFrame(resumePayload)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:204:32: warning: capture of 'resumePayload' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | self.websocketSetup(websocket: socket)
203 | Log.message("[Reconnect] connection successful - sending RESUME payload...")
204 | self.sendFrame(resumePayload)
| `- warning: capture of 'resumePayload' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
205 | }
206 | ).get()
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:213:45: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
211 | ws = websocket
212 | receive()
213 | ws.onClose.whenComplete { _ in try! self.websocketClosed() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | }
215 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:241:16: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
239 | // so a 1.1 second delay should be more than enough.
240 | elg.any().scheduleTask(in: .milliseconds(1100)) {
241 | if self.clientHeartbeatAcks > 0 {
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
242 | self.clientHeartbeatAcks = -1
243 | Log.message("heartbeat ACK (client)")
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:247:31: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
245 | self.clientHeartbeatAcks = 0
246 | Task {
247 | try await self.danglingReconnect(log: "client did not receive HEARTBEAT ACK after a heartbeat was sent - attempting dangling reconnecting...")
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
248 | }
249 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:289:17: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
287 | on: elg,
288 | onUpgrade: { socket in
289 | self.websocketSetup(websocket: socket)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | Log.message("gateway connection established - receiver & onClose set")
291 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:366:21: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:366:21: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated local function; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated local function; this is an error in the Swift 6 language mode
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:386:31: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
384 | else { wsResume?.sequence = gatewayPayload.s! }
385 | Task {
386 | await dispatchAndUpdate(event: event, data: gatewayPayload.d!)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
387 | }
388 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:393:21: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
391 | let reset = { (log: String) -> Void in
392 | Log.message(log)
393 | self.resetGatewayValues(withCancel: false)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
394 | }
395 | // Discord states there's no need to re-identify after a RECONNECT
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:432:27: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
430 |
431 | heartbeatTask = Task(priority: .background, operation: {
432 | await indefHeartbeat()
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
433 | })
434 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:437:34: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
435 | case Opcode.invalidSession:
436 | Log.message("gateway SESSION INVALIDATED - starting new session...")
437 | Task { try await startNewSession() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
438 |
439 | case Opcode.reconnect:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:442:30: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
440 | Log.message("gateway requested RECONNECT - reconnecting...")
441 | receivedReconnectRequest = true
442 | Task { await reconnect() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
443 |
444 | case Opcode.heartbeat:
/host/spi-builder-workspace/Sources/Discord/Discord.swift:352:22: 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
350 | }.wait()
351 | if let onceExecute {
352 | Task { await onceExecute() }
| | `- note: closure captures 'onceExecute' which is accessible to code in the current 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
353 | self.onceExecute = nil
354 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:300:18: 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
298 | func new(log: String) {
299 | Log.message(log + " - starting new session...")
300 | Task { try await startNewSession() }
| | `- note: closure captures 'self' which is accessible to code in the current 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
301 | }
302 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:354:22: 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
352 | if bot.isConnected && !receivedReconnectRequest {
353 | nilClose = true
354 | 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
355 | try await self.danglingReconnect(log: "gateway disconnected with nil close code - bot connected/no reconnect request - attempting dangling reconnect...")
| `- note: closure captures 'self' which is accessible to code in the current task
356 | }
357 | } else {
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:385:21: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
383 | }
384 | else { wsResume?.sequence = gatewayPayload.s! }
385 | Task {
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
386 | await dispatchAndUpdate(event: event, data: gatewayPayload.d!)
387 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:442:17: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
440 | Log.message("gateway requested RECONNECT - reconnecting...")
441 | receivedReconnectRequest = true
442 | Task { await reconnect() }
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
443 |
444 | case Opcode.heartbeat:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:437:17: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> (@out τ_0_0, @error any Error) for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
435 | case Opcode.invalidSession:
436 | Log.message("gateway SESSION INVALIDATED - starting new session...")
437 | Task { try await startNewSession() }
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> (@out τ_0_0, @error any Error) for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
438 |
439 | case Opcode.reconnect:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:431:33: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
429 | heartbeatTask?.cancel()
430 |
431 | heartbeatTask = Task(priority: .background, operation: {
| | `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
| `- note: access can happen concurrently
432 | await indefHeartbeat()
433 | })
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:920:18: 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
918 | let interaction = Interaction(bot: bot, interactionData: data)
919 | dispatch({ await $0.onInteractionCreate(interaction: interaction) })
920 | Task { await handleInteractions(interaction: interaction) }
| | `- note: closure captures 'self' which is accessible to code in the current 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
921 |
922 | case .inviteCreate:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:1422:18: 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
1420 | for element in self {
1421 | guard element.isEnabled else { continue }
1422 | Task { await operation(element) }
| | | `- note: closure captures non-Sendable 'element'
| | `- note: closure captures non-Sendable 'operation'
| `- 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
1423 | }
1424 | }
[2217/2219] Compiling Discord Gateway.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:846:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
846 | public static let `default` = AllowedMentions(users: true, roles: false, repliedUser: true, everyone: false)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
847 |
848 | /// An `AllowedMentions` object with everything disabled.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:663:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
661 |
662 | /// Has all caching capabilities enabled and a max message cache size of 1,500.
663 | public static let `default` = CacheManager(messages: 1500, users: true, members: true)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
664 |
665 | /// Has `users` caching capabilities disabled and a max message cache size of 500.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:660:23: warning: static property 'scaled' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
660 | public static let scaled = CacheManager(messages: 10_000, users: true, members: true)
| |- warning: static property 'scaled' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'scaled' 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
661 |
662 | /// Has all caching capabilities enabled and a max message cache size of 1,500.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:666:23: warning: static property 'limited' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
664 |
665 | /// Has `users` caching capabilities disabled and a max message cache size of 500.
666 | public static let limited = CacheManager(messages: 500, users: false, members: true)
| |- warning: static property 'limited' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'limited' 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
667 |
668 | /// Has all caching capabilities disabled and a max message cache size of 100.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:669:23: warning: static property 'restricted' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
667 |
668 | /// Has all caching capabilities disabled and a max message cache size of 100.
669 | public static let restricted = CacheManager(messages: 100, users: false, members: false)
| |- warning: static property 'restricted' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'restricted' 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
670 |
671 | /// Has all caching capabilities disabled and a max message cache size of 0.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:672:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
670 |
671 | /// Has all caching capabilities disabled and a max message cache size of 0.
672 | public static let none = CacheManager(messages: 0, users: false, members: false)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
673 |
674 | /// The amount of messages that are allowed to be cached.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:349:28: warning: capture of 'self' with non-sendable type 'Bot' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a Discord bot.
29 | public class Bot {
| `- note: class 'Bot' does not conform to the 'Sendable' protocol
30 |
31 | /// Version of the library.
:
347 | if !isConnected {
348 | try! app.eventLoopGroup.any().makeFutureWithTask {
349 | try! await self.gw.startNewSession()
| `- warning: capture of 'self' with non-sendable type 'Bot' in a `@Sendable` closure; this is an error in the Swift 6 language mode
350 | }.wait()
351 | if let onceExecute {
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:202:17: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
200 | on: elg,
201 | onUpgrade: { socket in
202 | self.websocketSetup(websocket: socket)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | Log.message("[Reconnect] connection successful - sending RESUME payload...")
204 | self.sendFrame(resumePayload)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:204:32: warning: capture of 'resumePayload' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | self.websocketSetup(websocket: socket)
203 | Log.message("[Reconnect] connection successful - sending RESUME payload...")
204 | self.sendFrame(resumePayload)
| `- warning: capture of 'resumePayload' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
205 | }
206 | ).get()
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:213:45: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
211 | ws = websocket
212 | receive()
213 | ws.onClose.whenComplete { _ in try! self.websocketClosed() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | }
215 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:241:16: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
239 | // so a 1.1 second delay should be more than enough.
240 | elg.any().scheduleTask(in: .milliseconds(1100)) {
241 | if self.clientHeartbeatAcks > 0 {
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
242 | self.clientHeartbeatAcks = -1
243 | Log.message("heartbeat ACK (client)")
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:247:31: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
245 | self.clientHeartbeatAcks = 0
246 | Task {
247 | try await self.danglingReconnect(log: "client did not receive HEARTBEAT ACK after a heartbeat was sent - attempting dangling reconnecting...")
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
248 | }
249 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:289:17: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
287 | on: elg,
288 | onUpgrade: { socket in
289 | self.websocketSetup(websocket: socket)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | Log.message("gateway connection established - receiver & onClose set")
291 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:366:21: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:366:21: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated local function; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated local function; this is an error in the Swift 6 language mode
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:386:31: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
384 | else { wsResume?.sequence = gatewayPayload.s! }
385 | Task {
386 | await dispatchAndUpdate(event: event, data: gatewayPayload.d!)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
387 | }
388 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:393:21: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
391 | let reset = { (log: String) -> Void in
392 | Log.message(log)
393 | self.resetGatewayValues(withCancel: false)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
394 | }
395 | // Discord states there's no need to re-identify after a RECONNECT
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:432:27: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
430 |
431 | heartbeatTask = Task(priority: .background, operation: {
432 | await indefHeartbeat()
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
433 | })
434 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:437:34: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
435 | case Opcode.invalidSession:
436 | Log.message("gateway SESSION INVALIDATED - starting new session...")
437 | Task { try await startNewSession() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
438 |
439 | case Opcode.reconnect:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:442:30: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
440 | Log.message("gateway requested RECONNECT - reconnecting...")
441 | receivedReconnectRequest = true
442 | Task { await reconnect() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
443 |
444 | case Opcode.heartbeat:
/host/spi-builder-workspace/Sources/Discord/Discord.swift:352:22: 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
350 | }.wait()
351 | if let onceExecute {
352 | Task { await onceExecute() }
| | `- note: closure captures 'onceExecute' which is accessible to code in the current 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
353 | self.onceExecute = nil
354 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:300:18: 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
298 | func new(log: String) {
299 | Log.message(log + " - starting new session...")
300 | Task { try await startNewSession() }
| | `- note: closure captures 'self' which is accessible to code in the current 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
301 | }
302 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:354:22: 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
352 | if bot.isConnected && !receivedReconnectRequest {
353 | nilClose = true
354 | 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
355 | try await self.danglingReconnect(log: "gateway disconnected with nil close code - bot connected/no reconnect request - attempting dangling reconnect...")
| `- note: closure captures 'self' which is accessible to code in the current task
356 | }
357 | } else {
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:385:21: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
383 | }
384 | else { wsResume?.sequence = gatewayPayload.s! }
385 | Task {
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
386 | await dispatchAndUpdate(event: event, data: gatewayPayload.d!)
387 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:442:17: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
440 | Log.message("gateway requested RECONNECT - reconnecting...")
441 | receivedReconnectRequest = true
442 | Task { await reconnect() }
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
443 |
444 | case Opcode.heartbeat:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:437:17: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> (@out τ_0_0, @error any Error) for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
435 | case Opcode.invalidSession:
436 | Log.message("gateway SESSION INVALIDATED - starting new session...")
437 | Task { try await startNewSession() }
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> (@out τ_0_0, @error any Error) for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
438 |
439 | case Opcode.reconnect:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:431:33: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
429 | heartbeatTask?.cancel()
430 |
431 | heartbeatTask = Task(priority: .background, operation: {
| | `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
| `- note: access can happen concurrently
432 | await indefHeartbeat()
433 | })
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:920:18: 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
918 | let interaction = Interaction(bot: bot, interactionData: data)
919 | dispatch({ await $0.onInteractionCreate(interaction: interaction) })
920 | Task { await handleInteractions(interaction: interaction) }
| | `- note: closure captures 'self' which is accessible to code in the current 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
921 |
922 | case .inviteCreate:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:1422:18: 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
1420 | for element in self {
1421 | guard element.isEnabled else { continue }
1422 | Task { await operation(element) }
| | | `- note: closure captures non-Sendable 'element'
| | `- note: closure captures non-Sendable 'operation'
| `- 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
1423 | }
1424 | }
[2218/2219] Compiling Discord Http.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:846:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
846 | public static let `default` = AllowedMentions(users: true, roles: false, repliedUser: true, everyone: false)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
847 |
848 | /// An `AllowedMentions` object with everything disabled.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:663:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
661 |
662 | /// Has all caching capabilities enabled and a max message cache size of 1,500.
663 | public static let `default` = CacheManager(messages: 1500, users: true, members: true)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
664 |
665 | /// Has `users` caching capabilities disabled and a max message cache size of 500.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:660:23: warning: static property 'scaled' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
660 | public static let scaled = CacheManager(messages: 10_000, users: true, members: true)
| |- warning: static property 'scaled' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'scaled' 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
661 |
662 | /// Has all caching capabilities enabled and a max message cache size of 1,500.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:666:23: warning: static property 'limited' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
664 |
665 | /// Has `users` caching capabilities disabled and a max message cache size of 500.
666 | public static let limited = CacheManager(messages: 500, users: false, members: true)
| |- warning: static property 'limited' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'limited' 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
667 |
668 | /// Has all caching capabilities disabled and a max message cache size of 100.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:669:23: warning: static property 'restricted' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
667 |
668 | /// Has all caching capabilities disabled and a max message cache size of 100.
669 | public static let restricted = CacheManager(messages: 100, users: false, members: false)
| |- warning: static property 'restricted' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'restricted' 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
670 |
671 | /// Has all caching capabilities disabled and a max message cache size of 0.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:672:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
670 |
671 | /// Has all caching capabilities disabled and a max message cache size of 0.
672 | public static let none = CacheManager(messages: 0, users: false, members: false)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
673 |
674 | /// The amount of messages that are allowed to be cached.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:349:28: warning: capture of 'self' with non-sendable type 'Bot' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a Discord bot.
29 | public class Bot {
| `- note: class 'Bot' does not conform to the 'Sendable' protocol
30 |
31 | /// Version of the library.
:
347 | if !isConnected {
348 | try! app.eventLoopGroup.any().makeFutureWithTask {
349 | try! await self.gw.startNewSession()
| `- warning: capture of 'self' with non-sendable type 'Bot' in a `@Sendable` closure; this is an error in the Swift 6 language mode
350 | }.wait()
351 | if let onceExecute {
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:202:17: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
200 | on: elg,
201 | onUpgrade: { socket in
202 | self.websocketSetup(websocket: socket)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | Log.message("[Reconnect] connection successful - sending RESUME payload...")
204 | self.sendFrame(resumePayload)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:204:32: warning: capture of 'resumePayload' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | self.websocketSetup(websocket: socket)
203 | Log.message("[Reconnect] connection successful - sending RESUME payload...")
204 | self.sendFrame(resumePayload)
| `- warning: capture of 'resumePayload' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
205 | }
206 | ).get()
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:213:45: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
211 | ws = websocket
212 | receive()
213 | ws.onClose.whenComplete { _ in try! self.websocketClosed() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | }
215 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:241:16: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
239 | // so a 1.1 second delay should be more than enough.
240 | elg.any().scheduleTask(in: .milliseconds(1100)) {
241 | if self.clientHeartbeatAcks > 0 {
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
242 | self.clientHeartbeatAcks = -1
243 | Log.message("heartbeat ACK (client)")
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:247:31: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
245 | self.clientHeartbeatAcks = 0
246 | Task {
247 | try await self.danglingReconnect(log: "client did not receive HEARTBEAT ACK after a heartbeat was sent - attempting dangling reconnecting...")
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
248 | }
249 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:289:17: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
287 | on: elg,
288 | onUpgrade: { socket in
289 | self.websocketSetup(websocket: socket)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | Log.message("gateway connection established - receiver & onClose set")
291 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:366:21: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:366:21: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated local function; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated local function; this is an error in the Swift 6 language mode
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:386:31: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
384 | else { wsResume?.sequence = gatewayPayload.s! }
385 | Task {
386 | await dispatchAndUpdate(event: event, data: gatewayPayload.d!)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
387 | }
388 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:393:21: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
391 | let reset = { (log: String) -> Void in
392 | Log.message(log)
393 | self.resetGatewayValues(withCancel: false)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
394 | }
395 | // Discord states there's no need to re-identify after a RECONNECT
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:432:27: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
430 |
431 | heartbeatTask = Task(priority: .background, operation: {
432 | await indefHeartbeat()
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
433 | })
434 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:437:34: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
435 | case Opcode.invalidSession:
436 | Log.message("gateway SESSION INVALIDATED - starting new session...")
437 | Task { try await startNewSession() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
438 |
439 | case Opcode.reconnect:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:442:30: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
440 | Log.message("gateway requested RECONNECT - reconnecting...")
441 | receivedReconnectRequest = true
442 | Task { await reconnect() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
443 |
444 | case Opcode.heartbeat:
/host/spi-builder-workspace/Sources/Discord/Discord.swift:352:22: 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
350 | }.wait()
351 | if let onceExecute {
352 | Task { await onceExecute() }
| | `- note: closure captures 'onceExecute' which is accessible to code in the current 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
353 | self.onceExecute = nil
354 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:300:18: 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
298 | func new(log: String) {
299 | Log.message(log + " - starting new session...")
300 | Task { try await startNewSession() }
| | `- note: closure captures 'self' which is accessible to code in the current 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
301 | }
302 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:354:22: 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
352 | if bot.isConnected && !receivedReconnectRequest {
353 | nilClose = true
354 | 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
355 | try await self.danglingReconnect(log: "gateway disconnected with nil close code - bot connected/no reconnect request - attempting dangling reconnect...")
| `- note: closure captures 'self' which is accessible to code in the current task
356 | }
357 | } else {
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:385:21: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
383 | }
384 | else { wsResume?.sequence = gatewayPayload.s! }
385 | Task {
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
386 | await dispatchAndUpdate(event: event, data: gatewayPayload.d!)
387 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:442:17: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
440 | Log.message("gateway requested RECONNECT - reconnecting...")
441 | receivedReconnectRequest = true
442 | Task { await reconnect() }
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
443 |
444 | case Opcode.heartbeat:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:437:17: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> (@out τ_0_0, @error any Error) for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
435 | case Opcode.invalidSession:
436 | Log.message("gateway SESSION INVALIDATED - starting new session...")
437 | Task { try await startNewSession() }
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> (@out τ_0_0, @error any Error) for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
438 |
439 | case Opcode.reconnect:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:431:33: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
429 | heartbeatTask?.cancel()
430 |
431 | heartbeatTask = Task(priority: .background, operation: {
| | `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
| `- note: access can happen concurrently
432 | await indefHeartbeat()
433 | })
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:920:18: 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
918 | let interaction = Interaction(bot: bot, interactionData: data)
919 | dispatch({ await $0.onInteractionCreate(interaction: interaction) })
920 | Task { await handleInteractions(interaction: interaction) }
| | `- note: closure captures 'self' which is accessible to code in the current 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
921 |
922 | case .inviteCreate:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:1422:18: 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
1420 | for element in self {
1421 | guard element.isEnabled else { continue }
1422 | Task { await operation(element) }
| | | `- note: closure captures non-Sendable 'element'
| | `- note: closure captures non-Sendable 'operation'
| `- 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
1423 | }
1424 | }
[2219/2219] Compiling Discord Application.swift
/host/spi-builder-workspace/Sources/Discord/Discord.swift:59:23: warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
57 |
58 | /// The global allowed mentions.
59 | public static var allowedMentions = AllowedMentions.default
| |- warning: static property 'allowedMentions' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'allowedMentions' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'allowedMentions' 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 |
61 | /// Controls what will/won't be cached.
/host/spi-builder-workspace/Sources/Discord/Models/Message.swift:846:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
820 |
821 | /// Represents what mentions are allowed in a message.
822 | public struct AllowedMentions {
| `- note: consider making struct 'AllowedMentions' conform to the 'Sendable' protocol
823 |
824 | /// If users can be mentioned in a message.
:
844 |
845 | /// An `AllowedMentions` object with only `users` and `repliedUser` enabled.
846 | public static let `default` = AllowedMentions(users: true, roles: false, repliedUser: true, everyone: false)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'AllowedMentions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
847 |
848 | /// An `AllowedMentions` object with everything disabled.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:663:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
661 |
662 | /// Has all caching capabilities enabled and a max message cache size of 1,500.
663 | public static let `default` = CacheManager(messages: 1500, users: true, members: true)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' 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
664 |
665 | /// Has `users` caching capabilities disabled and a max message cache size of 500.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:660:23: warning: static property 'scaled' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
660 | public static let scaled = CacheManager(messages: 10_000, users: true, members: true)
| |- warning: static property 'scaled' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'scaled' 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
661 |
662 | /// Has all caching capabilities enabled and a max message cache size of 1,500.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:666:23: warning: static property 'limited' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
664 |
665 | /// Has `users` caching capabilities disabled and a max message cache size of 500.
666 | public static let limited = CacheManager(messages: 500, users: false, members: true)
| |- warning: static property 'limited' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'limited' 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
667 |
668 | /// Has all caching capabilities disabled and a max message cache size of 100.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:669:23: warning: static property 'restricted' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
667 |
668 | /// Has all caching capabilities disabled and a max message cache size of 100.
669 | public static let restricted = CacheManager(messages: 100, users: false, members: false)
| |- warning: static property 'restricted' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'restricted' 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
670 |
671 | /// Has all caching capabilities disabled and a max message cache size of 0.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:672:23: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
655 |
656 | /// Represents what the bot is permitted to cache.
657 | public struct CacheManager {
| `- note: consider making struct 'CacheManager' conform to the 'Sendable' protocol
658 |
659 | /// Has all caching capabilities enabled and a max message cache size of 10,000.
:
670 |
671 | /// Has all caching capabilities disabled and a max message cache size of 0.
672 | public static let none = CacheManager(messages: 0, users: false, members: false)
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'CacheManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'none' 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
673 |
674 | /// The amount of messages that are allowed to be cached.
/host/spi-builder-workspace/Sources/Discord/Discord.swift:349:28: warning: capture of 'self' with non-sendable type 'Bot' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |
28 | /// Represents a Discord bot.
29 | public class Bot {
| `- note: class 'Bot' does not conform to the 'Sendable' protocol
30 |
31 | /// Version of the library.
:
347 | if !isConnected {
348 | try! app.eventLoopGroup.any().makeFutureWithTask {
349 | try! await self.gw.startNewSession()
| `- warning: capture of 'self' with non-sendable type 'Bot' in a `@Sendable` closure; this is an error in the Swift 6 language mode
350 | }.wait()
351 | if let onceExecute {
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:202:17: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
200 | on: elg,
201 | onUpgrade: { socket in
202 | self.websocketSetup(websocket: socket)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | Log.message("[Reconnect] connection successful - sending RESUME payload...")
204 | self.sendFrame(resumePayload)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:204:32: warning: capture of 'resumePayload' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | self.websocketSetup(websocket: socket)
203 | Log.message("[Reconnect] connection successful - sending RESUME payload...")
204 | self.sendFrame(resumePayload)
| `- warning: capture of 'resumePayload' with non-sendable type 'JSON' (aka 'Dictionary<String, Any>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
205 | }
206 | ).get()
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:213:45: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
211 | ws = websocket
212 | receive()
213 | ws.onClose.whenComplete { _ in try! self.websocketClosed() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | }
215 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:241:16: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
239 | // so a 1.1 second delay should be more than enough.
240 | elg.any().scheduleTask(in: .milliseconds(1100)) {
241 | if self.clientHeartbeatAcks > 0 {
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
242 | self.clientHeartbeatAcks = -1
243 | Log.message("heartbeat ACK (client)")
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:247:31: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
245 | self.clientHeartbeatAcks = 0
246 | Task {
247 | try await self.danglingReconnect(log: "client did not receive HEARTBEAT ACK after a heartbeat was sent - attempting dangling reconnecting...")
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
248 | }
249 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:289:17: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
287 | on: elg,
288 | onUpgrade: { socket in
289 | self.websocketSetup(websocket: socket)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
290 | Log.message("gateway connection established - receiver & onClose set")
291 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:366:21: warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in a `@Sendable` closure; this is an error in the Swift 6 language mode
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:366:21: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated local function; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated local function; this is an error in the Swift 6 language mode
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:386:31: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
384 | else { wsResume?.sequence = gatewayPayload.s! }
385 | Task {
386 | await dispatchAndUpdate(event: event, data: gatewayPayload.d!)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
387 | }
388 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:393:21: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
391 | let reset = { (log: String) -> Void in
392 | Log.message(log)
393 | self.resetGatewayValues(withCancel: false)
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
394 | }
395 | // Discord states there's no need to re-identify after a RECONNECT
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:432:27: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
430 |
431 | heartbeatTask = Task(priority: .background, operation: {
432 | await indefHeartbeat()
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
433 | })
434 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:437:34: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
435 | case Opcode.invalidSession:
436 | Log.message("gateway SESSION INVALIDATED - starting new session...")
437 | Task { try await startNewSession() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
438 |
439 | case Opcode.reconnect:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:442:30: warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
137 | }
138 |
139 | class Gateway {
| `- note: class 'Gateway' does not conform to the 'Sendable' protocol
140 |
141 | var ws: WebSocket!
:
440 | Log.message("gateway requested RECONNECT - reconnecting...")
441 | receivedReconnectRequest = true
442 | Task { await reconnect() }
| `- warning: capture of 'self' with non-sendable type 'Gateway' in an isolated closure; this is an error in the Swift 6 language mode
443 |
444 | case Opcode.heartbeat:
/host/spi-builder-workspace/Sources/Discord/Discord.swift:352:22: 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
350 | }.wait()
351 | if let onceExecute {
352 | Task { await onceExecute() }
| | `- note: closure captures 'onceExecute' which is accessible to code in the current 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
353 | self.onceExecute = nil
354 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:300:18: 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
298 | func new(log: String) {
299 | Log.message(log + " - starting new session...")
300 | Task { try await startNewSession() }
| | `- note: closure captures 'self' which is accessible to code in the current 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
301 | }
302 |
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:354:22: 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
352 | if bot.isConnected && !receivedReconnectRequest {
353 | nilClose = true
354 | 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
355 | try await self.danglingReconnect(log: "gateway disconnected with nil close code - bot connected/no reconnect request - attempting dangling reconnect...")
| `- note: closure captures 'self' which is accessible to code in the current task
356 | }
357 | } else {
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:385:21: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
383 | }
384 | else { wsResume?.sequence = gatewayPayload.s! }
385 | Task {
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
386 | await dispatchAndUpdate(event: event, data: gatewayPayload.d!)
387 | }
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:442:17: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
440 | Log.message("gateway requested RECONNECT - reconnecting...")
441 | receivedReconnectRequest = true
442 | Task { await reconnect() }
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
443 |
444 | case Opcode.heartbeat:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:437:17: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> (@out τ_0_0, @error any Error) for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
364 | private func receive() {
365 | ws.onText { [unowned self] (_, message) in
366 | defer { receive() }
| `- note: access can happen concurrently
367 |
368 | let resumePayload = HTTPClient.strJsonToDict(message)
:
435 | case Opcode.invalidSession:
436 | Log.message("gateway SESSION INVALIDATED - starting new session...")
437 | Task { try await startNewSession() }
| `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> (@out τ_0_0, @error any Error) for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
438 |
439 | case Opcode.reconnect:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:431:33: warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
429 | heartbeatTask?.cancel()
430 |
431 | heartbeatTask = Task(priority: .background, operation: {
| | `- warning: value of non-Sendable type '@isolated(any) @async @callee_guaranteed @substituted <τ_0_0> () -> @out τ_0_0 for <()>' accessed after being transferred; later accesses could race; this is an error in the Swift 6 language mode
| `- note: access can happen concurrently
432 | await indefHeartbeat()
433 | })
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:920:18: 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
918 | let interaction = Interaction(bot: bot, interactionData: data)
919 | dispatch({ await $0.onInteractionCreate(interaction: interaction) })
920 | Task { await handleInteractions(interaction: interaction) }
| | `- note: closure captures 'self' which is accessible to code in the current 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
921 |
922 | case .inviteCreate:
/host/spi-builder-workspace/Sources/Discord/Gateway.swift:1422:18: 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
1420 | for element in self {
1421 | guard element.isEnabled else { continue }
1422 | Task { await operation(element) }
| | | `- note: closure captures non-Sendable 'element'
| | `- note: closure captures non-Sendable 'operation'
| `- 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
1423 | }
1424 | }
Build complete! (187.37s)
Build complete.
{
"dependencies" : [
{
"identity" : "websocket-kit",
"requirement" : {
"range" : [
{
"lower_bound" : "2.14.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/websocket-kit.git"
},
{
"identity" : "vapor",
"requirement" : {
"range" : [
{
"lower_bound" : "4.84.3",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/vapor.git"
}
],
"manifest_display_name" : "discord",
"name" : "discord",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "Discord",
"targets" : [
"Discord"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "DiscordTests",
"module_type" : "SwiftTarget",
"name" : "DiscordTests",
"path" : "Tests/DiscordTests",
"sources" : [
"DiscordTests.swift"
],
"target_dependencies" : [
"Discord"
],
"type" : "test"
},
{
"c99name" : "Discord",
"module_type" : "SwiftTarget",
"name" : "Discord",
"path" : "Sources/Discord",
"product_dependencies" : [
"WebSocketKit",
"Vapor"
],
"product_memberships" : [
"Discord"
],
"sources" : [
"Discord.swift",
"Gateway.swift",
"Http.swift",
"Models/Application.swift",
"Models/Asset.swift",
"Models/AuditLogs.swift",
"Models/AutoModeration.swift",
"Models/Channel.swift",
"Models/Color.swift",
"Models/Components.swift",
"Models/Embed.swift",
"Models/Emoji.swift",
"Models/Error.swift",
"Models/File.swift",
"Models/Guild.swift",
"Models/Intents.swift",
"Models/Interactions.swift",
"Models/Invite.swift",
"Models/Member.swift",
"Models/Message.swift",
"Models/Permissions.swift",
"Models/Role.swift",
"Models/Sticker.swift",
"Models/User.swift",
"Models/Webhook.swift",
"Utils.swift"
],
"type" : "library"
}
],
"tools_version" : "5.8"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.