Build Information
Failed to build SwiftDisc, reference v0.12.0 (b7ff58), with Swift 6.1 for macOS (SPM) on 11 Dec 2025 03:14:43 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64Build Log
| |- warning: static property 'guildScheduledEvents' is not concurrency-safe because non-'Sendable' type 'GatewayIntents' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'guildScheduledEvents' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | public static let autoModerationConfiguration = GatewayIntents(rawValue: 1 << 20)
25 | public static let autoModerationExecution = GatewayIntents(rawValue: 1 << 21)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/Intents.swift:24:23: warning: static property 'autoModerationConfiguration' is not concurrency-safe because non-'Sendable' type 'GatewayIntents' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct GatewayIntents: OptionSet, Codable, Hashable {
| `- note: consider making struct 'GatewayIntents' conform to the 'Sendable' protocol
4 | public let rawValue: UInt64
5 | public init(rawValue: UInt64) { self.rawValue = rawValue }
:
22 | public static let messageContent = GatewayIntents(rawValue: 1 << 15)
23 | public static let guildScheduledEvents = GatewayIntents(rawValue: 1 << 16)
24 | public static let autoModerationConfiguration = GatewayIntents(rawValue: 1 << 20)
| |- warning: static property 'autoModerationConfiguration' is not concurrency-safe because non-'Sendable' type 'GatewayIntents' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'autoModerationConfiguration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 | public static let autoModerationExecution = GatewayIntents(rawValue: 1 << 21)
26 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/Intents.swift:25:23: warning: static property 'autoModerationExecution' is not concurrency-safe because non-'Sendable' type 'GatewayIntents' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct GatewayIntents: OptionSet, Codable, Hashable {
| `- note: consider making struct 'GatewayIntents' conform to the 'Sendable' protocol
4 | public let rawValue: UInt64
5 | public init(rawValue: UInt64) { self.rawValue = rawValue }
:
23 | public static let guildScheduledEvents = GatewayIntents(rawValue: 1 << 16)
24 | public static let autoModerationConfiguration = GatewayIntents(rawValue: 1 << 20)
25 | public static let autoModerationExecution = GatewayIntents(rawValue: 1 << 21)
| |- warning: static property 'autoModerationExecution' is not concurrency-safe because non-'Sendable' type 'GatewayIntents' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'autoModerationExecution' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 | }
27 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:50:24: warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
48 | self.token = token
49 | self.http = HTTPClient(token: token, configuration: configuration)
50 | self.gateway = GatewayClient(token: token, configuration: configuration)
| |- warning: sending 'configuration' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'configuration' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
51 | self.configuration = configuration
52 | if configuration.enableVoiceExperimental {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:57:36: warning: sending 'guildId' risks causing data races; this is an error in the Swift 6 language mode
55 | configuration: configuration,
56 | sendVoiceStateUpdate: { [weak gateway] (guildId, channelId, selfMute, selfDeaf) async in
57 | await gateway?.updateVoiceState(guildId: guildId, channelId: channelId, selfMute: selfMute, selfDeaf: selfDeaf)
| |- warning: sending 'guildId' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'guildId' to actor-isolated instance method 'updateVoiceState(guildId:channelId:selfMute:selfDeaf:)' risks causing data races between actor-isolated and task-isolated uses
58 | }
59 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:57:36: warning: sending 'channelId' risks causing data races; this is an error in the Swift 6 language mode
55 | configuration: configuration,
56 | sendVoiceStateUpdate: { [weak gateway] (guildId, channelId, selfMute, selfDeaf) async in
57 | await gateway?.updateVoiceState(guildId: guildId, channelId: channelId, selfMute: selfMute, selfDeaf: selfDeaf)
| |- warning: sending 'channelId' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'channelId' to actor-isolated instance method 'updateVoiceState(guildId:channelId:selfMute:selfDeaf:)' risks causing data races between actor-isolated and task-isolated uses
58 | }
59 | )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:67: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
65 | vc.setOnFrame { [weak self] frame in
66 | guard let self, let cb = self.onVoiceFrame else { return }
67 | 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
68 | await cb(frame)
| | `- note: closure captures non-Sendable 'frame'
| `- note: closure captures non-Sendable 'cb'
69 | }
70 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:400:27: warning: sending 'intents' risks causing data races; this is an error in the Swift 6 language mode
398 |
399 | public func loginAndConnect(intents: GatewayIntents) async throws {
400 | try await gateway.connect(intents: intents, shard: nil, eventSink: { [weak self] event in
| |- warning: sending 'intents' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'intents' to actor-isolated instance method 'connect(intents:shard:eventSink:)' risks causing data races between actor-isolated and task-isolated uses
401 | guard let self = self else { return }
402 | Task { await self.dispatcher.process(event: event, client: self) }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:400:27: warning: sending value of non-Sendable type '(DiscordEvent) -> Void' risks causing data races; this is an error in the Swift 6 language mode
398 |
399 | public func loginAndConnect(intents: GatewayIntents) async throws {
400 | try await gateway.connect(intents: intents, shard: nil, eventSink: { [weak self] event in
| |- warning: sending value of non-Sendable type '(DiscordEvent) -> Void' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type '(DiscordEvent) -> Void' to actor-isolated instance method 'connect(intents:shard:eventSink:)' risks causing races in between task-isolated and actor-isolated uses
401 | guard let self = self else { return }
402 | Task { await self.dispatcher.process(event: event, client: self) }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:402: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
400 | try await gateway.connect(intents: intents, shard: nil, eventSink: { [weak self] event in
401 | guard let self = self else { return }
402 | Task { await self.dispatcher.process(event: event, client: self) }
| | | `- note: closure captures non-Sendable 'event'
| | `- note: closure captures non-Sendable 'self'
| `- 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
403 | })
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:402:42: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
400 | try await gateway.connect(intents: intents, shard: nil, eventSink: { [weak self] event in
401 | guard let self = self else { return }
402 | Task { await self.dispatcher.process(event: event, client: self) }
| |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'event' to actor-isolated instance method 'process(event:client:)' risks causing data races between actor-isolated and task-isolated uses
403 | })
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:402:42: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
400 | try await gateway.connect(intents: intents, shard: nil, eventSink: { [weak self] event in
401 | guard let self = self else { return }
402 | Task { await self.dispatcher.process(event: event, client: self) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to actor-isolated instance method 'process(event:client:)' risks causing data races between actor-isolated and task-isolated uses
403 | })
404 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:408:27: warning: sending 'intents' risks causing data races; this is an error in the Swift 6 language mode
406 | // Sharded connect helper
407 | public func loginAndConnectSharded(index: Int, total: Int, intents: GatewayIntents) async throws {
408 | try await gateway.connect(intents: intents, shard: (index, total), eventSink: { [weak self] event in
| |- warning: sending 'intents' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'intents' to actor-isolated instance method 'connect(intents:shard:eventSink:)' risks causing data races between actor-isolated and task-isolated uses
409 | guard let self = self else { return }
410 | Task { await self.dispatcher.process(event: event, client: self) }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:408:27: warning: sending value of non-Sendable type '(DiscordEvent) -> Void' risks causing data races; this is an error in the Swift 6 language mode
406 | // Sharded connect helper
407 | public func loginAndConnectSharded(index: Int, total: Int, intents: GatewayIntents) async throws {
408 | try await gateway.connect(intents: intents, shard: (index, total), eventSink: { [weak self] event in
| |- warning: sending value of non-Sendable type '(DiscordEvent) -> Void' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type '(DiscordEvent) -> Void' to actor-isolated instance method 'connect(intents:shard:eventSink:)' risks causing races in between task-isolated and actor-isolated uses
409 | guard let self = self else { return }
410 | Task { await self.dispatcher.process(event: event, client: self) }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:410: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
408 | try await gateway.connect(intents: intents, shard: (index, total), eventSink: { [weak self] event in
409 | guard let self = self else { return }
410 | Task { await self.dispatcher.process(event: event, client: self) }
| | | `- note: closure captures non-Sendable 'event'
| | `- note: closure captures non-Sendable 'self'
| `- 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
411 | })
412 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:410:42: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
408 | try await gateway.connect(intents: intents, shard: (index, total), eventSink: { [weak self] event in
409 | guard let self = self else { return }
410 | Task { await self.dispatcher.process(event: event, client: self) }
| |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'event' to actor-isolated instance method 'process(event:client:)' risks causing data races between actor-isolated and task-isolated uses
411 | })
412 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:410:42: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
408 | try await gateway.connect(intents: intents, shard: (index, total), eventSink: { [weak self] event in
409 | guard let self = self else { return }
410 | Task { await self.dispatcher.process(event: event, client: self) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to actor-isolated instance method 'process(event:client:)' risks causing data races between actor-isolated and task-isolated uses
411 | })
412 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:437:23: warning: sending 'activities' risks causing data races; this is an error in the Swift 6 language mode
435 | // Phase 3: Presence helpers
436 | public func setPresence(status: String, activities: [PresenceUpdatePayload.Activity] = [], afk: Bool = false, since: Int? = nil) async {
437 | await gateway.setPresence(status: status, activities: activities, afk: afk, since: since)
| |- warning: sending 'activities' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'activities' to actor-isolated instance method 'setPresence(status:activities:afk:since:)' risks causing data races between actor-isolated and task-isolated uses
438 | }
439 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/DiscordClient.swift:491:28: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
489 | // MARK: - Internal event emission (called by EventDispatcher)
490 | func _internalEmitEvent(_ event: DiscordEvent) {
491 | eventContinuation?.yield(event)
| |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'event' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
492 | }
493 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:37:27: warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
35 | let enc = JSONEncoder()
36 | let data = try enc.encode(payload)
37 | try await socket?.send(.string(String(decoding: data, as: UTF8.self)))
| |- warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated value of non-Sendable type 'any WebSocketClient' to nonisolated instance method 'send' risks causing races in between 'self'-isolated and nonisolated uses
38 | }
39 | private var status: Status = .disconnected
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:60:32: warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
58 | let payload = GatewayPayload(op: .voiceStateUpdate, d: VoiceStateUpdateData(guild_id: guildId, channel_id: channelId, self_mute: selfMute, self_deaf: selfDeaf), s: nil, t: nil)
59 | if let data = try? JSONEncoder().encode(payload) {
60 | try? await socket?.send(.string(String(decoding: data, as: UTF8.self)))
| |- warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated value of non-Sendable type 'any WebSocketClient' to nonisolated instance method 'send' risks causing races in between 'self'-isolated and nonisolated uses
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:85:62: warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
83 |
84 | // Receive initial HELLO frame from the gateway
85 | guard case let .string(helloText) = try await socket.receive() else {
| |- warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'socket' to nonisolated instance method 'receive()' risks causing data races between nonisolated and 'self'-isolated uses
86 | throw DiscordError.gateway("Expected HELLO string frame")
87 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:104:30: warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
102 | let payload = GatewayPayload(op: .resume, d: resume, s: nil, t: nil)
103 | let data = try enc.encode(payload)
104 | try await socket.send(.string(String(decoding: data, as: UTF8.self)))
| |- warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'socket' to nonisolated instance method 'send' risks causing data races between nonisolated and 'self'-isolated uses
105 | } else {
106 | self.status = .identifying
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:111:30: warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
109 | let payload = GatewayPayload(op: .identify, d: identify, s: nil, t: nil)
110 | let data = try enc.encode(payload)
111 | try await socket.send(.string(String(decoding: data, as: UTF8.self)))
| |- warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'socket' to nonisolated instance method 'send' risks causing data races between nonisolated and 'self'-isolated uses
112 | }
113 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:115:23: warning: passing closure as a 'sending' parameter risks causing data races between 'self'-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
113 |
114 | // Start read loop for gateway messages
115 | Task.detached { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between 'self'-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
116 | await self?.readLoop(eventSink: eventSink)
| `- note: closure captures 'eventSink' which is accessible to 'self'-isolated code
117 | }
118 | // Wait for READY or RESUMED before returning
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:382:23: warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
380 | // Basic reconnect: close existing socket and perform a fresh connect
381 | if !allowReconnect { return }
382 | await socket?.close()
| |- warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated value of non-Sendable type 'any WebSocketClient' to nonisolated instance method 'close()' risks causing races in between 'self'-isolated and nonisolated uses
383 | socket = nil
384 | heartbeatTask?.cancel()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:131:44: warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
129 | while true {
130 | do {
131 | let msg = try await socket.receive()
| |- warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'socket' to nonisolated instance method 'receive()' risks causing data races between nonisolated and 'self'-isolated uses
132 | let data: Data
133 | switch msg {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:116:25: warning: sending 'eventSink' risks causing data races; this is an error in the Swift 6 language mode
114 | // Start read loop for gateway messages
115 | Task.detached { [weak self] in
116 | await self?.readLoop(eventSink: eventSink)
| |- warning: sending 'eventSink' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'eventSink' to actor-isolated instance method 'readLoop(eventSink:)' risks causing data races between actor-isolated and task-isolated uses
117 | }
118 | // Wait for READY or RESUMED before returning
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:367:35: warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
365 | let payload = GatewayPayload(op: .heartbeat, d: hb, s: nil, t: nil)
366 | let data = try JSONEncoder().encode(payload)
367 | try await socket?.send(.string(String(decoding: data, as: UTF8.self)))
| |- warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated value of non-Sendable type 'any WebSocketClient' to nonisolated instance method 'send' risks causing races in between 'self'-isolated and nonisolated uses
368 | awaitingHeartbeatAck = true
369 | lastHeartbeatSentAt = Date()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:406:23: warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
404 |
405 | func close() async {
406 | await socket?.close()
| |- warning: sending value of non-Sendable type 'any WebSocketClient' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated value of non-Sendable type 'any WebSocketClient' to nonisolated instance method 'close()' risks causing races in between 'self'-isolated and nonisolated uses
407 | socket = nil
408 | heartbeatTask?.cancel()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayClient.swift:419:31: warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
417 | let payload = GatewayPayload(op: .presenceUpdate, d: p, s: nil, t: nil)
418 | if let data = try? JSONEncoder().encode(payload) {
419 | try? await socket.send(.string(String(decoding: data, as: UTF8.self)))
| |- warning: sending 'socket' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'socket' to nonisolated instance method 'send' risks causing data races between nonisolated and 'self'-isolated uses
420 | }
421 | }
[58/63] Compiling SwiftDisc AutocompleteRouter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:54:39: warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
| `- warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
56 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Guild.swift:3:15: note: consider making struct 'Guild' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Guild: Codable, Hashable {
| `- note: consider making struct 'Guild' conform to the 'Sendable' protocol
4 | public let id: GuildID
5 | public let name: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:55:41: warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
| `- warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
56 |
57 | // Fetch member roles from cache or assume they are provided; for simplicity, assume roles are cached or passed
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Channel.swift:3:15: note: consider making struct 'Channel' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Channel: Codable, Hashable {
| `- note: consider making struct 'Channel' conform to the 'Sendable' protocol
4 | public let id: ChannelID
5 | public let type: Int
[59/63] Compiling SwiftDisc CommandRouter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:54:39: warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
| `- warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
56 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Guild.swift:3:15: note: consider making struct 'Guild' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Guild: Codable, Hashable {
| `- note: consider making struct 'Guild' conform to the 'Sendable' protocol
4 | public let id: GuildID
5 | public let name: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:55:41: warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
| `- warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
56 |
57 | // Fetch member roles from cache or assume they are provided; for simplicity, assume roles are cached or passed
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Channel.swift:3:15: note: consider making struct 'Channel' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Channel: Codable, Hashable {
| `- note: consider making struct 'Channel' conform to the 'Sendable' protocol
4 | public let id: ChannelID
5 | public let type: Int
[60/63] Compiling SwiftDisc ComponentsBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:54:39: warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
| `- warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
56 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Guild.swift:3:15: note: consider making struct 'Guild' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Guild: Codable, Hashable {
| `- note: consider making struct 'Guild' conform to the 'Sendable' protocol
4 | public let id: GuildID
5 | public let name: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:55:41: warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
| `- warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
56 |
57 | // Fetch member roles from cache or assume they are provided; for simplicity, assume roles are cached or passed
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Channel.swift:3:15: note: consider making struct 'Channel' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Channel: Codable, Hashable {
| `- note: consider making struct 'Channel' conform to the 'Sendable' protocol
4 | public let id: ChannelID
5 | public let type: Int
[61/63] Compiling SwiftDisc Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:54:39: warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
| `- warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
56 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Guild.swift:3:15: note: consider making struct 'Guild' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Guild: Codable, Hashable {
| `- note: consider making struct 'Guild' conform to the 'Sendable' protocol
4 | public let id: GuildID
5 | public let name: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:55:41: warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
| `- warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
56 |
57 | // Fetch member roles from cache or assume they are provided; for simplicity, assume roles are cached or passed
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Channel.swift:3:15: note: consider making struct 'Channel' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Channel: Codable, Hashable {
| `- note: consider making struct 'Channel' conform to the 'Sendable' protocol
4 | public let id: ChannelID
5 | public let type: Int
[62/63] Compiling SwiftDisc Permissions.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:54:39: warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
| `- warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
56 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Guild.swift:3:15: note: consider making struct 'Guild' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Guild: Codable, Hashable {
| `- note: consider making struct 'Guild' conform to the 'Sendable' protocol
4 | public let id: GuildID
5 | public let name: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:55:41: warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
| `- warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
56 |
57 | // Fetch member roles from cache or assume they are provided; for simplicity, assume roles are cached or passed
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Channel.swift:3:15: note: consider making struct 'Channel' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Channel: Codable, Hashable {
| `- note: consider making struct 'Channel' conform to the 'Sendable' protocol
4 | public let id: ChannelID
5 | public let type: Int
[63/63] Compiling SwiftDisc ShardManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:54:39: warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
| `- warning: non-sendable result type 'Guild?' cannot be sent from actor-isolated context in call to instance method 'getGuild(id:)'; this is an error in the Swift 6 language mode
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
56 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Guild.swift:3:15: note: consider making struct 'Guild' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Guild: Codable, Hashable {
| `- note: consider making struct 'Guild' conform to the 'Sendable' protocol
4 | public let id: GuildID
5 | public let name: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:55:41: warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
55 | let channel = await cache.getChannel(id: channelId) else { return nil }
| `- warning: non-sendable result type 'Channel?' cannot be sent from actor-isolated context in call to instance method 'getChannel(id:)'; this is an error in the Swift 6 language mode
56 |
57 | // Fetch member roles from cache or assume they are provided; for simplicity, assume roles are cached or passed
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/Channel.swift:3:15: note: consider making struct 'Channel' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct Channel: Codable, Hashable {
| `- note: consider making struct 'Channel' conform to the 'Sendable' protocol
4 | public let id: ChannelID
5 | public let type: Int
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/56] Compiling SwiftDisc DiscordError.swift
[3/56] Compiling SwiftDisc DiscordUtils.swift
[4/56] Compiling SwiftDisc EventDispatcher.swift
[5/56] Compiling SwiftDisc JSONValue.swift
[6/56] Compiling SwiftDisc AdvancedMessagePayloads.swift
[7/56] Compiling SwiftDisc ApplicationRoleConnection.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[8/62] Emitting module SwiftDisc
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
[9/62] Compiling SwiftDisc Files.swift
[10/62] Compiling SwiftDisc Guild.swift
[11/62] Compiling SwiftDisc GuildBan.swift
[12/62] Compiling SwiftDisc GuildMember.swift
[13/62] Compiling SwiftDisc GuildWidgetSettings.swift
[14/62] Compiling SwiftDisc Interaction.swift
[15/62] Compiling SwiftDisc ScheduledEventUser.swift
[16/62] Compiling SwiftDisc Snowflake.swift
[17/62] Compiling SwiftDisc StageInstance.swift
[18/62] Compiling SwiftDisc Sticker.swift
[19/62] Compiling SwiftDisc Template.swift
[20/62] Compiling SwiftDisc Thread.swift
[21/62] Compiling SwiftDisc Invite.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[22/62] Compiling SwiftDisc Message.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[23/62] Compiling SwiftDisc MessageComponents.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[24/62] Compiling SwiftDisc PartialGuild.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[25/62] Compiling SwiftDisc Role.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[26/62] Compiling SwiftDisc ScheduledEvent.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:46:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
44 |
45 | public struct ActionRow: Codable, Hashable {
46 | public let type: Int = 1
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
47 | public let components: [MessageComponent]
48 | public init(components: [MessageComponent]) { self.components = components }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:52:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
50 |
51 | public struct Button: Codable, Hashable {
52 | public let type: Int = 2
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
53 | public let style: Int
54 | public let label: String?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:75:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
73 | public let `default`: Bool?
74 | }
75 | public let type: Int = 3
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
76 | public let custom_id: String
77 | public let options: [Option]
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Models/MessageComponents.swift:94:20: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
92 | public struct TextInput: Codable, Hashable {
93 | public enum Style: Int, Codable { case short = 1, paragraph = 2 }
94 | public let type: Int = 4
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'type' case to silence this warning
| `- note: make the property mutable instead
95 | public let custom_id: String
96 | public let style: Style
[27/62] Compiling SwiftDisc Attachment.swift
[28/62] Compiling SwiftDisc AuditLog.swift
[29/62] Compiling SwiftDisc AutoModeration.swift
[30/62] Compiling SwiftDisc Channel.swift
[31/62] Compiling SwiftDisc Embed.swift
[32/62] Compiling SwiftDisc Emoji.swift
[33/62] Compiling SwiftDisc ShardingGatewayManager.swift
[34/62] Compiling SwiftDisc SlashCommandBuilder.swift
[35/62] Compiling SwiftDisc SlashCommandRouter.swift
[36/62] Compiling SwiftDisc Utilities.swift
[37/62] Compiling SwiftDisc Cache.swift
[38/62] Compiling SwiftDisc DiscordConfiguration.swift
[39/62] Compiling SwiftDisc User.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
27 | if remaining <= 0 {
28 | let now = Date()
[40/62] Compiling SwiftDisc Webhook.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
27 | if remaining <= 0 {
28 | let now = Date()
[41/62] Compiling SwiftDisc HTTPClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
27 | if remaining <= 0 {
28 | let now = Date()
[42/62] Compiling SwiftDisc RateLimiter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
27 | if remaining <= 0 {
28 | let now = Date()
[43/62] Compiling SwiftDisc AudioSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
27 | if remaining <= 0 {
28 | let now = Date()
[44/62] Compiling SwiftDisc PipeOpusSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/REST/RateLimiter.swift:26:109: warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
24 |
25 | // Per-route bucket control
26 | if let state = buckets[routeKey], let resetAt = state.resetAt, let remaining = state.remaining, let limit = state.limit {
| `- warning: immutable value 'limit' was never used; consider replacing with '_' or removing it
27 | if remaining <= 0 {
28 | let now = Date()
[45/62] Compiling SwiftDisc AutocompleteRouter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[46/62] Compiling SwiftDisc CommandRouter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[47/62] Compiling SwiftDisc ComponentsBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[48/62] Compiling SwiftDisc Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[49/62] Compiling SwiftDisc Permissions.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[50/62] Compiling SwiftDisc ShardManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:52:133: error: cannot find type 'PermissionBitset' in scope
50 |
51 | // New method using cache for effective permissions
52 | public static func effectivePermissionsWithCache(cache: Cache, userId: UserID, guildId: GuildID, channelId: ChannelID) async -> PermissionBitset? {
| `- error: cannot find type 'PermissionBitset' in scope
53 | // Fetch guild and channel from cache
54 | guard let guild = await cache.getGuild(id: guildId),
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:64:13: error: cannot find 'PermissionBitset' in scope
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
65 | } ?? []
66 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:63:32: error: value of type 'Guild' has no member 'roles'
61 |
62 | // Convert string permissions to PermissionBitset (assuming guild roles have permissions)
63 | let guildRoles = guild.roles?.compactMap { role in
| `- error: value of type 'Guild' has no member 'roles'
64 | PermissionBitset(rawValue: UInt64(role.permissions ?? "0") ?? 0)
65 | } ?? []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:68:21: error: cannot find 'PermissionBitset' in scope
66 |
67 | // Compute effective permissions similar to existing logic but with PermissionBitset
68 | var allow = PermissionBitset(rawValue: 0)
| `- error: cannot find 'PermissionBitset' in scope
69 |
70 | // 1) Base = @everyone role perms (find @everyone role)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:76:127: error: cannot find 'PermissionBitset' in scope
74 |
75 | // 2) Aggregate member roles (OR operation)
76 | let rolePerms = memberRoleIds.compactMap { roleId in guildRoles.first { $0.id == roleId }?.permissionsBitset }.reduce(PermissionBitset(), { $0.union($1) })
| `- error: cannot find 'PermissionBitset' in scope
77 | allow.formUnion(rolePerms)
78 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:83:24: error: cannot find 'PermissionBitset' in scope
81 | // Apply @everyone overwrite
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
85 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:84:23: error: cannot find 'PermissionBitset' in scope
82 | if let everyoneOW = overwrites.first(where: { $0.type == 0 && $0.id.rawValue == everyoneRoleId.rawValue }) {
83 | let deny = PermissionBitset(rawValue: UInt64(everyoneOW.deny ?? "0") ?? 0)
84 | let add = PermissionBitset(rawValue: UInt64(everyoneOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
85 | allow.subtract(deny)
86 | allow.formUnion(add)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:38: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:90:69: error: cannot find 'PermissionBitset' in scope
88 | // Apply role overwrites
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
92 | allow.subtract(roleDeny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:37: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:91:68: error: cannot find 'PermissionBitset' in scope
89 | let roleOW = overwrites.filter { ow in ow.type == 0 && memberRoleIds.contains(where: { $0.rawValue == ow.id.rawValue }) }
90 | let roleDeny = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.deny ?? "0") ?? 0)) })
91 | let roleAdd = roleOW.reduce(PermissionBitset(), { $0.union(PermissionBitset(rawValue: UInt64($1.allow ?? "0") ?? 0)) })
| `- error: cannot find 'PermissionBitset' in scope
92 | allow.subtract(roleDeny)
93 | allow.formUnion(roleAdd)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:96:24: error: cannot find 'PermissionBitset' in scope
94 | // Apply member overwrite
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
98 | allow.subtract(deny)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/HighLevel/Permissions.swift:97:23: error: cannot find 'PermissionBitset' in scope
95 | if let memberOW = overwrites.first(where: { $0.type == 1 && $0.id.rawValue == userId.rawValue }) {
96 | let deny = PermissionBitset(rawValue: UInt64(memberOW.deny ?? "0") ?? 0)
97 | let add = PermissionBitset(rawValue: UInt64(memberOW.allow ?? "0") ?? 0)
| `- error: cannot find 'PermissionBitset' in scope
98 | allow.subtract(deny)
99 | allow.formUnion(add)
[51/62] Compiling SwiftDisc Secretbox.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[52/62] Compiling SwiftDisc VoiceClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[53/62] Compiling SwiftDisc VoiceGateway.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[54/62] Compiling SwiftDisc VoiceModels.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[55/62] Compiling SwiftDisc VoiceReceiver.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[56/62] Compiling SwiftDisc VoiceSender.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:236:9: warning: variable 'r0' was never mutated; consider changing to 'let' constant
234 | let s = Array(key[16..<32])
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
| `- warning: variable 'r0' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:237:9: warning: variable 'r1' was never mutated; consider changing to 'let' constant
235 |
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
| `- warning: variable 'r1' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:238:9: warning: variable 'r2' was never mutated; consider changing to 'let' constant
236 | var r0 = UInt32(loadLE(r[0..<4])) & 0x3ffffff
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
| `- warning: variable 'r2' was never mutated; consider changing to 'let' constant
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:239:9: warning: variable 'r3' was never mutated; consider changing to 'let' constant
237 | var r1 = (UInt32(loadLE(r[3..<7])) >> 2) & 0x3ffff03
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
| `- warning: variable 'r3' was never mutated; consider changing to 'let' constant
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
241 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:240:9: warning: variable 'r4' was never mutated; consider changing to 'let' constant
238 | var r2 = (UInt32(loadLE(r[6..<10])) >> 4) & 0x3ffc0ff
239 | var r3 = (UInt32(loadLE(r[9..<13])) >> 6) & 0x3f03fff
240 | var r4 = (UInt32(loadLE(r[12..<16])) >> 8) & 0x00fffff
| `- warning: variable 'r4' was never mutated; consider changing to 'let' constant
241 |
242 | var h0: UInt32 = 0, h1: UInt32 = 0, h2: UInt32 = 0, h3: UInt32 = 0, h4: UInt32 = 0
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:303:9: warning: variable 'f0' was never mutated; consider changing to 'let' constant
301 |
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
| `- warning: variable 'f0' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:304:9: warning: variable 'f1' was never mutated; consider changing to 'let' constant
302 | // Serialize h
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
| `- warning: variable 'f1' was never mutated; consider changing to 'let' constant
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:305:9: warning: variable 'f2' was never mutated; consider changing to 'let' constant
303 | var f0 = (h0 | (h1 << 26)) & 0xffffffff
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
| `- warning: variable 'f2' was never mutated; consider changing to 'let' constant
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
307 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Voice/Secretbox.swift:306:9: warning: variable 'f3' was never mutated; consider changing to 'let' constant
304 | var f1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff
305 | var f2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff
306 | var f3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff
| `- warning: variable 'f3' was never mutated; consider changing to 'let' constant
307 |
308 | // Add s
[57/62] Compiling SwiftDisc DiscordClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
[58/62] Compiling SwiftDisc GatewayClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
[59/62] Compiling SwiftDisc GatewayModels.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
[60/62] Compiling SwiftDisc Intents.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
[61/62] Compiling SwiftDisc WebSocket.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
[62/62] Compiling SwiftDisc ActivityBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftDisc/Gateway/GatewayModels.swift:207:16: warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
205 | // MARK: - Request/Receive Guild Members
206 | public struct RequestGuildMembers: Codable, Hashable {
207 | public let op: Int = 8
| |- warning: immutable property will not be decoded because it is declared with an initial value which cannot be overwritten
| |- note: set the initial value via the initializer or explicitly define a CodingKeys enum including a 'op' case to silence this warning
| `- note: make the property mutable instead
208 | public let d: Payload
209 | public struct Payload: Codable, Hashable {
BUILD FAILURE 6.1 macosSpm