The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Macaroni, reference main (015ba4), with Swift 6.1 for Android on 31 May 2025 08:13:28 UTC.

Swift 6 data race errors: 2

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bealex/Macaroni.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/bealex/Macaroni
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 015ba44 Added information about locking in the README
Cloned https://github.com/bealex/Macaroni.git
Revision (git rev-parse @):
015ba440cca1842e653b3b14d108738fb0caff2d
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/bealex/Macaroni.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.1
Building package at path:  $PWD
https://github.com/bealex/Macaroni.git
https://github.com/bealex/Macaroni.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Macaroni",
  "name" : "Macaroni",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.14"
    }
  ],
  "products" : [
    {
      "name" : "Macaroni",
      "targets" : [
        "Macaroni"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "MacaroniTests",
      "module_type" : "SwiftTarget",
      "name" : "MacaroniTests",
      "path" : "Tests/MacaroniTests",
      "sources" : [
        "Tests/AlternativeTests.swift",
        "Tests/ContainerFindPolicyTests.swift",
        "Tests/ContainerResolveSpeedTests.swift",
        "Tests/ContainerSelectorTests.swift",
        "Tests/InjectedAsParameterTests.swift",
        "Tests/InjectedEagerTests.swift",
        "Tests/InjectedLazyTests.swift",
        "Tests/InjectedMultithreadedProblemsTests.swift",
        "Tests/InjectedTests.swift",
        "Tests/InjectedWeaklyTests.swift",
        "Tests/ParentContainerTests.swift",
        "Tests/SimpleContainerTests.swift",
        "Tests/SimpleContainerWithParameterTests.swift",
        "WaitForDeathTrap.swift"
      ],
      "target_dependencies" : [
        "Macaroni"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Macaroni",
      "module_type" : "SwiftTarget",
      "name" : "Macaroni",
      "path" : "Sources",
      "product_memberships" : [
        "Macaroni"
      ],
      "sources" : [
        "Container.swift",
        "ContainerLookupPolicies/ContainerLookupPolicy+Resolve.swift",
        "ContainerLookupPolicies/ContainerableLookupPolicy.swift",
        "ContainerLookupPolicies/SingletonContainerLookupPolicy.swift",
        "ContainerLookupPolicy.swift",
        "Logging/MacaroniLogger.swift",
        "Macaroni.swift",
        "PropertyWrappers/Injected.swift",
        "PropertyWrappers/InjectedWeakly.swift",
        "RegistrationAlternative.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/12] Compiling Macaroni Injected.swift
/host/spi-builder-workspace/Sources/PropertyWrappers/Injected.swift:11:16: warning: static property 'alwaysFailRootContainer' is not concurrency-safe because non-'Sendable' type 'Container' may have shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | private extension Container {
 11 |     static let alwaysFailRootContainer: Container = Container(name: "_alwaysFailContainersDeriveFromThis")
    |                |- warning: static property 'alwaysFailRootContainer' is not concurrency-safe because non-'Sendable' type 'Container' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'alwaysFailRootContainer' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 | }
 13 |
/host/spi-builder-workspace/Sources/Container.swift:30:20: note: class 'Container' does not conform to the 'Sendable' protocol
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
[4/13] Compiling Macaroni InjectedWeakly.swift
[5/13] Compiling Macaroni RegistrationAlternative.swift
[6/13] Compiling Macaroni ContainerLookupPolicy.swift
[7/13] Compiling Macaroni ContainerableLookupPolicy.swift
[8/13] Compiling Macaroni SingletonContainerLookupPolicy.swift
[9/13] Compiling Macaroni MacaroniLogger.swift
[10/13] Compiling Macaroni Macaroni.swift
[11/13] Compiling Macaroni Container.swift
/host/spi-builder-workspace/Sources/Container.swift:34:24: warning: static property 'counter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 32 |     let parent: Container?
 33 |
 34 |     private static var counter: Int = 1
    |                        |- warning: static property 'counter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'counter' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'counter' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |     private let queue: DispatchQueue
 36 |
/host/spi-builder-workspace/Sources/Container.swift:106:17: warning: initialization of immutable value 'objectId' was never used; consider replacing with assignment to '_' or removing it
104 |     public func isResolvable<D>(_ type: D.Type, alternative: String? = nil) -> Bool {
105 |         queue.sync {
106 |             let objectId = ObjectIdentifier(type)
    |                 `- warning: initialization of immutable value 'objectId' was never used; consider replacing with assignment to '_' or removing it
107 |             return parametrizedResolver(ObjectIdentifier(type), alternative: alternative) != nil ||
108 |                     resolver(ObjectIdentifier(type), alternative: alternative) != nil || (parent?.isResolvable(type) ?? false)
/host/spi-builder-workspace/Sources/Container.swift:124:13: warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
122 |             let nonOptionalObjectId = ObjectIdentifier(D.self)
123 |             let optionalObjectId = ObjectIdentifier(Optional<D>.self)
124 |             typeResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
    |             `- warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
125 |
126 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
/host/spi-builder-workspace/Sources/Container.swift:124:80: warning: capture of 'resolver' with non-sendable type '() -> D' in a '@Sendable' closure; this is an error in the Swift 6 language mode
122 |             let nonOptionalObjectId = ObjectIdentifier(D.self)
123 |             let optionalObjectId = ObjectIdentifier(Optional<D>.self)
124 |             typeResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
    |                                                                                |- warning: capture of 'resolver' with non-sendable type '() -> D' in a '@Sendable' closure; this is an error in the Swift 6 language mode
    |                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
125 |
126 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
/host/spi-builder-workspace/Sources/Container.swift:126:87: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
124 |             typeResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
125 |
126 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
    |                                                                                       `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
127 |                 typeResolvers[optionalObjectId, default: [:]][alternativeKey] = resolver
128 |                 Macaroni.logger.debug(
/host/spi-builder-workspace/Sources/Container.swift:129:33: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
127 |                 typeResolvers[optionalObjectId, default: [:]][alternativeKey] = resolver
128 |                 Macaroni.logger.debug(
129 |                     message: "\(name) is registering resolver for \(String(describing: D.self)) and its Optional\(alternative.map { " / \($0)" } ?? "")",
    |                                 `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
130 |                     file: file, function: function, line: line
131 |                 )
/host/spi-builder-workspace/Sources/Container.swift:134:33: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
132 |             } else {
133 |                 Macaroni.logger.debug(
134 |                     message: "\(name) is registering resolver for \(String(describing: D.self))\(alternative.map { " / \($0)" } ?? "")",
    |                                 `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
135 |                     file: file, function: function, line: line
136 |                 )
/host/spi-builder-workspace/Sources/Container.swift:153:13: warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
151 |             let nonOptionalObjectId = ObjectIdentifier(D.self)
152 |             let optionalObjectId = ObjectIdentifier(Optional<D>.self)
153 |             typeParametrizedResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
    |             `- warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
154 |
155 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
/host/spi-builder-workspace/Sources/Container.swift:153:92: warning: capture of 'resolver' with non-sendable type '(Any) -> D' in a '@Sendable' closure; this is an error in the Swift 6 language mode
151 |             let nonOptionalObjectId = ObjectIdentifier(D.self)
152 |             let optionalObjectId = ObjectIdentifier(Optional<D>.self)
153 |             typeParametrizedResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
    |                                                                                            |- warning: capture of 'resolver' with non-sendable type '(Any) -> D' in a '@Sendable' closure; this is an error in the Swift 6 language mode
    |                                                                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
154 |
155 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
/host/spi-builder-workspace/Sources/Container.swift:155:87: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
153 |             typeParametrizedResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
154 |
155 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
    |                                                                                       `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
156 |                 typeParametrizedResolvers[optionalObjectId, default: [:]][alternativeKey] = resolver
157 |                 Macaroni.logger.debug(
/host/spi-builder-workspace/Sources/Container.swift:158:33: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
156 |                 typeParametrizedResolvers[optionalObjectId, default: [:]][alternativeKey] = resolver
157 |                 Macaroni.logger.debug(
158 |                     message: "\(name) is registering parametrized resolver for \(String(describing: D.self)) and its Optional\(alternative.map { " / \($0)" } ?? "")",
    |                                 `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
159 |                     file: file, function: function, line: line
160 |                 )
/host/spi-builder-workspace/Sources/Container.swift:163:33: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
161 |             } else {
162 |                 Macaroni.logger.debug(
163 |                     message: "\(name) is registering parametrized resolver for \(String(describing: D.self))\(alternative.map { " / \($0)" } ?? "")",
    |                                 `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
164 |                     file: file, function: function, line: line
165 |                 )
/host/spi-builder-workspace/Sources/Container.swift:211:13: warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
209 |     public func cleanup(file: StaticString = #fileID, function: String = #function, line: UInt = #line) {
210 |         queue.async(flags: .barrier) { [self] in
211 |             typeResolvers = [:]
    |             `- warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
212 |             typeParametrizedResolvers = [:]
213 |             Macaroni.logger.debug(message: "\(name) cleared", file: file, function: function, line: line)
/host/spi-builder-workspace/Sources/Container.swift:213:47: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
211 |             typeResolvers = [:]
212 |             typeParametrizedResolvers = [:]
213 |             Macaroni.logger.debug(message: "\(name) cleared", file: file, function: function, line: line)
    |                                               `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
214 |         }
215 |     }
[12/13] Compiling Macaroni ContainerLookupPolicy+Resolve.swift
/host/spi-builder-workspace/Sources/Container.swift:34:24: warning: static property 'counter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 32 |     let parent: Container?
 33 |
 34 |     private static var counter: Int = 1
    |                        |- warning: static property 'counter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'counter' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'counter' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |     private let queue: DispatchQueue
 36 |
/host/spi-builder-workspace/Sources/Container.swift:106:17: warning: initialization of immutable value 'objectId' was never used; consider replacing with assignment to '_' or removing it
104 |     public func isResolvable<D>(_ type: D.Type, alternative: String? = nil) -> Bool {
105 |         queue.sync {
106 |             let objectId = ObjectIdentifier(type)
    |                 `- warning: initialization of immutable value 'objectId' was never used; consider replacing with assignment to '_' or removing it
107 |             return parametrizedResolver(ObjectIdentifier(type), alternative: alternative) != nil ||
108 |                     resolver(ObjectIdentifier(type), alternative: alternative) != nil || (parent?.isResolvable(type) ?? false)
/host/spi-builder-workspace/Sources/Container.swift:124:13: warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
122 |             let nonOptionalObjectId = ObjectIdentifier(D.self)
123 |             let optionalObjectId = ObjectIdentifier(Optional<D>.self)
124 |             typeResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
    |             `- warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
125 |
126 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
/host/spi-builder-workspace/Sources/Container.swift:124:80: warning: capture of 'resolver' with non-sendable type '() -> D' in a '@Sendable' closure; this is an error in the Swift 6 language mode
122 |             let nonOptionalObjectId = ObjectIdentifier(D.self)
123 |             let optionalObjectId = ObjectIdentifier(Optional<D>.self)
124 |             typeResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
    |                                                                                |- warning: capture of 'resolver' with non-sendable type '() -> D' in a '@Sendable' closure; this is an error in the Swift 6 language mode
    |                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
125 |
126 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
/host/spi-builder-workspace/Sources/Container.swift:126:87: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
124 |             typeResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
125 |
126 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
    |                                                                                       `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
127 |                 typeResolvers[optionalObjectId, default: [:]][alternativeKey] = resolver
128 |                 Macaroni.logger.debug(
/host/spi-builder-workspace/Sources/Container.swift:129:33: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
127 |                 typeResolvers[optionalObjectId, default: [:]][alternativeKey] = resolver
128 |                 Macaroni.logger.debug(
129 |                     message: "\(name) is registering resolver for \(String(describing: D.self)) and its Optional\(alternative.map { " / \($0)" } ?? "")",
    |                                 `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
130 |                     file: file, function: function, line: line
131 |                 )
/host/spi-builder-workspace/Sources/Container.swift:134:33: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
132 |             } else {
133 |                 Macaroni.logger.debug(
134 |                     message: "\(name) is registering resolver for \(String(describing: D.self))\(alternative.map { " / \($0)" } ?? "")",
    |                                 `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
135 |                     file: file, function: function, line: line
136 |                 )
/host/spi-builder-workspace/Sources/Container.swift:153:13: warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
151 |             let nonOptionalObjectId = ObjectIdentifier(D.self)
152 |             let optionalObjectId = ObjectIdentifier(Optional<D>.self)
153 |             typeParametrizedResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
    |             `- warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
154 |
155 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
/host/spi-builder-workspace/Sources/Container.swift:153:92: warning: capture of 'resolver' with non-sendable type '(Any) -> D' in a '@Sendable' closure; this is an error in the Swift 6 language mode
151 |             let nonOptionalObjectId = ObjectIdentifier(D.self)
152 |             let optionalObjectId = ObjectIdentifier(Optional<D>.self)
153 |             typeParametrizedResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
    |                                                                                            |- warning: capture of 'resolver' with non-sendable type '(Any) -> D' in a '@Sendable' closure; this is an error in the Swift 6 language mode
    |                                                                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
154 |
155 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
/host/spi-builder-workspace/Sources/Container.swift:155:87: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
153 |             typeParametrizedResolvers[nonOptionalObjectId, default: [:]][alternativeKey] = resolver
154 |
155 |             if self.resolver(optionalObjectId, alternative: alternativeKey) == nil && parametrizedResolver(optionalObjectId, alternative: alternativeKey) == nil {
    |                                                                                       `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
156 |                 typeParametrizedResolvers[optionalObjectId, default: [:]][alternativeKey] = resolver
157 |                 Macaroni.logger.debug(
/host/spi-builder-workspace/Sources/Container.swift:158:33: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
156 |                 typeParametrizedResolvers[optionalObjectId, default: [:]][alternativeKey] = resolver
157 |                 Macaroni.logger.debug(
158 |                     message: "\(name) is registering parametrized resolver for \(String(describing: D.self)) and its Optional\(alternative.map { " / \($0)" } ?? "")",
    |                                 `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
159 |                     file: file, function: function, line: line
160 |                 )
/host/spi-builder-workspace/Sources/Container.swift:163:33: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
161 |             } else {
162 |                 Macaroni.logger.debug(
163 |                     message: "\(name) is registering parametrized resolver for \(String(describing: D.self))\(alternative.map { " / \($0)" } ?? "")",
    |                                 `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
164 |                     file: file, function: function, line: line
165 |                 )
/host/spi-builder-workspace/Sources/Container.swift:211:13: warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
209 |     public func cleanup(file: StaticString = #fileID, function: String = #function, line: UInt = #line) {
210 |         queue.async(flags: .barrier) { [self] in
211 |             typeResolvers = [:]
    |             `- warning: capture of 'self' with non-sendable type 'Container' in a '@Sendable' closure; this is an error in the Swift 6 language mode
212 |             typeParametrizedResolvers = [:]
213 |             Macaroni.logger.debug(message: "\(name) cleared", file: file, function: function, line: line)
/host/spi-builder-workspace/Sources/Container.swift:213:47: warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
    :
211 |             typeResolvers = [:]
212 |             typeParametrizedResolvers = [:]
213 |             Macaroni.logger.debug(message: "\(name) cleared", file: file, function: function, line: line)
    |                                               `- warning: implicit capture of 'self' requires that 'Container' conforms to 'Sendable'; this is an error in the Swift 6 language mode
214 |         }
215 |     }
[13/13] Emitting module Macaroni
/host/spi-builder-workspace/Sources/Container.swift:34:24: warning: static property 'counter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 32 |     let parent: Container?
 33 |
 34 |     private static var counter: Int = 1
    |                        |- warning: static property 'counter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'counter' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'counter' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |     private let queue: DispatchQueue
 36 |
/host/spi-builder-workspace/Sources/PropertyWrappers/Injected.swift:11:16: warning: static property 'alwaysFailRootContainer' is not concurrency-safe because non-'Sendable' type 'Container' may have shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | private extension Container {
 11 |     static let alwaysFailRootContainer: Container = Container(name: "_alwaysFailContainersDeriveFromThis")
    |                |- warning: static property 'alwaysFailRootContainer' is not concurrency-safe because non-'Sendable' type 'Container' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'alwaysFailRootContainer' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 | }
 13 |
/host/spi-builder-workspace/Sources/Container.swift:30:20: note: class 'Container' does not conform to the 'Sendable' protocol
 28 | ///
 29 | /// There is a `@Injected` property wrapper that helps to inject objects into classes (mostly).
 30 | public final class Container {
    |                    `- note: class 'Container' does not conform to the 'Sendable' protocol
 31 |     let name: String
 32 |     let parent: Container?
Build complete! (9.41s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Macaroni",
  "name" : "Macaroni",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.14"
    }
  ],
  "products" : [
    {
      "name" : "Macaroni",
      "targets" : [
        "Macaroni"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "MacaroniTests",
      "module_type" : "SwiftTarget",
      "name" : "MacaroniTests",
      "path" : "Tests/MacaroniTests",
      "sources" : [
        "Tests/AlternativeTests.swift",
        "Tests/ContainerFindPolicyTests.swift",
        "Tests/ContainerResolveSpeedTests.swift",
        "Tests/ContainerSelectorTests.swift",
        "Tests/InjectedAsParameterTests.swift",
        "Tests/InjectedEagerTests.swift",
        "Tests/InjectedLazyTests.swift",
        "Tests/InjectedMultithreadedProblemsTests.swift",
        "Tests/InjectedTests.swift",
        "Tests/InjectedWeaklyTests.swift",
        "Tests/ParentContainerTests.swift",
        "Tests/SimpleContainerTests.swift",
        "Tests/SimpleContainerWithParameterTests.swift",
        "WaitForDeathTrap.swift"
      ],
      "target_dependencies" : [
        "Macaroni"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Macaroni",
      "module_type" : "SwiftTarget",
      "name" : "Macaroni",
      "path" : "Sources",
      "product_memberships" : [
        "Macaroni"
      ],
      "sources" : [
        "Container.swift",
        "ContainerLookupPolicies/ContainerLookupPolicy+Resolve.swift",
        "ContainerLookupPolicies/ContainerableLookupPolicy.swift",
        "ContainerLookupPolicies/SingletonContainerLookupPolicy.swift",
        "ContainerLookupPolicy.swift",
        "Logging/MacaroniLogger.swift",
        "Macaroni.swift",
        "PropertyWrappers/Injected.swift",
        "PropertyWrappers/InjectedWeakly.swift",
        "RegistrationAlternative.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Done.