Build Information
Successful build of Macaroni, reference v5.0.1 (015ba4), with Swift 6.1 for Android on 31 May 2025 08:18:48 UTC.
Swift 6 data race errors: 2
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/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>&1Build Log
========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bealex/Macaroni.git
Reference: v5.0.1
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
* tag v5.0.1 -> FETCH_HEAD
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 v5.0.1
========================================
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-4609320-2":/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 MacaroniLogger.swift
[6/13] Compiling Macaroni ContainerableLookupPolicy.swift
[7/13] Compiling Macaroni SingletonContainerLookupPolicy.swift
[8/13] Compiling Macaroni Macaroni.swift
[9/13] Compiling Macaroni ContainerLookupPolicy.swift
[10/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?
[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] Compiling Macaroni RegistrationAlternative.swift
Build complete! (9.11s)
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.