Build Information
Successful build of SwinjectMacros, reference main (2931d3
), with Swift 6.1 for macOS (SPM) on 5 Aug 2025 16:34:44 UTC.
Swift 6 data race errors: 88
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
544 | let container = Container()
545 | return container
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:549:24: warning: static property 'namedContainers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
547 |
548 | /// Named containers registry for multi-container scenarios
549 | private static var namedContainers: [String: Container] = [:]
| |- warning: static property 'namedContainers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'namedContainers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'namedContainers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
550 | private static let containerQueue = DispatchQueue(label: "Container.namedContainers", attributes: .concurrent)
551 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:352:26: warning: capture of 'info' with non-sendable type 'LazyPropertyInfo' in a '@Sendable' closure
230 |
231 | /// Individual lazy property resolution information
232 | public struct LazyPropertyInfo {
| `- note: consider making struct 'LazyPropertyInfo' conform to the 'Sendable' protocol
233 | /// Property name
234 | public let propertyName: String
:
350 | public static func registerProperty(_ info: LazyPropertyInfo) {
351 | metricsQueue.async(flags: .barrier) {
352 | let key = "\(info.propertyName):\(info.propertyType)"
| `- warning: capture of 'info' with non-sendable type 'LazyPropertyInfo' in a '@Sendable' closure
353 | self.propertyRegistry[key] = info
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:360:26: warning: capture of 'info' with non-sendable type 'LazyPropertyInfo' in a '@Sendable' closure
230 |
231 | /// Individual lazy property resolution information
232 | public struct LazyPropertyInfo {
| `- note: consider making struct 'LazyPropertyInfo' conform to the 'Sendable' protocol
233 | /// Property name
234 | public let propertyName: String
:
358 | public static func recordResolution(_ info: LazyPropertyInfo) {
359 | metricsQueue.async(flags: .barrier) {
360 | let key = "\(info.propertyName):\(info.propertyType)"
| `- warning: capture of 'info' with non-sendable type 'LazyPropertyInfo' in a '@Sendable' closure
361 | self.propertyRegistry[key] = info
362 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:560:50: warning: capture of 'newContainer' with non-sendable type 'Container' in a '@Sendable' closure
558 | let newContainer = Container()
559 | self.containerQueue.async(flags: .barrier) {
560 | self.namedContainers[name] = newContainer
| `- warning: capture of 'newContainer' with non-sendable type 'Container' in a '@Sendable' closure
561 | }
562 | return newContainer
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 |
4 | import Foundation
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @LazyInject Macro
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/Module.swift:252:24: warning: static property 'flags' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
250 | /// Feature flags system for conditional module loading
251 | public enum FeatureFlags {
252 | private static var flags: Set<String> = []
| |- warning: static property 'flags' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'flags' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'flags' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
253 |
254 | /// Enables a feature flag
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/DebugContainer.swift:333:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ContainerDebugLogger' may have shared mutable state; this is an error in the Swift 6 language mode
330 |
331 | /// Logger for container debug operations
332 | public class ContainerDebugLogger {
| `- note: class 'ContainerDebugLogger' does not conform to the 'Sendable' protocol
333 | public static let shared = ContainerDebugLogger()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ContainerDebugLogger' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
334 |
335 | private var logLevel: DebugLogLevel = .info
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/DebugContainer.swift:454:25: warning: capture of 'self' with non-sendable type 'ContainerMemoryTracker' in a '@Sendable' closure
445 |
446 | /// Memory usage tracking for container debugging
447 | public class ContainerMemoryTracker {
| `- note: class 'ContainerMemoryTracker' does not conform to the 'Sendable' protocol
448 | private var memorySnapshots: [Date: Int] = [:]
449 | private let queue = DispatchQueue(label: "container.memory.tracker")
:
452 | public func takeSnapshot() {
453 | queue.async {
454 | let usage = self.getCurrentMemoryUsage()
| `- warning: capture of 'self' with non-sendable type 'ContainerMemoryTracker' in a '@Sendable' closure
455 | self.memorySnapshots[Date()] = usage
456 | }
[452/482] Compiling SwinjectMacros Interceptor.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:344:24: warning: static property 'propertyRegistry' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
342 | /// Thread-safe lazy injection metrics tracking and reporting
343 | public class LazyInjectionMetrics {
344 | private static var propertyRegistry: [String: LazyPropertyInfo] = [:]
| |- warning: static property 'propertyRegistry' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'propertyRegistry' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'propertyRegistry' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
345 | private static var resolutionHistory: [String: [LazyPropertyInfo]] = [:]
346 | private static let metricsQueue = DispatchQueue(label: "lazy.injection.metrics", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:345:24: warning: static property 'resolutionHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
343 | public class LazyInjectionMetrics {
344 | private static var propertyRegistry: [String: LazyPropertyInfo] = [:]
345 | private static var resolutionHistory: [String: [LazyPropertyInfo]] = [:]
| |- warning: static property 'resolutionHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'resolutionHistory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'resolutionHistory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
346 | private static let metricsQueue = DispatchQueue(label: "lazy.injection.metrics", attributes: .concurrent)
347 | private static let maxHistoryPerProperty = 100 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:543:23: warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
541 | /// Shared container instance for global access
542 | /// Note: Configure this container in your app startup
543 | public static var shared: Container = {
| |- warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
544 | let container = Container()
545 | return container
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:549:24: warning: static property 'namedContainers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
547 |
548 | /// Named containers registry for multi-container scenarios
549 | private static var namedContainers: [String: Container] = [:]
| |- warning: static property 'namedContainers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'namedContainers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'namedContainers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
550 | private static let containerQueue = DispatchQueue(label: "Container.namedContainers", attributes: .concurrent)
551 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:352:26: warning: capture of 'info' with non-sendable type 'LazyPropertyInfo' in a '@Sendable' closure
230 |
231 | /// Individual lazy property resolution information
232 | public struct LazyPropertyInfo {
| `- note: consider making struct 'LazyPropertyInfo' conform to the 'Sendable' protocol
233 | /// Property name
234 | public let propertyName: String
:
350 | public static func registerProperty(_ info: LazyPropertyInfo) {
351 | metricsQueue.async(flags: .barrier) {
352 | let key = "\(info.propertyName):\(info.propertyType)"
| `- warning: capture of 'info' with non-sendable type 'LazyPropertyInfo' in a '@Sendable' closure
353 | self.propertyRegistry[key] = info
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:360:26: warning: capture of 'info' with non-sendable type 'LazyPropertyInfo' in a '@Sendable' closure
230 |
231 | /// Individual lazy property resolution information
232 | public struct LazyPropertyInfo {
| `- note: consider making struct 'LazyPropertyInfo' conform to the 'Sendable' protocol
233 | /// Property name
234 | public let propertyName: String
:
358 | public static func recordResolution(_ info: LazyPropertyInfo) {
359 | metricsQueue.async(flags: .barrier) {
360 | let key = "\(info.propertyName):\(info.propertyType)"
| `- warning: capture of 'info' with non-sendable type 'LazyPropertyInfo' in a '@Sendable' closure
361 | self.propertyRegistry[key] = info
362 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:560:50: warning: capture of 'newContainer' with non-sendable type 'Container' in a '@Sendable' closure
558 | let newContainer = Container()
559 | self.containerQueue.async(flags: .barrier) {
560 | self.namedContainers[name] = newContainer
| `- warning: capture of 'newContainer' with non-sendable type 'Container' in a '@Sendable' closure
561 | }
562 | return newContainer
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/LazyInject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 |
4 | import Foundation
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @LazyInject Macro
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/Module.swift:252:24: warning: static property 'flags' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
250 | /// Feature flags system for conditional module loading
251 | public enum FeatureFlags {
252 | private static var flags: Set<String> = []
| |- warning: static property 'flags' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'flags' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'flags' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
253 |
254 | /// Enables a feature flag
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/DebugContainer.swift:333:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ContainerDebugLogger' may have shared mutable state; this is an error in the Swift 6 language mode
330 |
331 | /// Logger for container debug operations
332 | public class ContainerDebugLogger {
| `- note: class 'ContainerDebugLogger' does not conform to the 'Sendable' protocol
333 | public static let shared = ContainerDebugLogger()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ContainerDebugLogger' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
334 |
335 | private var logLevel: DebugLogLevel = .info
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/DebugContainer.swift:454:25: warning: capture of 'self' with non-sendable type 'ContainerMemoryTracker' in a '@Sendable' closure
445 |
446 | /// Memory usage tracking for container debugging
447 | public class ContainerMemoryTracker {
| `- note: class 'ContainerMemoryTracker' does not conform to the 'Sendable' protocol
448 | private var memorySnapshots: [Date: Int] = [:]
449 | private let queue = DispatchQueue(label: "container.memory.tracker")
:
452 | public func takeSnapshot() {
453 | queue.async {
454 | let usage = self.getCurrentMemoryUsage()
| `- warning: capture of 'self' with non-sendable type 'ContainerMemoryTracker' in a '@Sendable' closure
455 | self.memorySnapshots[Date()] = usage
456 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/DebugContainer.swift:333:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ContainerDebugLogger' may have shared mutable state; this is an error in the Swift 6 language mode
330 |
331 | /// Logger for container debug operations
332 | public class ContainerDebugLogger {
| `- note: class 'ContainerDebugLogger' does not conform to the 'Sendable' protocol
333 | public static let shared = ContainerDebugLogger()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ContainerDebugLogger' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
334 |
335 | private var logLevel: DebugLogLevel = .info
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/DebugContainer.swift:454:25: warning: capture of 'self' with non-sendable type 'ContainerMemoryTracker' in a '@Sendable' closure
445 |
446 | /// Memory usage tracking for container debugging
447 | public class ContainerMemoryTracker {
| `- note: class 'ContainerMemoryTracker' does not conform to the 'Sendable' protocol
448 | private var memorySnapshots: [Date: Int] = [:]
449 | private let queue = DispatchQueue(label: "container.memory.tracker")
:
452 | public func takeSnapshot() {
453 | queue.async {
454 | let usage = self.getCurrentMemoryUsage()
| `- warning: capture of 'self' with non-sendable type 'ContainerMemoryTracker' in a '@Sendable' closure
455 | self.memorySnapshots[Date()] = usage
456 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:172:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
169 |
170 | /// Default preview container implementation
171 | public class DefaultPreviewContainer: SwiftUIPreviewContainer {
| `- note: class 'DefaultPreviewContainer' does not conform to the 'Sendable' protocol
172 | public static let shared = DefaultPreviewContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | private let container = Container()
174 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:223:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| `- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 | import Foundation
4 | import SwiftUI
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @InjectedStateObject Macro
:
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:264:14: warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
234 | extension View {
235 | /// Provide a dependency injection container for StateObject injection
236 | public func stateObjectContainer(_ container: Container) -> some View {
| `- note: calls to instance method 'stateObjectContainer' from outside of its actor context are implicitly asynchronous
237 | environment(\.stateObjectContainer, container)
238 | }
:
255 |
256 | /// Create a preview-configured view with dependencies
257 | public static func previewView(
| `- note: add '@MainActor' to make static method 'previewView(content:dependencies:)' part of global actor 'MainActor'
258 | @ViewBuilder content: @escaping () -> some View,
259 | dependencies: (Container) -> Void
:
262 | dependencies(container)
263 | return content()
264 | .stateObjectContainer(container)
| `- warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:236:24: warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
234 | /// Performance tracking interceptor that measures and reports execution times.
235 | public class PerformanceInterceptor: BaseInterceptor {
236 | private static var performanceMetrics: [String: [Double]] = [:]
| |- warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'performanceMetrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'performanceMetrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
237 | private static let metricsQueue = DispatchQueue(label: "performance.metrics", attributes: .concurrent)
238 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:359:24: warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 | /// Registry for managing interceptor instances and dependency injection integration.
358 | public class InterceptorRegistry {
359 | private static var interceptors: [String: MethodInterceptor] = [:]
| |- warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'interceptors' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'interceptors' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 | private static let registryQueue = DispatchQueue(label: "interceptor.registry", attributes: .concurrent)
361 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:365:39: warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
102 |
103 | /// Protocol that all method interceptors must conform to.
104 | public protocol MethodInterceptor {
| `- note: protocol 'MethodInterceptor' does not conform to the 'Sendable' protocol
105 | /// Called before the intercepted method executes.
106 | /// Can modify parameters, perform validation, setup context, etc.
:
363 | public static func register(interceptor: MethodInterceptor, name: String) {
364 | registryQueue.async(flags: .barrier) {
365 | self.interceptors[name] = interceptor
| `- warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
366 | }
367 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:517:23: warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
515 | extension ObjectScope {
516 | /// Default scope for ViewModel objects
517 | public static let viewModel: ObjectScope = .transient
| |- warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'viewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
518 |
519 | /// Singleton scope for shared ViewModels
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:520:23: warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
518 |
519 | /// Singleton scope for shared ViewModels
520 | public static let sharedViewModel: ObjectScope = .container
| |- warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedViewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
521 | }
522 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:172:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
169 |
170 | /// Default preview container implementation
171 | public class DefaultPreviewContainer: SwiftUIPreviewContainer {
| `- note: class 'DefaultPreviewContainer' does not conform to the 'Sendable' protocol
172 | public static let shared = DefaultPreviewContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | private let container = Container()
174 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:223:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| `- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 | import Foundation
4 | import SwiftUI
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @InjectedStateObject Macro
:
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:264:14: warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
234 | extension View {
235 | /// Provide a dependency injection container for StateObject injection
236 | public func stateObjectContainer(_ container: Container) -> some View {
| `- note: calls to instance method 'stateObjectContainer' from outside of its actor context are implicitly asynchronous
237 | environment(\.stateObjectContainer, container)
238 | }
:
255 |
256 | /// Create a preview-configured view with dependencies
257 | public static func previewView(
| `- note: add '@MainActor' to make static method 'previewView(content:dependencies:)' part of global actor 'MainActor'
258 | @ViewBuilder content: @escaping () -> some View,
259 | dependencies: (Container) -> Void
:
262 | dependencies(container)
263 | return content()
264 | .stateObjectContainer(container)
| `- warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:236:24: warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
234 | /// Performance tracking interceptor that measures and reports execution times.
235 | public class PerformanceInterceptor: BaseInterceptor {
236 | private static var performanceMetrics: [String: [Double]] = [:]
| |- warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'performanceMetrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'performanceMetrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
237 | private static let metricsQueue = DispatchQueue(label: "performance.metrics", attributes: .concurrent)
238 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:359:24: warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 | /// Registry for managing interceptor instances and dependency injection integration.
358 | public class InterceptorRegistry {
359 | private static var interceptors: [String: MethodInterceptor] = [:]
| |- warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'interceptors' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'interceptors' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 | private static let registryQueue = DispatchQueue(label: "interceptor.registry", attributes: .concurrent)
361 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:365:39: warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
102 |
103 | /// Protocol that all method interceptors must conform to.
104 | public protocol MethodInterceptor {
| `- note: protocol 'MethodInterceptor' does not conform to the 'Sendable' protocol
105 | /// Called before the intercepted method executes.
106 | /// Can modify parameters, perform validation, setup context, etc.
:
363 | public static func register(interceptor: MethodInterceptor, name: String) {
364 | registryQueue.async(flags: .barrier) {
365 | self.interceptors[name] = interceptor
| `- warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
366 | }
367 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:517:23: warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
515 | extension ObjectScope {
516 | /// Default scope for ViewModel objects
517 | public static let viewModel: ObjectScope = .transient
| |- warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'viewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
518 |
519 | /// Singleton scope for shared ViewModels
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:520:23: warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
518 |
519 | /// Singleton scope for shared ViewModels
520 | public static let sharedViewModel: ObjectScope = .container
| |- warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedViewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
521 | }
522 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:517:23: warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
515 | extension ObjectScope {
516 | /// Default scope for ViewModel objects
517 | public static let viewModel: ObjectScope = .transient
| |- warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'viewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
518 |
519 | /// Singleton scope for shared ViewModels
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:520:23: warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
518 |
519 | /// Singleton scope for shared ViewModels
520 | public static let sharedViewModel: ObjectScope = .container
| |- warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedViewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
521 | }
522 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:172:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
169 |
170 | /// Default preview container implementation
171 | public class DefaultPreviewContainer: SwiftUIPreviewContainer {
| `- note: class 'DefaultPreviewContainer' does not conform to the 'Sendable' protocol
172 | public static let shared = DefaultPreviewContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | private let container = Container()
174 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:223:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| `- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 | import Foundation
4 | import SwiftUI
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @InjectedStateObject Macro
:
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:264:14: warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
234 | extension View {
235 | /// Provide a dependency injection container for StateObject injection
236 | public func stateObjectContainer(_ container: Container) -> some View {
| `- note: calls to instance method 'stateObjectContainer' from outside of its actor context are implicitly asynchronous
237 | environment(\.stateObjectContainer, container)
238 | }
:
255 |
256 | /// Create a preview-configured view with dependencies
257 | public static func previewView(
| `- note: add '@MainActor' to make static method 'previewView(content:dependencies:)' part of global actor 'MainActor'
258 | @ViewBuilder content: @escaping () -> some View,
259 | dependencies: (Container) -> Void
:
262 | dependencies(container)
263 | return content()
264 | .stateObjectContainer(container)
| `- warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:236:24: warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
234 | /// Performance tracking interceptor that measures and reports execution times.
235 | public class PerformanceInterceptor: BaseInterceptor {
236 | private static var performanceMetrics: [String: [Double]] = [:]
| |- warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'performanceMetrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'performanceMetrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
237 | private static let metricsQueue = DispatchQueue(label: "performance.metrics", attributes: .concurrent)
238 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:359:24: warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 | /// Registry for managing interceptor instances and dependency injection integration.
358 | public class InterceptorRegistry {
359 | private static var interceptors: [String: MethodInterceptor] = [:]
| |- warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'interceptors' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'interceptors' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 | private static let registryQueue = DispatchQueue(label: "interceptor.registry", attributes: .concurrent)
361 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:365:39: warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
102 |
103 | /// Protocol that all method interceptors must conform to.
104 | public protocol MethodInterceptor {
| `- note: protocol 'MethodInterceptor' does not conform to the 'Sendable' protocol
105 | /// Called before the intercepted method executes.
106 | /// Can modify parameters, perform validation, setup context, etc.
:
363 | public static func register(interceptor: MethodInterceptor, name: String) {
364 | registryQueue.async(flags: .barrier) {
365 | self.interceptors[name] = interceptor
| `- warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
366 | }
367 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:517:23: warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
515 | extension ObjectScope {
516 | /// Default scope for ViewModel objects
517 | public static let viewModel: ObjectScope = .transient
| |- warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'viewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
518 |
519 | /// Singleton scope for shared ViewModels
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:520:23: warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
518 |
519 | /// Singleton scope for shared ViewModels
520 | public static let sharedViewModel: ObjectScope = .container
| |- warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedViewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
521 | }
522 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:172:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
169 |
170 | /// Default preview container implementation
171 | public class DefaultPreviewContainer: SwiftUIPreviewContainer {
| `- note: class 'DefaultPreviewContainer' does not conform to the 'Sendable' protocol
172 | public static let shared = DefaultPreviewContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | private let container = Container()
174 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:223:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| `- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 | import Foundation
4 | import SwiftUI
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @InjectedStateObject Macro
:
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:264:14: warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
234 | extension View {
235 | /// Provide a dependency injection container for StateObject injection
236 | public func stateObjectContainer(_ container: Container) -> some View {
| `- note: calls to instance method 'stateObjectContainer' from outside of its actor context are implicitly asynchronous
237 | environment(\.stateObjectContainer, container)
238 | }
:
255 |
256 | /// Create a preview-configured view with dependencies
257 | public static func previewView(
| `- note: add '@MainActor' to make static method 'previewView(content:dependencies:)' part of global actor 'MainActor'
258 | @ViewBuilder content: @escaping () -> some View,
259 | dependencies: (Container) -> Void
:
262 | dependencies(container)
263 | return content()
264 | .stateObjectContainer(container)
| `- warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:236:24: warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
234 | /// Performance tracking interceptor that measures and reports execution times.
235 | public class PerformanceInterceptor: BaseInterceptor {
236 | private static var performanceMetrics: [String: [Double]] = [:]
| |- warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'performanceMetrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'performanceMetrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
237 | private static let metricsQueue = DispatchQueue(label: "performance.metrics", attributes: .concurrent)
238 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:359:24: warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 | /// Registry for managing interceptor instances and dependency injection integration.
358 | public class InterceptorRegistry {
359 | private static var interceptors: [String: MethodInterceptor] = [:]
| |- warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'interceptors' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'interceptors' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 | private static let registryQueue = DispatchQueue(label: "interceptor.registry", attributes: .concurrent)
361 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:365:39: warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
102 |
103 | /// Protocol that all method interceptors must conform to.
104 | public protocol MethodInterceptor {
| `- note: protocol 'MethodInterceptor' does not conform to the 'Sendable' protocol
105 | /// Called before the intercepted method executes.
106 | /// Can modify parameters, perform validation, setup context, etc.
:
363 | public static func register(interceptor: MethodInterceptor, name: String) {
364 | registryQueue.async(flags: .barrier) {
365 | self.interceptors[name] = interceptor
| `- warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
366 | }
367 | }
[463/482] Compiling SwinjectMacros PublisherInject.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleSystem.swift:14:23: warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | /// Shared instance of the module system
14 | public static var shared = ModuleSystem()
| |- warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | /// Reset the shared instance (useful for testing)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PerformanceTracked.swift:295:24: warning: static property 'metrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
293 | /// Central performance tracking and reporting system.
294 | public class PerformanceMonitor {
295 | private static var metrics: [String: [PerformanceMetrics]] = [:]
| |- warning: static property 'metrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'metrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'metrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 | private static let metricsQueue = DispatchQueue(label: "performance.tracker", attributes: .concurrent)
297 | private static let maxMetricsPerMethod = 1000 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PerformanceTracked.swift:304:57: warning: capture of 'metrics' with non-sendable type 'PerformanceMetrics' in a '@Sendable' closure
140 |
141 | /// Comprehensive performance metrics collected for each method execution.
142 | public struct PerformanceMetrics {
| `- note: consider making struct 'PerformanceMetrics' conform to the 'Sendable' protocol
143 | /// The name of the method being tracked
144 | public let methodName: String
:
302 |
303 | metricsQueue.async(flags: .barrier) {
304 | self.metrics[methodKey, default: []].append(metrics)
| `- warning: capture of 'metrics' with non-sendable type 'PerformanceMetrics' in a '@Sendable' closure
305 |
306 | // Maintain circular buffer
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:226:56: warning: non-sendable result type 'HotSwapValidationResult' cannot be sent from nonisolated context in call to instance method 'validateCompatibility(with:)'; this is an error in the Swift 6 language mode
15 |
16 | /// Hot-swap validation result
17 | public enum HotSwapValidationResult {
| `- note: consider making enum 'HotSwapValidationResult' conform to the 'Sendable' protocol
18 | case valid
19 | case incompatible(reason: String)
:
224 | // Validation phase
225 | await notifyListeners(HotSwapEvent(context: context, phase: .validating))
226 | let validationResult = await currentModule.validateCompatibility(with: targetVersion)
| `- warning: non-sendable result type 'HotSwapValidationResult' cannot be sent from nonisolated context in call to instance method 'validateCompatibility(with:)'; this is an error in the Swift 6 language mode
227 |
228 | switch validationResult {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:19:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ModuleScope' may have shared mutable state; this is an error in the Swift 6 language mode
6 |
7 | /// Custom object scope that maintains singletons at the module level
8 | public final class ModuleScope: ObjectScopeProtocol {
| `- note: class 'ModuleScope' does not conform to the 'Sendable' protocol
9 |
10 | // MARK: - Properties
:
17 |
18 | /// Shared instance of module scope
19 | public static let shared = ModuleScope()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ModuleScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 | // MARK: - Initialization
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:164:24: warning: static property 'threadLocal' is not concurrency-safe because non-'Sendable' type 'ThreadLocal<ModuleContext>' may have shared mutable state; this is an error in the Swift 6 language mode
162 |
163 | /// Thread-local storage for current module context
164 | private static let threadLocal = ThreadLocal<ModuleContext>()
| |- warning: static property 'threadLocal' is not concurrency-safe because non-'Sendable' type 'ThreadLocal<ModuleContext>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'threadLocal' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
165 |
166 | /// Current module context for the thread
:
206 |
207 | /// Thread-local storage implementation
208 | final class ThreadLocal<T> {
| `- note: generic class 'ThreadLocal' does not conform to the 'Sendable' protocol
209 | private var key: pthread_key_t = 0
210 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:285:23: warning: static property 'overrideModuleSystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
283 | /// Test helper for ModuleScoped property wrapper
284 | public final class ModuleScopedTestHelper {
285 | public static var overrideModuleSystem: ModuleSystem?
| |- warning: static property 'overrideModuleSystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'overrideModuleSystem' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'overrideModuleSystem' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:356:30: warning: sending 'module' risks causing data races; this is an error in the Swift 6 language mode
354 |
355 | guard let module = registeredModules[moduleId] else { return }
356 | try await module.restoreFromSnapshot(snapshot)
| |- warning: sending 'module' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'module' to nonisolated instance method 'restoreFromSnapshot' risks causing data races between nonisolated and 'self'-isolated uses
357 |
358 | logger.info("Rollback completed for \(moduleId)")
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:226:56: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
224 | // Validation phase
225 | await notifyListeners(HotSwapEvent(context: context, phase: .validating))
226 | let validationResult = await currentModule.validateCompatibility(with: targetVersion)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'validateCompatibility(with:)' risks causing data races between nonisolated and 'self'-isolated uses
227 |
228 | switch validationResult {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:246:37: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
244 | // Preparation phase
245 | await notifyListeners(HotSwapEvent(context: context, phase: .preparing))
246 | try await currentModule.prepareForSwap(context: context)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'prepareForSwap(context:)' risks causing data races between nonisolated and 'self'-isolated uses
247 |
248 | // Snapshot phase
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:250:52: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
248 | // Snapshot phase
249 | await notifyListeners(HotSwapEvent(context: context, phase: .snapshotting))
250 | let snapshot = try await currentModule.createSnapshot()
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'createSnapshot()' risks causing data races between nonisolated and 'self'-isolated uses
251 | rollbackPoints[context.rollbackPoint!] = snapshot
252 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:259:37: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
257 | // Completion phase
258 | await notifyListeners(HotSwapEvent(context: context, phase: .completing))
259 | try await currentModule.completeSwap(context: context)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'completeSwap(context:)' risks causing data races between nonisolated and 'self'-isolated uses
260 |
261 | // Update version tracking
[465/482] Compiling SwinjectMacros Retry.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleSystem.swift:14:23: warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | /// Shared instance of the module system
14 | public static var shared = ModuleSystem()
| |- warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | /// Reset the shared instance (useful for testing)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PerformanceTracked.swift:295:24: warning: static property 'metrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
293 | /// Central performance tracking and reporting system.
294 | public class PerformanceMonitor {
295 | private static var metrics: [String: [PerformanceMetrics]] = [:]
| |- warning: static property 'metrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'metrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'metrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 | private static let metricsQueue = DispatchQueue(label: "performance.tracker", attributes: .concurrent)
297 | private static let maxMetricsPerMethod = 1000 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PerformanceTracked.swift:304:57: warning: capture of 'metrics' with non-sendable type 'PerformanceMetrics' in a '@Sendable' closure
140 |
141 | /// Comprehensive performance metrics collected for each method execution.
142 | public struct PerformanceMetrics {
| `- note: consider making struct 'PerformanceMetrics' conform to the 'Sendable' protocol
143 | /// The name of the method being tracked
144 | public let methodName: String
:
302 |
303 | metricsQueue.async(flags: .barrier) {
304 | self.metrics[methodKey, default: []].append(metrics)
| `- warning: capture of 'metrics' with non-sendable type 'PerformanceMetrics' in a '@Sendable' closure
305 |
306 | // Maintain circular buffer
[466/482] Compiling SwinjectMacros ScopedService.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleSystem.swift:14:23: warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | /// Shared instance of the module system
14 | public static var shared = ModuleSystem()
| |- warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | /// Reset the shared instance (useful for testing)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PerformanceTracked.swift:295:24: warning: static property 'metrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
293 | /// Central performance tracking and reporting system.
294 | public class PerformanceMonitor {
295 | private static var metrics: [String: [PerformanceMetrics]] = [:]
| |- warning: static property 'metrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'metrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'metrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 | private static let metricsQueue = DispatchQueue(label: "performance.tracker", attributes: .concurrent)
297 | private static let maxMetricsPerMethod = 1000 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PerformanceTracked.swift:304:57: warning: capture of 'metrics' with non-sendable type 'PerformanceMetrics' in a '@Sendable' closure
140 |
141 | /// Comprehensive performance metrics collected for each method execution.
142 | public struct PerformanceMetrics {
| `- note: consider making struct 'PerformanceMetrics' conform to the 'Sendable' protocol
143 | /// The name of the method being tracked
144 | public let methodName: String
:
302 |
303 | metricsQueue.async(flags: .barrier) {
304 | self.metrics[methodKey, default: []].append(metrics)
| `- warning: capture of 'metrics' with non-sendable type 'PerformanceMetrics' in a '@Sendable' closure
305 |
306 | // Maintain circular buffer
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:226:56: warning: non-sendable result type 'HotSwapValidationResult' cannot be sent from nonisolated context in call to instance method 'validateCompatibility(with:)'; this is an error in the Swift 6 language mode
15 |
16 | /// Hot-swap validation result
17 | public enum HotSwapValidationResult {
| `- note: consider making enum 'HotSwapValidationResult' conform to the 'Sendable' protocol
18 | case valid
19 | case incompatible(reason: String)
:
224 | // Validation phase
225 | await notifyListeners(HotSwapEvent(context: context, phase: .validating))
226 | let validationResult = await currentModule.validateCompatibility(with: targetVersion)
| `- warning: non-sendable result type 'HotSwapValidationResult' cannot be sent from nonisolated context in call to instance method 'validateCompatibility(with:)'; this is an error in the Swift 6 language mode
227 |
228 | switch validationResult {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:19:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ModuleScope' may have shared mutable state; this is an error in the Swift 6 language mode
6 |
7 | /// Custom object scope that maintains singletons at the module level
8 | public final class ModuleScope: ObjectScopeProtocol {
| `- note: class 'ModuleScope' does not conform to the 'Sendable' protocol
9 |
10 | // MARK: - Properties
:
17 |
18 | /// Shared instance of module scope
19 | public static let shared = ModuleScope()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ModuleScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 | // MARK: - Initialization
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:164:24: warning: static property 'threadLocal' is not concurrency-safe because non-'Sendable' type 'ThreadLocal<ModuleContext>' may have shared mutable state; this is an error in the Swift 6 language mode
162 |
163 | /// Thread-local storage for current module context
164 | private static let threadLocal = ThreadLocal<ModuleContext>()
| |- warning: static property 'threadLocal' is not concurrency-safe because non-'Sendable' type 'ThreadLocal<ModuleContext>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'threadLocal' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
165 |
166 | /// Current module context for the thread
:
206 |
207 | /// Thread-local storage implementation
208 | final class ThreadLocal<T> {
| `- note: generic class 'ThreadLocal' does not conform to the 'Sendable' protocol
209 | private var key: pthread_key_t = 0
210 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:285:23: warning: static property 'overrideModuleSystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
283 | /// Test helper for ModuleScoped property wrapper
284 | public final class ModuleScopedTestHelper {
285 | public static var overrideModuleSystem: ModuleSystem?
| |- warning: static property 'overrideModuleSystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'overrideModuleSystem' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'overrideModuleSystem' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:356:30: warning: sending 'module' risks causing data races; this is an error in the Swift 6 language mode
354 |
355 | guard let module = registeredModules[moduleId] else { return }
356 | try await module.restoreFromSnapshot(snapshot)
| |- warning: sending 'module' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'module' to nonisolated instance method 'restoreFromSnapshot' risks causing data races between nonisolated and 'self'-isolated uses
357 |
358 | logger.info("Rollback completed for \(moduleId)")
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:226:56: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
224 | // Validation phase
225 | await notifyListeners(HotSwapEvent(context: context, phase: .validating))
226 | let validationResult = await currentModule.validateCompatibility(with: targetVersion)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'validateCompatibility(with:)' risks causing data races between nonisolated and 'self'-isolated uses
227 |
228 | switch validationResult {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:246:37: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
244 | // Preparation phase
245 | await notifyListeners(HotSwapEvent(context: context, phase: .preparing))
246 | try await currentModule.prepareForSwap(context: context)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'prepareForSwap(context:)' risks causing data races between nonisolated and 'self'-isolated uses
247 |
248 | // Snapshot phase
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:250:52: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
248 | // Snapshot phase
249 | await notifyListeners(HotSwapEvent(context: context, phase: .snapshotting))
250 | let snapshot = try await currentModule.createSnapshot()
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'createSnapshot()' risks causing data races between nonisolated and 'self'-isolated uses
251 | rollbackPoints[context.rollbackPoint!] = snapshot
252 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:259:37: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
257 | // Completion phase
258 | await notifyListeners(HotSwapEvent(context: context, phase: .completing))
259 | try await currentModule.completeSwap(context: context)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'completeSwap(context:)' risks causing data races between nonisolated and 'self'-isolated uses
260 |
261 | // Update version tracking
[468/482] Compiling SwinjectMacros StubService.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleSystem.swift:14:23: warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | /// Shared instance of the module system
14 | public static var shared = ModuleSystem()
| |- warning: static property 'shared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | /// Reset the shared instance (useful for testing)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PerformanceTracked.swift:295:24: warning: static property 'metrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
293 | /// Central performance tracking and reporting system.
294 | public class PerformanceMonitor {
295 | private static var metrics: [String: [PerformanceMetrics]] = [:]
| |- warning: static property 'metrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'metrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'metrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 | private static let metricsQueue = DispatchQueue(label: "performance.tracker", attributes: .concurrent)
297 | private static let maxMetricsPerMethod = 1000 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PerformanceTracked.swift:304:57: warning: capture of 'metrics' with non-sendable type 'PerformanceMetrics' in a '@Sendable' closure
140 |
141 | /// Comprehensive performance metrics collected for each method execution.
142 | public struct PerformanceMetrics {
| `- note: consider making struct 'PerformanceMetrics' conform to the 'Sendable' protocol
143 | /// The name of the method being tracked
144 | public let methodName: String
:
302 |
303 | metricsQueue.async(flags: .barrier) {
304 | self.metrics[methodKey, default: []].append(metrics)
| `- warning: capture of 'metrics' with non-sendable type 'PerformanceMetrics' in a '@Sendable' closure
305 |
306 | // Maintain circular buffer
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:517:23: warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
515 | extension ObjectScope {
516 | /// Default scope for ViewModel objects
517 | public static let viewModel: ObjectScope = .transient
| |- warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'viewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
518 |
519 | /// Singleton scope for shared ViewModels
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:520:23: warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
518 |
519 | /// Singleton scope for shared ViewModels
520 | public static let sharedViewModel: ObjectScope = .container
| |- warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedViewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
521 | }
522 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:226:56: warning: non-sendable result type 'HotSwapValidationResult' cannot be sent from nonisolated context in call to instance method 'validateCompatibility(with:)'; this is an error in the Swift 6 language mode
15 |
16 | /// Hot-swap validation result
17 | public enum HotSwapValidationResult {
| `- note: consider making enum 'HotSwapValidationResult' conform to the 'Sendable' protocol
18 | case valid
19 | case incompatible(reason: String)
:
224 | // Validation phase
225 | await notifyListeners(HotSwapEvent(context: context, phase: .validating))
226 | let validationResult = await currentModule.validateCompatibility(with: targetVersion)
| `- warning: non-sendable result type 'HotSwapValidationResult' cannot be sent from nonisolated context in call to instance method 'validateCompatibility(with:)'; this is an error in the Swift 6 language mode
227 |
228 | switch validationResult {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:19:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ModuleScope' may have shared mutable state; this is an error in the Swift 6 language mode
6 |
7 | /// Custom object scope that maintains singletons at the module level
8 | public final class ModuleScope: ObjectScopeProtocol {
| `- note: class 'ModuleScope' does not conform to the 'Sendable' protocol
9 |
10 | // MARK: - Properties
:
17 |
18 | /// Shared instance of module scope
19 | public static let shared = ModuleScope()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ModuleScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 | // MARK: - Initialization
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:164:24: warning: static property 'threadLocal' is not concurrency-safe because non-'Sendable' type 'ThreadLocal<ModuleContext>' may have shared mutable state; this is an error in the Swift 6 language mode
162 |
163 | /// Thread-local storage for current module context
164 | private static let threadLocal = ThreadLocal<ModuleContext>()
| |- warning: static property 'threadLocal' is not concurrency-safe because non-'Sendable' type 'ThreadLocal<ModuleContext>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'threadLocal' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
165 |
166 | /// Current module context for the thread
:
206 |
207 | /// Thread-local storage implementation
208 | final class ThreadLocal<T> {
| `- note: generic class 'ThreadLocal' does not conform to the 'Sendable' protocol
209 | private var key: pthread_key_t = 0
210 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:285:23: warning: static property 'overrideModuleSystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
283 | /// Test helper for ModuleScoped property wrapper
284 | public final class ModuleScopedTestHelper {
285 | public static var overrideModuleSystem: ModuleSystem?
| |- warning: static property 'overrideModuleSystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'overrideModuleSystem' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'overrideModuleSystem' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:356:30: warning: sending 'module' risks causing data races; this is an error in the Swift 6 language mode
354 |
355 | guard let module = registeredModules[moduleId] else { return }
356 | try await module.restoreFromSnapshot(snapshot)
| |- warning: sending 'module' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'module' to nonisolated instance method 'restoreFromSnapshot' risks causing data races between nonisolated and 'self'-isolated uses
357 |
358 | logger.info("Rollback completed for \(moduleId)")
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:226:56: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
224 | // Validation phase
225 | await notifyListeners(HotSwapEvent(context: context, phase: .validating))
226 | let validationResult = await currentModule.validateCompatibility(with: targetVersion)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'validateCompatibility(with:)' risks causing data races between nonisolated and 'self'-isolated uses
227 |
228 | switch validationResult {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:246:37: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
244 | // Preparation phase
245 | await notifyListeners(HotSwapEvent(context: context, phase: .preparing))
246 | try await currentModule.prepareForSwap(context: context)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'prepareForSwap(context:)' risks causing data races between nonisolated and 'self'-isolated uses
247 |
248 | // Snapshot phase
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:250:52: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
248 | // Snapshot phase
249 | await notifyListeners(HotSwapEvent(context: context, phase: .snapshotting))
250 | let snapshot = try await currentModule.createSnapshot()
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'createSnapshot()' risks causing data races between nonisolated and 'self'-isolated uses
251 | rollbackPoints[context.rollbackPoint!] = snapshot
252 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:259:37: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
257 | // Completion phase
258 | await notifyListeners(HotSwapEvent(context: context, phase: .completing))
259 | try await currentModule.completeSwap(context: context)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'completeSwap(context:)' risks causing data races between nonisolated and 'self'-isolated uses
260 |
261 | // Update version tracking
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:517:23: warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
515 | extension ObjectScope {
516 | /// Default scope for ViewModel objects
517 | public static let viewModel: ObjectScope = .transient
| |- warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'viewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
518 |
519 | /// Singleton scope for shared ViewModels
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:520:23: warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
518 |
519 | /// Singleton scope for shared ViewModels
520 | public static let sharedViewModel: ObjectScope = .container
| |- warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedViewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
521 | }
522 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:517:23: warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
515 | extension ObjectScope {
516 | /// Default scope for ViewModel objects
517 | public static let viewModel: ObjectScope = .transient
| |- warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'viewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
518 |
519 | /// Singleton scope for shared ViewModels
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:520:23: warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
518 |
519 | /// Singleton scope for shared ViewModels
520 | public static let sharedViewModel: ObjectScope = .container
| |- warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedViewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
521 | }
522 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:517:23: warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
515 | extension ObjectScope {
516 | /// Default scope for ViewModel objects
517 | public static let viewModel: ObjectScope = .transient
| |- warning: static property 'viewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'viewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
518 |
519 | /// Singleton scope for shared ViewModels
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/SwiftUI/ViewModelInject.swift:520:23: warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
518 |
519 | /// Singleton scope for shared ViewModels
520 | public static let sharedViewModel: ObjectScope = .container
| |- warning: static property 'sharedViewModel' is not concurrency-safe because non-'Sendable' type 'ObjectScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedViewModel' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
521 | }
522 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Injectable.swift:108:13: note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
106 |
107 | /// Object scope configuration for dependency injection
108 | public enum ObjectScope {
| `- note: consider making enum 'ObjectScope' conform to the 'Sendable' protocol
109 | /// Object graph scope - shared during object graph construction (default)
110 | case graph
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:226:56: warning: non-sendable result type 'HotSwapValidationResult' cannot be sent from nonisolated context in call to instance method 'validateCompatibility(with:)'; this is an error in the Swift 6 language mode
15 |
16 | /// Hot-swap validation result
17 | public enum HotSwapValidationResult {
| `- note: consider making enum 'HotSwapValidationResult' conform to the 'Sendable' protocol
18 | case valid
19 | case incompatible(reason: String)
:
224 | // Validation phase
225 | await notifyListeners(HotSwapEvent(context: context, phase: .validating))
226 | let validationResult = await currentModule.validateCompatibility(with: targetVersion)
| `- warning: non-sendable result type 'HotSwapValidationResult' cannot be sent from nonisolated context in call to instance method 'validateCompatibility(with:)'; this is an error in the Swift 6 language mode
227 |
228 | switch validationResult {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:19:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ModuleScope' may have shared mutable state; this is an error in the Swift 6 language mode
6 |
7 | /// Custom object scope that maintains singletons at the module level
8 | public final class ModuleScope: ObjectScopeProtocol {
| `- note: class 'ModuleScope' does not conform to the 'Sendable' protocol
9 |
10 | // MARK: - Properties
:
17 |
18 | /// Shared instance of module scope
19 | public static let shared = ModuleScope()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ModuleScope' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 | // MARK: - Initialization
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:164:24: warning: static property 'threadLocal' is not concurrency-safe because non-'Sendable' type 'ThreadLocal<ModuleContext>' may have shared mutable state; this is an error in the Swift 6 language mode
162 |
163 | /// Thread-local storage for current module context
164 | private static let threadLocal = ThreadLocal<ModuleContext>()
| |- warning: static property 'threadLocal' is not concurrency-safe because non-'Sendable' type 'ThreadLocal<ModuleContext>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'threadLocal' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
165 |
166 | /// Current module context for the thread
:
206 |
207 | /// Thread-local storage implementation
208 | final class ThreadLocal<T> {
| `- note: generic class 'ThreadLocal' does not conform to the 'Sendable' protocol
209 | private var key: pthread_key_t = 0
210 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleScope.swift:285:23: warning: static property 'overrideModuleSystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
283 | /// Test helper for ModuleScoped property wrapper
284 | public final class ModuleScopedTestHelper {
285 | public static var overrideModuleSystem: ModuleSystem?
| |- warning: static property 'overrideModuleSystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'overrideModuleSystem' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'overrideModuleSystem' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:356:30: warning: sending 'module' risks causing data races; this is an error in the Swift 6 language mode
354 |
355 | guard let module = registeredModules[moduleId] else { return }
356 | try await module.restoreFromSnapshot(snapshot)
| |- warning: sending 'module' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'module' to nonisolated instance method 'restoreFromSnapshot' risks causing data races between nonisolated and 'self'-isolated uses
357 |
358 | logger.info("Rollback completed for \(moduleId)")
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:226:56: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
224 | // Validation phase
225 | await notifyListeners(HotSwapEvent(context: context, phase: .validating))
226 | let validationResult = await currentModule.validateCompatibility(with: targetVersion)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'validateCompatibility(with:)' risks causing data races between nonisolated and 'self'-isolated uses
227 |
228 | switch validationResult {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:246:37: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
244 | // Preparation phase
245 | await notifyListeners(HotSwapEvent(context: context, phase: .preparing))
246 | try await currentModule.prepareForSwap(context: context)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'prepareForSwap(context:)' risks causing data races between nonisolated and 'self'-isolated uses
247 |
248 | // Snapshot phase
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:250:52: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
248 | // Snapshot phase
249 | await notifyListeners(HotSwapEvent(context: context, phase: .snapshotting))
250 | let snapshot = try await currentModule.createSnapshot()
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'createSnapshot()' risks causing data races between nonisolated and 'self'-isolated uses
251 | rollbackPoints[context.rollbackPoint!] = snapshot
252 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Module/ModuleHotSwap.swift:259:37: warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
257 | // Completion phase
258 | await notifyListeners(HotSwapEvent(context: context, phase: .completing))
259 | try await currentModule.completeSwap(context: context)
| |- warning: sending 'currentModule' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'currentModule' to nonisolated instance method 'completeSwap(context:)' risks causing data races between nonisolated and 'self'-isolated uses
260 |
261 | // Update version tracking
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:172:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
169 |
170 | /// Default preview container implementation
171 | public class DefaultPreviewContainer: SwiftUIPreviewContainer {
| `- note: class 'DefaultPreviewContainer' does not conform to the 'Sendable' protocol
172 | public static let shared = DefaultPreviewContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | private let container = Container()
174 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:223:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| `- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 | import Foundation
4 | import SwiftUI
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @InjectedStateObject Macro
:
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:264:14: warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
234 | extension View {
235 | /// Provide a dependency injection container for StateObject injection
236 | public func stateObjectContainer(_ container: Container) -> some View {
| `- note: calls to instance method 'stateObjectContainer' from outside of its actor context are implicitly asynchronous
237 | environment(\.stateObjectContainer, container)
238 | }
:
255 |
256 | /// Create a preview-configured view with dependencies
257 | public static func previewView(
| `- note: add '@MainActor' to make static method 'previewView(content:dependencies:)' part of global actor 'MainActor'
258 | @ViewBuilder content: @escaping () -> some View,
259 | dependencies: (Container) -> Void
:
262 | dependencies(container)
263 | return content()
264 | .stateObjectContainer(container)
| `- warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:236:24: warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
234 | /// Performance tracking interceptor that measures and reports execution times.
235 | public class PerformanceInterceptor: BaseInterceptor {
236 | private static var performanceMetrics: [String: [Double]] = [:]
| |- warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'performanceMetrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'performanceMetrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
237 | private static let metricsQueue = DispatchQueue(label: "performance.metrics", attributes: .concurrent)
238 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:359:24: warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 | /// Registry for managing interceptor instances and dependency injection integration.
358 | public class InterceptorRegistry {
359 | private static var interceptors: [String: MethodInterceptor] = [:]
| |- warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'interceptors' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'interceptors' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 | private static let registryQueue = DispatchQueue(label: "interceptor.registry", attributes: .concurrent)
361 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:365:39: warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
102 |
103 | /// Protocol that all method interceptors must conform to.
104 | public protocol MethodInterceptor {
| `- note: protocol 'MethodInterceptor' does not conform to the 'Sendable' protocol
105 | /// Called before the intercepted method executes.
106 | /// Can modify parameters, perform validation, setup context, etc.
:
363 | public static func register(interceptor: MethodInterceptor, name: String) {
364 | registryQueue.async(flags: .barrier) {
365 | self.interceptors[name] = interceptor
| `- warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
366 | }
367 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:172:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
169 |
170 | /// Default preview container implementation
171 | public class DefaultPreviewContainer: SwiftUIPreviewContainer {
| `- note: class 'DefaultPreviewContainer' does not conform to the 'Sendable' protocol
172 | public static let shared = DefaultPreviewContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | private let container = Container()
174 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:223:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| `- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 | import Foundation
4 | import SwiftUI
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @InjectedStateObject Macro
:
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:264:14: warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
234 | extension View {
235 | /// Provide a dependency injection container for StateObject injection
236 | public func stateObjectContainer(_ container: Container) -> some View {
| `- note: calls to instance method 'stateObjectContainer' from outside of its actor context are implicitly asynchronous
237 | environment(\.stateObjectContainer, container)
238 | }
:
255 |
256 | /// Create a preview-configured view with dependencies
257 | public static func previewView(
| `- note: add '@MainActor' to make static method 'previewView(content:dependencies:)' part of global actor 'MainActor'
258 | @ViewBuilder content: @escaping () -> some View,
259 | dependencies: (Container) -> Void
:
262 | dependencies(container)
263 | return content()
264 | .stateObjectContainer(container)
| `- warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:236:24: warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
234 | /// Performance tracking interceptor that measures and reports execution times.
235 | public class PerformanceInterceptor: BaseInterceptor {
236 | private static var performanceMetrics: [String: [Double]] = [:]
| |- warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'performanceMetrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'performanceMetrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
237 | private static let metricsQueue = DispatchQueue(label: "performance.metrics", attributes: .concurrent)
238 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:359:24: warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 | /// Registry for managing interceptor instances and dependency injection integration.
358 | public class InterceptorRegistry {
359 | private static var interceptors: [String: MethodInterceptor] = [:]
| |- warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'interceptors' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'interceptors' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 | private static let registryQueue = DispatchQueue(label: "interceptor.registry", attributes: .concurrent)
361 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:365:39: warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
102 |
103 | /// Protocol that all method interceptors must conform to.
104 | public protocol MethodInterceptor {
| `- note: protocol 'MethodInterceptor' does not conform to the 'Sendable' protocol
105 | /// Called before the intercepted method executes.
106 | /// Can modify parameters, perform validation, setup context, etc.
:
363 | public static func register(interceptor: MethodInterceptor, name: String) {
364 | registryQueue.async(flags: .barrier) {
365 | self.interceptors[name] = interceptor
| `- warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
366 | }
367 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:172:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
169 |
170 | /// Default preview container implementation
171 | public class DefaultPreviewContainer: SwiftUIPreviewContainer {
| `- note: class 'DefaultPreviewContainer' does not conform to the 'Sendable' protocol
172 | public static let shared = DefaultPreviewContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | private let container = Container()
174 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:223:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| `- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 | import Foundation
4 | import SwiftUI
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @InjectedStateObject Macro
:
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:264:14: warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
234 | extension View {
235 | /// Provide a dependency injection container for StateObject injection
236 | public func stateObjectContainer(_ container: Container) -> some View {
| `- note: calls to instance method 'stateObjectContainer' from outside of its actor context are implicitly asynchronous
237 | environment(\.stateObjectContainer, container)
238 | }
:
255 |
256 | /// Create a preview-configured view with dependencies
257 | public static func previewView(
| `- note: add '@MainActor' to make static method 'previewView(content:dependencies:)' part of global actor 'MainActor'
258 | @ViewBuilder content: @escaping () -> some View,
259 | dependencies: (Container) -> Void
:
262 | dependencies(container)
263 | return content()
264 | .stateObjectContainer(container)
| `- warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:236:24: warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
234 | /// Performance tracking interceptor that measures and reports execution times.
235 | public class PerformanceInterceptor: BaseInterceptor {
236 | private static var performanceMetrics: [String: [Double]] = [:]
| |- warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'performanceMetrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'performanceMetrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
237 | private static let metricsQueue = DispatchQueue(label: "performance.metrics", attributes: .concurrent)
238 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:359:24: warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 | /// Registry for managing interceptor instances and dependency injection integration.
358 | public class InterceptorRegistry {
359 | private static var interceptors: [String: MethodInterceptor] = [:]
| |- warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'interceptors' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'interceptors' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 | private static let registryQueue = DispatchQueue(label: "interceptor.registry", attributes: .concurrent)
361 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:365:39: warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
102 |
103 | /// Protocol that all method interceptors must conform to.
104 | public protocol MethodInterceptor {
| `- note: protocol 'MethodInterceptor' does not conform to the 'Sendable' protocol
105 | /// Called before the intercepted method executes.
106 | /// Can modify parameters, perform validation, setup context, etc.
:
363 | public static func register(interceptor: MethodInterceptor, name: String) {
364 | registryQueue.async(flags: .barrier) {
365 | self.interceptors[name] = interceptor
| `- warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
366 | }
367 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:172:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
169 |
170 | /// Default preview container implementation
171 | public class DefaultPreviewContainer: SwiftUIPreviewContainer {
| `- note: class 'DefaultPreviewContainer' does not conform to the 'Sendable' protocol
172 | public static let shared = DefaultPreviewContainer()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DefaultPreviewContainer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | private let container = Container()
174 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:223:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| `- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Container?' may have shared mutable state; this is an error in the Swift 6 language mode
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.swift:22:20: note: class 'Container' does not conform to the 'Sendable' protocol
20 | /// where `A` and `X` are protocols, `B` is a type conforming `A`, and `Y` is a type conforming `X`
21 | /// and depending on `A`.
22 | public final class Container {
| `- note: class 'Container' does not conform to the 'Sendable' protocol
23 | internal var services = [ServiceKey: ServiceEntryProtocol]()
24 | private let parent: Container? // Used by HierarchyObjectScope
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
3 | import Foundation
4 | import SwiftUI
5 | import Swinject
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Swinject'
6 |
7 | // MARK: - @InjectedStateObject Macro
:
221 | /// Environment key for dependency injection container (StateObject specific)
222 | private struct StateObjectContainerKey: EnvironmentKey {
223 | static let defaultValue: Container? = nil
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
224 | }
225 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/InjectedStateObject.swift:264:14: warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
234 | extension View {
235 | /// Provide a dependency injection container for StateObject injection
236 | public func stateObjectContainer(_ container: Container) -> some View {
| `- note: calls to instance method 'stateObjectContainer' from outside of its actor context are implicitly asynchronous
237 | environment(\.stateObjectContainer, container)
238 | }
:
255 |
256 | /// Create a preview-configured view with dependencies
257 | public static func previewView(
| `- note: add '@MainActor' to make static method 'previewView(content:dependencies:)' part of global actor 'MainActor'
258 | @ViewBuilder content: @escaping () -> some View,
259 | dependencies: (Container) -> Void
:
262 | dependencies(container)
263 | return content()
264 | .stateObjectContainer(container)
| `- warning: call to main actor-isolated instance method 'stateObjectContainer' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
265 | }
266 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:236:24: warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
234 | /// Performance tracking interceptor that measures and reports execution times.
235 | public class PerformanceInterceptor: BaseInterceptor {
236 | private static var performanceMetrics: [String: [Double]] = [:]
| |- warning: static property 'performanceMetrics' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'performanceMetrics' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'performanceMetrics' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
237 | private static let metricsQueue = DispatchQueue(label: "performance.metrics", attributes: .concurrent)
238 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:328:10: warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
326 | case emptyParameter(String)
327 | case invalidFormat(String, expected: String)
328 | case outOfRange(String, min: Any?, max: Any?)
| `- warning: associated value 'outOfRange(_:min:max:)' of 'Sendable'-conforming enum 'ValidationError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
329 |
330 | public var errorDescription: String? {
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:359:24: warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 | /// Registry for managing interceptor instances and dependency injection integration.
358 | public class InterceptorRegistry {
359 | private static var interceptors: [String: MethodInterceptor] = [:]
| |- warning: static property 'interceptors' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'interceptors' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'interceptors' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 | private static let registryQueue = DispatchQueue(label: "interceptor.registry", attributes: .concurrent)
361 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Interceptor.swift:365:39: warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
102 |
103 | /// Protocol that all method interceptors must conform to.
104 | public protocol MethodInterceptor {
| `- note: protocol 'MethodInterceptor' does not conform to the 'Sendable' protocol
105 | /// Called before the intercepted method executes.
106 | /// Can modify parameters, perform validation, setup context, etc.
:
363 | public static func register(interceptor: MethodInterceptor, name: String) {
364 | registryQueue.async(flags: .barrier) {
365 | self.interceptors[name] = interceptor
| `- warning: capture of 'interceptor' with non-sendable type 'any MethodInterceptor' in a '@Sendable' closure
366 | }
367 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PublisherInject.swift:276:23: warning: static property 'publisherShared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
274 | extension Container {
275 | /// Publisher-specific shared container instance
276 | public static var publisherShared: Container?
| |- warning: static property 'publisherShared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'publisherShared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'publisherShared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
277 |
278 | /// Set the shared container for Publisher injection
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:316:24: warning: static property 'attemptHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
314 | /// Central retry metrics tracking and reporting system.
315 | public class RetryMetricsManager {
316 | private static var attemptHistory: [String: [RetryAttempt]] = [:]
| |- warning: static property 'attemptHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'attemptHistory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'attemptHistory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
317 | private static var callResults: [String: [CallResult]] = [:]
318 | private static let metricsQueue = DispatchQueue(label: "retry.metrics", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:317:24: warning: static property 'callResults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
315 | public class RetryMetricsManager {
316 | private static var attemptHistory: [String: [RetryAttempt]] = [:]
317 | private static var callResults: [String: [CallResult]] = [:]
| |- warning: static property 'callResults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'callResults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'callResults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
318 | private static let metricsQueue = DispatchQueue(label: "retry.metrics", attributes: .concurrent)
319 | private static let maxHistoryPerMethod = 1000 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:332:64: warning: capture of 'attempt' with non-sendable type 'RetryAttempt' in a '@Sendable' closure
279 |
280 | /// Individual retry attempt information.
281 | public struct RetryAttempt {
| `- note: consider making struct 'RetryAttempt' conform to the 'Sendable' protocol
282 | /// Attempt number (1-based)
283 | public let attemptNumber: Int
:
330 | public static func recordAttempt(_ attempt: RetryAttempt, for methodKey: String) {
331 | metricsQueue.async(flags: .barrier) {
332 | self.attemptHistory[methodKey, default: []].append(attempt)
| `- warning: capture of 'attempt' with non-sendable type 'RetryAttempt' in a '@Sendable' closure
333 |
334 | // Maintain circular buffer
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/StubService.swift:214:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StubServiceRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
211 |
212 | /// Registry for managing stub configurations and behaviors
213 | public class StubServiceRegistry {
| `- note: class 'StubServiceRegistry' does not conform to the 'Sendable' protocol
214 | public static let shared = StubServiceRegistry()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StubServiceRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
215 |
216 | private var configurations: [String: StubServiceConfiguration] = [:]
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/StubService.swift:341:30: warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to let 'closure'; this is an error in the Swift 6 language mode
308 |
309 | /// Async stub behavior support
310 | public actor AsyncStubBehavior<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
311 | private var returnValue: T?
312 | private var throwError: Error?
:
339 | public func execute() async throws -> T {
340 | if let closure = closure {
341 | return try await closure()
| `- warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to let 'closure'; this is an error in the Swift 6 language mode
342 | }
343 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PublisherInject.swift:276:23: warning: static property 'publisherShared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
274 | extension Container {
275 | /// Publisher-specific shared container instance
276 | public static var publisherShared: Container?
| |- warning: static property 'publisherShared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'publisherShared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'publisherShared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
277 |
278 | /// Set the shared container for Publisher injection
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:316:24: warning: static property 'attemptHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
314 | /// Central retry metrics tracking and reporting system.
315 | public class RetryMetricsManager {
316 | private static var attemptHistory: [String: [RetryAttempt]] = [:]
| |- warning: static property 'attemptHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'attemptHistory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'attemptHistory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
317 | private static var callResults: [String: [CallResult]] = [:]
318 | private static let metricsQueue = DispatchQueue(label: "retry.metrics", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:317:24: warning: static property 'callResults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
315 | public class RetryMetricsManager {
316 | private static var attemptHistory: [String: [RetryAttempt]] = [:]
317 | private static var callResults: [String: [CallResult]] = [:]
| |- warning: static property 'callResults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'callResults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'callResults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
318 | private static let metricsQueue = DispatchQueue(label: "retry.metrics", attributes: .concurrent)
319 | private static let maxHistoryPerMethod = 1000 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:332:64: warning: capture of 'attempt' with non-sendable type 'RetryAttempt' in a '@Sendable' closure
279 |
280 | /// Individual retry attempt information.
281 | public struct RetryAttempt {
| `- note: consider making struct 'RetryAttempt' conform to the 'Sendable' protocol
282 | /// Attempt number (1-based)
283 | public let attemptNumber: Int
:
330 | public static func recordAttempt(_ attempt: RetryAttempt, for methodKey: String) {
331 | metricsQueue.async(flags: .barrier) {
332 | self.attemptHistory[methodKey, default: []].append(attempt)
| `- warning: capture of 'attempt' with non-sendable type 'RetryAttempt' in a '@Sendable' closure
333 |
334 | // Maintain circular buffer
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/StubService.swift:214:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StubServiceRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
211 |
212 | /// Registry for managing stub configurations and behaviors
213 | public class StubServiceRegistry {
| `- note: class 'StubServiceRegistry' does not conform to the 'Sendable' protocol
214 | public static let shared = StubServiceRegistry()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StubServiceRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
215 |
216 | private var configurations: [String: StubServiceConfiguration] = [:]
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/StubService.swift:341:30: warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to let 'closure'; this is an error in the Swift 6 language mode
308 |
309 | /// Async stub behavior support
310 | public actor AsyncStubBehavior<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
311 | private var returnValue: T?
312 | private var throwError: Error?
:
339 | public func execute() async throws -> T {
340 | if let closure = closure {
341 | return try await closure()
| `- warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to let 'closure'; this is an error in the Swift 6 language mode
342 | }
343 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PublisherInject.swift:276:23: warning: static property 'publisherShared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
274 | extension Container {
275 | /// Publisher-specific shared container instance
276 | public static var publisherShared: Container?
| |- warning: static property 'publisherShared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'publisherShared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'publisherShared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
277 |
278 | /// Set the shared container for Publisher injection
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:316:24: warning: static property 'attemptHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
314 | /// Central retry metrics tracking and reporting system.
315 | public class RetryMetricsManager {
316 | private static var attemptHistory: [String: [RetryAttempt]] = [:]
| |- warning: static property 'attemptHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'attemptHistory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'attemptHistory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
317 | private static var callResults: [String: [CallResult]] = [:]
318 | private static let metricsQueue = DispatchQueue(label: "retry.metrics", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:317:24: warning: static property 'callResults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
315 | public class RetryMetricsManager {
316 | private static var attemptHistory: [String: [RetryAttempt]] = [:]
317 | private static var callResults: [String: [CallResult]] = [:]
| |- warning: static property 'callResults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'callResults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'callResults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
318 | private static let metricsQueue = DispatchQueue(label: "retry.metrics", attributes: .concurrent)
319 | private static let maxHistoryPerMethod = 1000 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:332:64: warning: capture of 'attempt' with non-sendable type 'RetryAttempt' in a '@Sendable' closure
279 |
280 | /// Individual retry attempt information.
281 | public struct RetryAttempt {
| `- note: consider making struct 'RetryAttempt' conform to the 'Sendable' protocol
282 | /// Attempt number (1-based)
283 | public let attemptNumber: Int
:
330 | public static func recordAttempt(_ attempt: RetryAttempt, for methodKey: String) {
331 | metricsQueue.async(flags: .barrier) {
332 | self.attemptHistory[methodKey, default: []].append(attempt)
| `- warning: capture of 'attempt' with non-sendable type 'RetryAttempt' in a '@Sendable' closure
333 |
334 | // Maintain circular buffer
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/StubService.swift:214:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StubServiceRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
211 |
212 | /// Registry for managing stub configurations and behaviors
213 | public class StubServiceRegistry {
| `- note: class 'StubServiceRegistry' does not conform to the 'Sendable' protocol
214 | public static let shared = StubServiceRegistry()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StubServiceRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
215 |
216 | private var configurations: [String: StubServiceConfiguration] = [:]
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/StubService.swift:341:30: warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to let 'closure'; this is an error in the Swift 6 language mode
308 |
309 | /// Async stub behavior support
310 | public actor AsyncStubBehavior<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
311 | private var returnValue: T?
312 | private var throwError: Error?
:
339 | public func execute() async throws -> T {
340 | if let closure = closure {
341 | return try await closure()
| `- warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to let 'closure'; this is an error in the Swift 6 language mode
342 | }
343 |
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/PublisherInject.swift:276:23: warning: static property 'publisherShared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
274 | extension Container {
275 | /// Publisher-specific shared container instance
276 | public static var publisherShared: Container?
| |- warning: static property 'publisherShared' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'publisherShared' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'publisherShared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
277 |
278 | /// Set the shared container for Publisher injection
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:316:24: warning: static property 'attemptHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
314 | /// Central retry metrics tracking and reporting system.
315 | public class RetryMetricsManager {
316 | private static var attemptHistory: [String: [RetryAttempt]] = [:]
| |- warning: static property 'attemptHistory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'attemptHistory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'attemptHistory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
317 | private static var callResults: [String: [CallResult]] = [:]
318 | private static let metricsQueue = DispatchQueue(label: "retry.metrics", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:317:24: warning: static property 'callResults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
315 | public class RetryMetricsManager {
316 | private static var attemptHistory: [String: [RetryAttempt]] = [:]
317 | private static var callResults: [String: [CallResult]] = [:]
| |- warning: static property 'callResults' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'callResults' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'callResults' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
318 | private static let metricsQueue = DispatchQueue(label: "retry.metrics", attributes: .concurrent)
319 | private static let maxHistoryPerMethod = 1000 // Circular buffer size
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/Retry.swift:332:64: warning: capture of 'attempt' with non-sendable type 'RetryAttempt' in a '@Sendable' closure
279 |
280 | /// Individual retry attempt information.
281 | public struct RetryAttempt {
| `- note: consider making struct 'RetryAttempt' conform to the 'Sendable' protocol
282 | /// Attempt number (1-based)
283 | public let attemptNumber: Int
:
330 | public static func recordAttempt(_ attempt: RetryAttempt, for methodKey: String) {
331 | metricsQueue.async(flags: .barrier) {
332 | self.attemptHistory[methodKey, default: []].append(attempt)
| `- warning: capture of 'attempt' with non-sendable type 'RetryAttempt' in a '@Sendable' closure
333 |
334 | // Maintain circular buffer
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/StubService.swift:214:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StubServiceRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
211 |
212 | /// Registry for managing stub configurations and behaviors
213 | public class StubServiceRegistry {
| `- note: class 'StubServiceRegistry' does not conform to the 'Sendable' protocol
214 | public static let shared = StubServiceRegistry()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StubServiceRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
215 |
216 | private var configurations: [String: StubServiceConfiguration] = [:]
/Users/admin/builder/spi-builder-workspace/Sources/SwinjectMacros/StubService.swift:341:30: warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to let 'closure'; this is an error in the Swift 6 language mode
308 |
309 | /// Async stub behavior support
310 | public actor AsyncStubBehavior<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
311 | private var returnValue: T?
312 | private var throwError: Error?
:
339 | public func execute() async throws -> T {
340 | if let closure = closure {
341 | return try await closure()
| `- warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to let 'closure'; this is an error in the Swift 6 language mode
342 | }
343 |
Build complete! (46.84s)
warning: 'swinject': found 5 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Info.plist
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/PrivacyInfo.xcprivacy
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Resolver.erb
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/Container.Arguments.erb
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Swinject/Sources/ServiceEntry.TypeForwarding.erb
Build complete.
{
"dependencies" : [
{
"identity" : "swift-syntax",
"requirement" : {
"exact" : [
"509.0.0"
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-syntax.git"
},
{
"identity" : "swinject",
"requirement" : {
"exact" : [
"2.9.1"
]
},
"type" : "sourceControl",
"url" : "https://github.com/Swinject/Swinject.git"
}
],
"manifest_display_name" : "SwinjectMacros",
"name" : "SwinjectMacros",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "tvos",
"version" : "15.0"
}
],
"products" : [
{
"name" : "SwinjectMacros",
"targets" : [
"SwinjectMacros"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwinjectBuildPlugin",
"targets" : [
"SwinjectBuildPlugin"
],
"type" : {
"plugin" : null
}
},
{
"name" : "ServiceDiscoveryTool",
"targets" : [
"ServiceDiscoveryTool"
],
"type" : {
"executable" : null
}
},
{
"name" : "SwinjectMacrosImplementation",
"targets" : [
"SwinjectMacrosImplementation"
],
"type" : {
"macro" : null
}
}
],
"targets" : [
{
"c99name" : "SwinjectMacrosTests",
"module_type" : "SwiftTarget",
"name" : "SwinjectMacrosTests",
"path" : "Tests/SwinjectMacrosTests",
"product_dependencies" : [
"SwiftSyntaxMacrosTestSupport",
"Swinject"
],
"sources" : [
"APIDesignValidationTests.swift",
"APIValidationTests.swift",
"AsyncActorIntegrationTests.swift",
"AsyncEdgeCaseTests.swift",
"AutoFactoryTests.swift",
"CacheMacroTests.swift",
"CircuitBreakerMacroTests.swift",
"ComplexGenericEdgeCaseTests.swift",
"ComplexGenericTests.swift",
"EdgeCaseTests.swift",
"ErrorRecoveryTests.swift",
"InjectableTests.swift",
"InterceptorMacroTests.swift",
"InvalidUsageTests.swift",
"LazyInjectMacroTests.swift",
"MacroCompositionTests.swift",
"MemoryManagementTests.swift",
"ModuleDebugToolsMonitoringTests.swift",
"ModuleDebugToolsTests.swift",
"ModuleHotSwapTests.swift",
"ModuleLifecycleManagerTests.swift",
"ModulePerformanceOptimizerTests.swift",
"ModuleScopeTests.swift",
"ModuleSystemTests.swift",
"NameManglingTests.swift",
"PerformanceBenchmarkTests.swift",
"PerformanceRegressionTests.swift",
"PerformanceTrackedMacroTests.swift",
"PublicAPITests.swift",
"ResolverExtensionTests.swift",
"RetryMacroTests.swift",
"RuntimeIntegrationTests.swift",
"StressTests.swift",
"SwiftUIIntegrationEdgeCaseTests.swift",
"SwiftUIIntegrationTests.swift",
"TestContainerTests.swift",
"TestUtilities.swift",
"TestingMacroTests.swift"
],
"target_dependencies" : [
"SwinjectMacros",
"SwinjectMacrosImplementation"
],
"type" : "test"
},
{
"c99name" : "SwinjectMacrosImplementation",
"module_type" : "SwiftTarget",
"name" : "SwinjectMacrosImplementation",
"path" : "Sources/SwinjectMacrosImplementation",
"product_dependencies" : [
"SwiftSyntaxMacros",
"SwiftCompilerPlugin",
"SwiftSyntax",
"SwiftParser"
],
"product_memberships" : [
"SwinjectMacros",
"SwinjectMacrosImplementation"
],
"sources" : [
"AOP/DecoratorMacro.swift",
"Configuration/DebugContainerMacro.swift",
"Configuration/DependencyGraphMacro.swift",
"Configuration/DependencyGroupMacro.swift",
"Configuration/ServiceGroupMacro.swift",
"Configuration/ValidatedContainerMacro.swift",
"Core/AsyncInjectMacro.swift",
"Core/AutoFactory1Macro.swift",
"Core/AutoFactory2Macro.swift",
"Core/AutoFactoryMacro.swift",
"Core/AutoFactoryMultiMacro.swift",
"Core/AutoRegisterMacro.swift",
"Core/CacheMacro.swift",
"Core/CircuitBreakerMacro.swift",
"Core/InjectableMacro.swift",
"Core/InterceptorMacro.swift",
"Core/LazyInjectMacro.swift",
"Core/ModuleMacro.swift",
"Core/NamedMacro.swift",
"Core/OptionalInjectMacro.swift",
"Core/PerformanceTrackedMacro.swift",
"Core/RetryMacro.swift",
"Core/ScopedServiceMacro.swift",
"Core/TestContainerMacro.swift",
"Core/ThreadSafeMacro.swift",
"Core/WeakInjectMacro.swift",
"Plugin.swift",
"SwiftUI/EnvironmentInjectMacro.swift",
"SwiftUI/InjectedStateObjectMacro.swift",
"SwiftUI/PublisherInjectMacro.swift",
"SwiftUI/ViewModelInjectMacro.swift",
"Testing/MockResponseMacro.swift",
"Testing/SpyMacro.swift",
"Testing/StubServiceMacro.swift",
"Utilities/CodeGenerator.swift",
"Utilities/MacroUtilities.swift",
"Utilities/SyntaxExtensions.swift",
"Utilities/TypeAnalyzer.swift"
],
"type" : "macro"
},
{
"c99name" : "SwinjectMacros",
"module_type" : "SwiftTarget",
"name" : "SwinjectMacros",
"path" : "Sources/SwinjectMacros",
"product_dependencies" : [
"Swinject"
],
"product_memberships" : [
"SwinjectMacros"
],
"sources" : [
"AsyncInject.swift",
"AutoFactory.swift",
"Cache.swift",
"CircuitBreaker.swift",
"Configuration/ValidatedContainer.swift",
"DebugContainer.swift",
"Decorator.swift",
"DependencyGraph.swift",
"DependencyGraphTypes.swift",
"Injectable.swift",
"InjectedStateObject.swift",
"Interceptor.swift",
"LazyInject.swift",
"Module/Module.swift",
"Module/ModuleDebugTools.swift",
"Module/ModuleDependencyGraph.swift",
"Module/ModuleHotSwap.swift",
"Module/ModuleLifecycleManager.swift",
"Module/ModulePerformanceOptimizer.swift",
"Module/ModuleScope.swift",
"Module/ModuleSystem.swift",
"Named.swift",
"OptionalInject.swift",
"PerformanceTracked.swift",
"PublisherInject.swift",
"Retry.swift",
"ScopedService.swift",
"StubService.swift",
"SwiftUI/EnvironmentInject.swift",
"SwiftUI/ViewModelInject.swift",
"SwinJectMacros.swift",
"Testing/MockResponse.swift",
"Testing/Spy.swift",
"ThreadSafe.swift",
"Utilities/DebugLogger.swift",
"Utilities/NamedServiceRegistry.swift",
"Utilities/Resolver+Extensions.swift",
"Utilities/StringExtensions.swift",
"WeakInject.swift"
],
"target_dependencies" : [
"SwinjectMacrosImplementation"
],
"type" : "library"
},
{
"c99name" : "SwinjectBuildPlugin",
"module_type" : "PluginTarget",
"name" : "SwinjectBuildPlugin",
"path" : "Plugins/SwinjectBuildPlugin",
"plugin_capability" : {
"type" : "buildTool"
},
"product_memberships" : [
"SwinjectBuildPlugin"
],
"sources" : [
"plugin.swift"
],
"target_dependencies" : [
"ServiceDiscoveryTool"
],
"type" : "plugin"
},
{
"c99name" : "ServiceDiscoveryTool",
"module_type" : "SwiftTarget",
"name" : "ServiceDiscoveryTool",
"path" : "Sources/ServiceDiscoveryTool",
"product_dependencies" : [
"SwiftSyntax",
"SwiftParser"
],
"product_memberships" : [
"SwinjectBuildPlugin",
"ServiceDiscoveryTool"
],
"sources" : [
"main.swift"
],
"type" : "executable"
},
{
"c99name" : "IntegrationTests",
"module_type" : "SwiftTarget",
"name" : "IntegrationTests",
"path" : "Tests/IntegrationTests",
"product_dependencies" : [
"Swinject"
],
"sources" : [
"SwinjectIntegrationTests.swift"
],
"target_dependencies" : [
"SwinjectMacros"
],
"type" : "test"
}
],
"tools_version" : "5.9"
}
Done.