Build Information
Successful build of Mobius with Swift 6.0 for macOS (SPM).
Swift 6 data race errors: 3
Build Command
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/spotify/Mobius.swift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/spotify/Mobius.swift
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 315a69a Update copyright (#208)
Cloned https://github.com/spotify/Mobius.swift.git
Revision (git rev-parse @):
315a69a3dbf85eccd12663d25e37361b6a7e1e03
SUCCESS checkout https://github.com/spotify/Mobius.swift.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $workDir
https://github.com/spotify/Mobius.swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/13] Write sources
[8/13] Write swift-version-6F35C1178C84523A.txt
[9/18] Compiling CwlMachBadInstructionHandler mach_excServer.c
[10/18] Compiling MobiusThrowableAssertion MobiusThrowableAssertion.m
[11/18] Compiling CwlCatchExceptionSupport CwlCatchException.m
[12/20] Compiling CwlMachBadInstructionHandler CwlMachBadInstructionHandler.m
[14/20] Compiling CasePaths Operators.swift
[15/20] Compiling CasePaths EnumReflection.swift
[16/20] Compiling CasePaths CasePaths.swift
[17/20] Compiling CasePaths CasePath.swift
[18/20] Emitting module CasePaths
[19/20] Emitting module CwlCatchException
[20/20] Compiling CwlCatchException CwlCatchException.swift
[21/53] Compiling MobiusCore AnonymousDisposable.swift
[22/53] Compiling MobiusCore CompositeDisposable.swift
[23/53] Compiling MobiusCore Disposable.swift
[24/56] Compiling MobiusCore ConnectablePublisher.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[25/56] Compiling MobiusCore Connection.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[26/56] Compiling MobiusCore Consumer.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[27/56] Emitting module MobiusCore
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[28/56] Compiling CwlPreconditionTesting CwlDarwinDefinitions.swift
[29/56] Compiling MobiusCore CompositeEventSourceBuilder.swift
[30/56] Compiling MobiusCore EventSource.swift
[31/56] Compiling MobiusCore First.swift
[32/56] Compiling MobiusCore EnumRoute.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[33/56] Compiling MobiusCore ThreadSafeConnectable.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[34/56] Compiling MobiusCore AnyEventSource.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[35/56] Compiling MobiusCore EffectHandler.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/EffectHandlers/EffectRouter.swift:132:37: warning: capture of 'connection' with non-sendable type 'Connection<EffectParameters>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | if let queue = queue {
131 | queue.async {
132 | connection.accept(parameters)
| `- warning: capture of 'connection' with non-sendable type 'Connection<EffectParameters>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | }
134 | } else {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/EffectHandlers/EffectRouter.swift:132:55: warning: capture of 'parameters' with non-sendable type 'EffectParameters' in a `@Sendable` closure; this is an error in the Swift 6 language mode
117 | let connect: (@escaping Consumer<Output>) -> ConnectedRoute<Input>
118 |
119 | init<EffectParameters, Conn: Connectable>(
| `- note: consider making generic parameter 'EffectParameters' conform to the 'Sendable' protocol
120 | extractParameters: @escaping (Input) -> EffectParameters?,
121 | connectable: Conn,
:
130 | if let queue = queue {
131 | queue.async {
132 | connection.accept(parameters)
| `- warning: capture of 'parameters' with non-sendable type 'EffectParameters' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | }
134 | } else {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[36/56] Compiling MobiusCore EffectRouter.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/EffectHandlers/EffectRouter.swift:132:37: warning: capture of 'connection' with non-sendable type 'Connection<EffectParameters>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | if let queue = queue {
131 | queue.async {
132 | connection.accept(parameters)
| `- warning: capture of 'connection' with non-sendable type 'Connection<EffectParameters>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | }
134 | } else {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/EffectHandlers/EffectRouter.swift:132:55: warning: capture of 'parameters' with non-sendable type 'EffectParameters' in a `@Sendable` closure; this is an error in the Swift 6 language mode
117 | let connect: (@escaping Consumer<Output>) -> ConnectedRoute<Input>
118 |
119 | init<EffectParameters, Conn: Connectable>(
| `- note: consider making generic parameter 'EffectParameters' conform to the 'Sendable' protocol
120 | extractParameters: @escaping (Input) -> EffectParameters?,
121 | connectable: Conn,
:
130 | if let queue = queue {
131 | queue.async {
132 | connection.accept(parameters)
| `- warning: capture of 'parameters' with non-sendable type 'EffectParameters' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | }
134 | } else {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[37/56] Compiling MobiusCore EffectRouterDSL.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/EffectHandlers/EffectRouter.swift:132:37: warning: capture of 'connection' with non-sendable type 'Connection<EffectParameters>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | if let queue = queue {
131 | queue.async {
132 | connection.accept(parameters)
| `- warning: capture of 'connection' with non-sendable type 'Connection<EffectParameters>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | }
134 | } else {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/EffectHandlers/EffectRouter.swift:132:55: warning: capture of 'parameters' with non-sendable type 'EffectParameters' in a `@Sendable` closure; this is an error in the Swift 6 language mode
117 | let connect: (@escaping Consumer<Output>) -> ConnectedRoute<Input>
118 |
119 | init<EffectParameters, Conn: Connectable>(
| `- note: consider making generic parameter 'EffectParameters' conform to the 'Sendable' protocol
120 | extractParameters: @escaping (Input) -> EffectParameters?,
121 | connectable: Conn,
:
130 | if let queue = queue {
131 | queue.async {
132 | connection.accept(parameters)
| `- warning: capture of 'parameters' with non-sendable type 'EffectParameters' in a `@Sendable` closure; this is an error in the Swift 6 language mode
133 | }
134 | } else {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[38/56] Compiling MobiusCore AsyncDispatchQueueConnectable.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:61:21: warning: capture of 'disposalStatus' with non-sendable type 'Synchronized<Bool>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
59 | acceptQueue.async {
60 | // Prevents forwarding if the connection has since been disposed.
61 | disposalStatus.read { disposed in
| `- warning: capture of 'disposalStatus' with non-sendable type 'Synchronized<Bool>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
62 | guard !disposed else { return }
63 | connection.accept(input)
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Lock.swift:30:13: note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
28 | }
29 |
30 | final class Synchronized<Value> {
| `- note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
31 | private let lock = DispatchQueue(label: "Mobius synchronized storage")
32 | private var storage: Value
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:25: warning: capture of 'connection' with non-sendable type 'Connection<Input>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'connection' with non-sendable type 'Connection<Input>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:43: warning: capture of 'input' with non-sendable type 'Input' in a `@Sendable` closure; this is an error in the Swift 6 language mode
20 | /// first switching to the provided `acceptQueue`. In other words, the real `accept` method will always be executed
21 | /// asynchronously on the provided queue.
22 | final class AsyncDispatchQueueConnectable<Input, Output>: Connectable {
| `- note: consider making generic parameter 'Input' conform to the 'Sendable' protocol
23 | private let underlyingConnectable: AnyConnectable<Input, Output>
24 | private let acceptQueue: DispatchQueue
:
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'input' with non-sendable type 'Input' in a `@Sendable` closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:25: warning: capture of 'connection' with non-sendable type 'Connection<Input>' in an isolated closure; this is an error in the Swift 6 language mode
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'connection' with non-sendable type 'Connection<Input>' in an isolated closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:43: warning: capture of 'input' with non-sendable type 'Input' in an isolated closure; this is an error in the Swift 6 language mode
20 | /// first switching to the provided `acceptQueue`. In other words, the real `accept` method will always be executed
21 | /// asynchronously on the provided queue.
22 | final class AsyncDispatchQueueConnectable<Input, Output>: Connectable {
| `- note: consider making generic parameter 'Input' conform to the 'Sendable' protocol
23 | private let underlyingConnectable: AnyConnectable<Input, Output>
24 | private let acceptQueue: DispatchQueue
:
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'input' with non-sendable type 'Input' in an isolated closure; this is an error in the Swift 6 language mode
64 | }
65 | }
[39/56] Compiling MobiusCore AsyncStartStopStateMachine.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:61:21: warning: capture of 'disposalStatus' with non-sendable type 'Synchronized<Bool>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
59 | acceptQueue.async {
60 | // Prevents forwarding if the connection has since been disposed.
61 | disposalStatus.read { disposed in
| `- warning: capture of 'disposalStatus' with non-sendable type 'Synchronized<Bool>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
62 | guard !disposed else { return }
63 | connection.accept(input)
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Lock.swift:30:13: note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
28 | }
29 |
30 | final class Synchronized<Value> {
| `- note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
31 | private let lock = DispatchQueue(label: "Mobius synchronized storage")
32 | private var storage: Value
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:25: warning: capture of 'connection' with non-sendable type 'Connection<Input>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'connection' with non-sendable type 'Connection<Input>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:43: warning: capture of 'input' with non-sendable type 'Input' in a `@Sendable` closure; this is an error in the Swift 6 language mode
20 | /// first switching to the provided `acceptQueue`. In other words, the real `accept` method will always be executed
21 | /// asynchronously on the provided queue.
22 | final class AsyncDispatchQueueConnectable<Input, Output>: Connectable {
| `- note: consider making generic parameter 'Input' conform to the 'Sendable' protocol
23 | private let underlyingConnectable: AnyConnectable<Input, Output>
24 | private let acceptQueue: DispatchQueue
:
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'input' with non-sendable type 'Input' in a `@Sendable` closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:25: warning: capture of 'connection' with non-sendable type 'Connection<Input>' in an isolated closure; this is an error in the Swift 6 language mode
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'connection' with non-sendable type 'Connection<Input>' in an isolated closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:43: warning: capture of 'input' with non-sendable type 'Input' in an isolated closure; this is an error in the Swift 6 language mode
20 | /// first switching to the provided `acceptQueue`. In other words, the real `accept` method will always be executed
21 | /// asynchronously on the provided queue.
22 | final class AsyncDispatchQueueConnectable<Input, Output>: Connectable {
| `- note: consider making generic parameter 'Input' conform to the 'Sendable' protocol
23 | private let underlyingConnectable: AnyConnectable<Input, Output>
24 | private let acceptQueue: DispatchQueue
:
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'input' with non-sendable type 'Input' in an isolated closure; this is an error in the Swift 6 language mode
64 | }
65 | }
[40/56] Compiling MobiusCore ConcurrentAccessDetector.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:61:21: warning: capture of 'disposalStatus' with non-sendable type 'Synchronized<Bool>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
59 | acceptQueue.async {
60 | // Prevents forwarding if the connection has since been disposed.
61 | disposalStatus.read { disposed in
| `- warning: capture of 'disposalStatus' with non-sendable type 'Synchronized<Bool>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
62 | guard !disposed else { return }
63 | connection.accept(input)
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Lock.swift:30:13: note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
28 | }
29 |
30 | final class Synchronized<Value> {
| `- note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
31 | private let lock = DispatchQueue(label: "Mobius synchronized storage")
32 | private var storage: Value
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:25: warning: capture of 'connection' with non-sendable type 'Connection<Input>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'connection' with non-sendable type 'Connection<Input>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:43: warning: capture of 'input' with non-sendable type 'Input' in a `@Sendable` closure; this is an error in the Swift 6 language mode
20 | /// first switching to the provided `acceptQueue`. In other words, the real `accept` method will always be executed
21 | /// asynchronously on the provided queue.
22 | final class AsyncDispatchQueueConnectable<Input, Output>: Connectable {
| `- note: consider making generic parameter 'Input' conform to the 'Sendable' protocol
23 | private let underlyingConnectable: AnyConnectable<Input, Output>
24 | private let acceptQueue: DispatchQueue
:
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'input' with non-sendable type 'Input' in a `@Sendable` closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:25: warning: capture of 'connection' with non-sendable type 'Connection<Input>' in an isolated closure; this is an error in the Swift 6 language mode
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'connection' with non-sendable type 'Connection<Input>' in an isolated closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:43: warning: capture of 'input' with non-sendable type 'Input' in an isolated closure; this is an error in the Swift 6 language mode
20 | /// first switching to the provided `acceptQueue`. In other words, the real `accept` method will always be executed
21 | /// asynchronously on the provided queue.
22 | final class AsyncDispatchQueueConnectable<Input, Output>: Connectable {
| `- note: consider making generic parameter 'Input' conform to the 'Sendable' protocol
23 | private let underlyingConnectable: AnyConnectable<Input, Output>
24 | private let acceptQueue: DispatchQueue
:
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'input' with non-sendable type 'Input' in an isolated closure; this is an error in the Swift 6 language mode
64 | }
65 | }
[41/56] Compiling MobiusCore Connectable.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:61:21: warning: capture of 'disposalStatus' with non-sendable type 'Synchronized<Bool>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
59 | acceptQueue.async {
60 | // Prevents forwarding if the connection has since been disposed.
61 | disposalStatus.read { disposed in
| `- warning: capture of 'disposalStatus' with non-sendable type 'Synchronized<Bool>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
62 | guard !disposed else { return }
63 | connection.accept(input)
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Lock.swift:30:13: note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
28 | }
29 |
30 | final class Synchronized<Value> {
| `- note: generic class 'Synchronized' does not conform to the 'Sendable' protocol
31 | private let lock = DispatchQueue(label: "Mobius synchronized storage")
32 | private var storage: Value
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:25: warning: capture of 'connection' with non-sendable type 'Connection<Input>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'connection' with non-sendable type 'Connection<Input>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:43: warning: capture of 'input' with non-sendable type 'Input' in a `@Sendable` closure; this is an error in the Swift 6 language mode
20 | /// first switching to the provided `acceptQueue`. In other words, the real `accept` method will always be executed
21 | /// asynchronously on the provided queue.
22 | final class AsyncDispatchQueueConnectable<Input, Output>: Connectable {
| `- note: consider making generic parameter 'Input' conform to the 'Sendable' protocol
23 | private let underlyingConnectable: AnyConnectable<Input, Output>
24 | private let acceptQueue: DispatchQueue
:
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'input' with non-sendable type 'Input' in a `@Sendable` closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:25: warning: capture of 'connection' with non-sendable type 'Connection<Input>' in an isolated closure; this is an error in the Swift 6 language mode
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'connection' with non-sendable type 'Connection<Input>' in an isolated closure; this is an error in the Swift 6 language mode
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/Connection.swift:20:20: note: generic class 'Connection' does not conform to the 'Sendable' protocol
18 | ///
19 | /// Used for sending values to the connection and to dispose of it and all resources associated with it.
20 | public final class Connection<Value>: Disposable {
| `- note: generic class 'Connection' does not conform to the 'Sendable' protocol
21 | private let acceptClosure: (Value) -> Void
22 | private let disposeClosure: () -> Void
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncDispatchQueueConnectable.swift:63:43: warning: capture of 'input' with non-sendable type 'Input' in an isolated closure; this is an error in the Swift 6 language mode
20 | /// first switching to the provided `acceptQueue`. In other words, the real `accept` method will always be executed
21 | /// asynchronously on the provided queue.
22 | final class AsyncDispatchQueueConnectable<Input, Output>: Connectable {
| `- note: consider making generic parameter 'Input' conform to the 'Sendable' protocol
23 | private let underlyingConnectable: AnyConnectable<Input, Output>
24 | private let acceptQueue: DispatchQueue
:
61 | disposalStatus.read { disposed in
62 | guard !disposed else { return }
63 | connection.accept(input)
| `- warning: capture of 'input' with non-sendable type 'Input' in an isolated closure; this is an error in the Swift 6 language mode
64 | }
65 | }
[42/56] Compiling MobiusCore Lock.swift
[43/56] Compiling MobiusCore LoggingAdaptors.swift
[44/56] Compiling MobiusCore Mobius.swift
[45/56] Compiling MobiusCore MobiusController.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:105:27: warning: capture of 'state' with non-sendable type 'MobiusController<Model, Event, Effect>.State' (aka 'AsyncStartStopStateMachine<MobiusController<Model, Event, Effect>.StoppedState, MobiusController<Model, Event, Effect>.RunningState>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
103 | return { event in
104 | loopQueue.async {
105 | guard state.running else {
| `- warning: capture of 'state' with non-sendable type 'MobiusController<Model, Event, Effect>.State' (aka 'AsyncStartStopStateMachine<MobiusController<Model, Event, Effect>.StoppedState, MobiusController<Model, Event, Effect>.RunningState>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
106 | // If we got here, the controller was stopped while this async block was queued. Callers can’t
107 | // possibly avoid this except through complete external serialization of all access to the
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncStartStopStateMachine.swift:23:13: note: generic class 'AsyncStartStopStateMachine' does not conform to the 'Sendable' protocol
21 | /// tools to easily make it thread safe. In particular, we need to be able to query whether we’re currently running or
22 | /// not from any queue, including the designated mutating queue.
23 | final class AsyncStartStopStateMachine<StoppedState, RunningState> {
| `- note: generic class 'AsyncStartStopStateMachine' does not conform to the 'Sendable' protocol
24 | // Intermediate states are required to handle the case where `running` is queried during a state transition.
25 | //
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:114:21: warning: capture of 'consumer' with non-sendable type 'Consumer<Event>' (aka '(Event) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | return
113 | }
114 | consumer(event)
| |- warning: capture of 'consumer' with non-sendable type 'Consumer<Event>' (aka '(Event) -> ()') 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'
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:114:30: warning: capture of 'event' with non-sendable type 'Event' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 | /// If a loop is stopped and then started again via the controller, the new loop will continue from where the last one
20 | /// left off.
21 | public final class MobiusController<Model, Event, Effect> {
| `- note: consider making generic parameter 'Event' conform to the 'Sendable' protocol
22 | typealias Loop = MobiusLoop<Model, Event, Effect>
23 | typealias ViewConnectable = AsyncDispatchQueueConnectable<Model, Event>
:
112 | return
113 | }
114 | consumer(event)
| `- warning: capture of 'event' with non-sendable type 'Event' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[46/56] Compiling MobiusCore MobiusHooks.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:105:27: warning: capture of 'state' with non-sendable type 'MobiusController<Model, Event, Effect>.State' (aka 'AsyncStartStopStateMachine<MobiusController<Model, Event, Effect>.StoppedState, MobiusController<Model, Event, Effect>.RunningState>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
103 | return { event in
104 | loopQueue.async {
105 | guard state.running else {
| `- warning: capture of 'state' with non-sendable type 'MobiusController<Model, Event, Effect>.State' (aka 'AsyncStartStopStateMachine<MobiusController<Model, Event, Effect>.StoppedState, MobiusController<Model, Event, Effect>.RunningState>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
106 | // If we got here, the controller was stopped while this async block was queued. Callers can’t
107 | // possibly avoid this except through complete external serialization of all access to the
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncStartStopStateMachine.swift:23:13: note: generic class 'AsyncStartStopStateMachine' does not conform to the 'Sendable' protocol
21 | /// tools to easily make it thread safe. In particular, we need to be able to query whether we’re currently running or
22 | /// not from any queue, including the designated mutating queue.
23 | final class AsyncStartStopStateMachine<StoppedState, RunningState> {
| `- note: generic class 'AsyncStartStopStateMachine' does not conform to the 'Sendable' protocol
24 | // Intermediate states are required to handle the case where `running` is queried during a state transition.
25 | //
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:114:21: warning: capture of 'consumer' with non-sendable type 'Consumer<Event>' (aka '(Event) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | return
113 | }
114 | consumer(event)
| |- warning: capture of 'consumer' with non-sendable type 'Consumer<Event>' (aka '(Event) -> ()') 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'
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:114:30: warning: capture of 'event' with non-sendable type 'Event' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 | /// If a loop is stopped and then started again via the controller, the new loop will continue from where the last one
20 | /// left off.
21 | public final class MobiusController<Model, Event, Effect> {
| `- note: consider making generic parameter 'Event' conform to the 'Sendable' protocol
22 | typealias Loop = MobiusLoop<Model, Event, Effect>
23 | typealias ViewConnectable = AsyncDispatchQueueConnectable<Model, Event>
:
112 | return
113 | }
114 | consumer(event)
| `- warning: capture of 'event' with non-sendable type 'Event' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[47/56] Compiling MobiusCore MobiusLogger.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:105:27: warning: capture of 'state' with non-sendable type 'MobiusController<Model, Event, Effect>.State' (aka 'AsyncStartStopStateMachine<MobiusController<Model, Event, Effect>.StoppedState, MobiusController<Model, Event, Effect>.RunningState>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
103 | return { event in
104 | loopQueue.async {
105 | guard state.running else {
| `- warning: capture of 'state' with non-sendable type 'MobiusController<Model, Event, Effect>.State' (aka 'AsyncStartStopStateMachine<MobiusController<Model, Event, Effect>.StoppedState, MobiusController<Model, Event, Effect>.RunningState>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
106 | // If we got here, the controller was stopped while this async block was queued. Callers can’t
107 | // possibly avoid this except through complete external serialization of all access to the
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/AsyncStartStopStateMachine.swift:23:13: note: generic class 'AsyncStartStopStateMachine' does not conform to the 'Sendable' protocol
21 | /// tools to easily make it thread safe. In particular, we need to be able to query whether we’re currently running or
22 | /// not from any queue, including the designated mutating queue.
23 | final class AsyncStartStopStateMachine<StoppedState, RunningState> {
| `- note: generic class 'AsyncStartStopStateMachine' does not conform to the 'Sendable' protocol
24 | // Intermediate states are required to handle the case where `running` is queried during a state transition.
25 | //
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:114:21: warning: capture of 'consumer' with non-sendable type 'Consumer<Event>' (aka '(Event) -> ()') in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | return
113 | }
114 | consumer(event)
| |- warning: capture of 'consumer' with non-sendable type 'Consumer<Event>' (aka '(Event) -> ()') 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'
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusController.swift:114:30: warning: capture of 'event' with non-sendable type 'Event' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 | /// If a loop is stopped and then started again via the controller, the new loop will continue from where the last one
20 | /// left off.
21 | public final class MobiusController<Model, Event, Effect> {
| `- note: consider making generic parameter 'Event' conform to the 'Sendable' protocol
22 | typealias Loop = MobiusLoop<Model, Event, Effect>
23 | typealias ViewConnectable = AsyncDispatchQueueConnectable<Model, Event>
:
112 | return
113 | }
114 | consumer(event)
| `- warning: capture of 'event' with non-sendable type 'Event' in a `@Sendable` closure; this is an error in the Swift 6 language mode
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[48/56] Compiling MobiusCore Task+Disposable.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[49/56] Compiling MobiusCore EffectCallback.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[50/56] Compiling MobiusCore EffectExecutor.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[51/56] Compiling CwlPreconditionTesting CwlBadInstructionException.swift
[52/56] Emitting module CwlPreconditionTesting
[53/56] Compiling CwlPreconditionTesting CwlCatchBadInstruction.swift
[54/56] Compiling MobiusCore MobiusLoop.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[55/56] Compiling MobiusCore Next.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[56/56] Compiling MobiusCore WorkBag.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[57/122] Compiling MobiusExtras Copyable.swift
[58/122] Compiling MobiusExtras ConnectableMap.swift
[59/122] Compiling MobiusExtras ConnectableContramap.swift
[60/122] Compiling MobiusExtras SimpleLogger.swift
[61/122] Compiling MobiusExtras EventSourceMap.swift
[62/122] Compiling MobiusExtras BeginnerLoop.swift
[63/122] Compiling MobiusExtras ConnectableClass.swift
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| |- warning: static property 'errorHandler' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'errorHandler' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'errorHandler' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
/Users/admin/builder/spi-builder-workspace/MobiusExtras/Source/ConnectableClass.swift:74:25: warning: reference to static property 'errorHandler' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
72 |
73 | guard self.consumer == nil else {
74 | MobiusHooks.errorHandler(
| `- warning: reference to static property 'errorHandler' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
75 | "Connection limit exceeded: The Connectable \(type(of: self)) is already connected. " +
76 | "Unable to connect more than once",
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: note: static property declared here
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| `- note: static property declared here
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
/Users/admin/builder/spi-builder-workspace/MobiusExtras/Source/ConnectableClass.swift:95:25: warning: reference to static property 'errorHandler' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
93 | lock.unlock()
94 | guard consumerSet else {
95 | MobiusHooks.errorHandler(
| `- warning: reference to static property 'errorHandler' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
96 | "\(type(of: self)) is unable to handle \(type(of: input)) before any consumer has been set",
97 | #file,
/Users/admin/builder/spi-builder-workspace/MobiusCore/Source/MobiusHooks.swift:27:36: note: static property declared here
25 | /// Internal: we prefer to call `errorHandler` directly, without abstractions, to minimize the depth of crash
26 | /// stack traces. This requires that `#file` and `#line` are passed explicitly.
27 | public private(set) static var errorHandler: ErrorHandler = MobiusHooks.defaultErrorHandler
| `- note: static property declared here
28 |
29 | public static func setErrorHandler(_ newErrorHandler: @escaping ErrorHandler) {
[64/122] Emitting module MobiusExtras
[65/122] Compiling MobiusTest UpdateSpec.swift
[66/122] Emitting module Nimble
[67/127] Compiling MobiusTest SimpleDiff.swift
[68/127] Compiling MobiusTest MatcherUtils.swift
[69/127] Compiling MobiusTest FirstMatchers.swift
[70/127] Compiling MobiusTest InitSpec.swift
[71/127] Compiling MobiusTest NextMatchers.swift
[72/127] Emitting module MobiusTest
[73/127] Compiling MobiusTest DebugDiff.swift
[74/127] Compiling Nimble SatisfyAllOf.swift
[75/127] Compiling Nimble SatisfyAnyOf.swift
[76/127] Compiling Nimble ThrowAssertion.swift
[77/127] Compiling Nimble ThrowError.swift
[78/127] Compiling Nimble ToSucceed.swift
[79/127] Compiling Nimble BeLogical.swift
[80/127] Compiling Nimble BeNil.swift
[81/127] Compiling Nimble BeResult.swift
[82/127] Compiling Nimble BeVoid.swift
[83/127] Compiling Nimble BeWithin.swift
[84/127] Compiling Nimble AdapterProtocols.swift
[85/127] Compiling Nimble AssertionDispatcher.swift
[86/127] Compiling Nimble AssertionRecorder.swift
[87/127] Compiling Nimble NMBExpectation.swift
[88/127] Compiling Nimble NimbleEnvironment.swift
[89/127] Compiling Nimble NimbleXCTestHandler.swift
[90/127] Compiling Nimble EndWith.swift
[91/127] Compiling Nimble Equal+Tuple.swift
[92/127] Compiling Nimble Equal.swift
[93/127] Compiling Nimble HaveCount.swift
[94/127] Compiling Nimble Match.swift
[95/127] Compiling Nimble MatchError.swift
[96/127] Compiling Nimble MatcherProtocols.swift
[97/127] Compiling Nimble PostNotification.swift
[98/127] Compiling Nimble Predicate.swift
[99/127] Compiling Nimble RaisesException.swift
[100/127] Compiling Nimble BeginWith.swift
[101/127] Compiling Nimble BeginWithPrefix.swift
[102/127] Compiling Nimble Contain.swift
[103/127] Compiling Nimble ContainElementSatisfying.swift
[104/127] Compiling Nimble ElementsEqual.swift
[105/127] Compiling Nimble FailureMessage.swift
[106/127] Compiling Nimble AllPass.swift
[107/127] Compiling Nimble Async.swift
[108/127] Compiling Nimble BeAKindOf.swift
[109/127] Compiling Nimble BeAnInstanceOf.swift
[110/127] Compiling Nimble BeCloseTo.swift
[111/127] Compiling Nimble ExceptionCapture.swift
[112/127] Compiling Nimble DSL+Wait.swift
[113/127] Compiling Nimble DSL.swift
[114/127] Compiling Nimble Expectation.swift
[115/127] Compiling Nimble ExpectationMessage.swift
[116/127] Compiling Nimble Expression.swift
[117/127] Compiling Nimble BeEmpty.swift
[118/127] Compiling Nimble BeGreaterThan.swift
[119/127] Compiling Nimble BeGreaterThanOrEqualTo.swift
[120/127] Compiling Nimble BeIdenticalTo.swift
[121/127] Compiling Nimble BeLessThan.swift
[122/127] Compiling Nimble BeLessThanOrEqual.swift
[123/127] Compiling Nimble Await.swift
[124/127] Compiling Nimble DispatchTimeInterval.swift
[125/127] Compiling Nimble Errors.swift
[126/127] Compiling Nimble SourceLocation.swift
[127/127] Compiling Nimble Stringers.swift
[128/130] Emitting module MobiusNimble
/Users/admin/builder/spi-builder-workspace/MobiusNimble/Source/NimbleFirstMatchers.swift:35:5: warning: let 'unexpectedNilParameterPredicateResult' is not concurrency-safe because non-'Sendable' type 'PredicateResult' may have shared mutable state; this is an error in the Swift 6 language mode
33 |
34 | let nextBeingNilNotAllowed = "have a non-nil First. Got <nil>"
35 | let unexpectedNilParameterPredicateResult = PredicateResult(bool: false, message: .expectedTo(nextBeingNilNotAllowed))
| `- warning: let 'unexpectedNilParameterPredicateResult' is not concurrency-safe because non-'Sendable' type 'PredicateResult' may have shared mutable state; this is an error in the Swift 6 language mode
36 |
37 | /// Returns a `Predicate` that matches `First` instances with a model that is equal to the supplied one.
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift:91:15: note: struct 'PredicateResult' does not conform to the 'Sendable' protocol
89 | /// The value that a Predicates return to describe if the given (actual) value matches the
90 | /// predicate.
91 | public struct PredicateResult {
| `- note: struct 'PredicateResult' does not conform to the 'Sendable' protocol
92 | /// Status indicates if the predicate matches, does not match, or fails.
93 | public var status: PredicateStatus
/Users/admin/builder/spi-builder-workspace/MobiusNimble/Source/NimbleFirstMatchers.swift:18:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Nimble'
16 | import MobiusCore
17 | import MobiusTest
18 | import Nimble
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Nimble'
19 |
20 | /// Function produces an `AssertFirst` function to be used with the `InitSpec`
:
33 |
34 | let nextBeingNilNotAllowed = "have a non-nil First. Got <nil>"
35 | let unexpectedNilParameterPredicateResult = PredicateResult(bool: false, message: .expectedTo(nextBeingNilNotAllowed))
| |- note: annotate 'unexpectedNilParameterPredicateResult' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | /// Returns a `Predicate` that matches `First` instances with a model that is equal to the supplied one.
/Users/admin/builder/spi-builder-workspace/MobiusNimble/Source/NimbleNextMatchers.swift:35:5: warning: let 'unexpectedNilParameterPredicate' is not concurrency-safe because non-'Sendable' type 'PredicateResult' may have shared mutable state; this is an error in the Swift 6 language mode
33 |
34 | let haveNonNilNext = "have a non-nil Next. Got <nil>"
35 | let unexpectedNilParameterPredicate = Nimble.PredicateResult(bool: false, message: .expectedTo(haveNonNilNext))
| `- warning: let 'unexpectedNilParameterPredicate' is not concurrency-safe because non-'Sendable' type 'PredicateResult' may have shared mutable state; this is an error in the Swift 6 language mode
36 |
37 | /// - Returns: a `Predicate` that matches `Next` instances with no model and no effects.
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift:91:15: note: struct 'PredicateResult' does not conform to the 'Sendable' protocol
89 | /// The value that a Predicates return to describe if the given (actual) value matches the
90 | /// predicate.
91 | public struct PredicateResult {
| `- note: struct 'PredicateResult' does not conform to the 'Sendable' protocol
92 | /// Status indicates if the predicate matches, does not match, or fails.
93 | public var status: PredicateStatus
/Users/admin/builder/spi-builder-workspace/MobiusNimble/Source/NimbleNextMatchers.swift:18:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Nimble'
16 | import MobiusCore
17 | import MobiusTest
18 | import Nimble
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Nimble'
19 |
20 | /// Convenience function for creating assertions.
:
33 |
34 | let haveNonNilNext = "have a non-nil Next. Got <nil>"
35 | let unexpectedNilParameterPredicate = Nimble.PredicateResult(bool: false, message: .expectedTo(haveNonNilNext))
| |- note: annotate 'unexpectedNilParameterPredicate' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | /// - Returns: a `Predicate` that matches `Next` instances with no model and no effects.
[129/130] Compiling MobiusNimble NimbleNextMatchers.swift
/Users/admin/builder/spi-builder-workspace/MobiusNimble/Source/NimbleNextMatchers.swift:35:5: warning: let 'unexpectedNilParameterPredicate' is not concurrency-safe because non-'Sendable' type 'PredicateResult' may have shared mutable state; this is an error in the Swift 6 language mode
33 |
34 | let haveNonNilNext = "have a non-nil Next. Got <nil>"
35 | let unexpectedNilParameterPredicate = Nimble.PredicateResult(bool: false, message: .expectedTo(haveNonNilNext))
| `- warning: let 'unexpectedNilParameterPredicate' is not concurrency-safe because non-'Sendable' type 'PredicateResult' may have shared mutable state; this is an error in the Swift 6 language mode
36 |
37 | /// - Returns: a `Predicate` that matches `Next` instances with no model and no effects.
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift:91:15: note: struct 'PredicateResult' does not conform to the 'Sendable' protocol
89 | /// The value that a Predicates return to describe if the given (actual) value matches the
90 | /// predicate.
91 | public struct PredicateResult {
| `- note: struct 'PredicateResult' does not conform to the 'Sendable' protocol
92 | /// Status indicates if the predicate matches, does not match, or fails.
93 | public var status: PredicateStatus
/Users/admin/builder/spi-builder-workspace/MobiusNimble/Source/NimbleNextMatchers.swift:18:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Nimble'
16 | import MobiusCore
17 | import MobiusTest
18 | import Nimble
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Nimble'
19 |
20 | /// Convenience function for creating assertions.
:
33 |
34 | let haveNonNilNext = "have a non-nil Next. Got <nil>"
35 | let unexpectedNilParameterPredicate = Nimble.PredicateResult(bool: false, message: .expectedTo(haveNonNilNext))
| |- note: annotate 'unexpectedNilParameterPredicate' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | /// - Returns: a `Predicate` that matches `Next` instances with no model and no effects.
[130/130] Compiling MobiusNimble NimbleFirstMatchers.swift
/Users/admin/builder/spi-builder-workspace/MobiusNimble/Source/NimbleFirstMatchers.swift:35:5: warning: let 'unexpectedNilParameterPredicateResult' is not concurrency-safe because non-'Sendable' type 'PredicateResult' may have shared mutable state; this is an error in the Swift 6 language mode
33 |
34 | let nextBeingNilNotAllowed = "have a non-nil First. Got <nil>"
35 | let unexpectedNilParameterPredicateResult = PredicateResult(bool: false, message: .expectedTo(nextBeingNilNotAllowed))
| `- warning: let 'unexpectedNilParameterPredicateResult' is not concurrency-safe because non-'Sendable' type 'PredicateResult' may have shared mutable state; this is an error in the Swift 6 language mode
36 |
37 | /// Returns a `Predicate` that matches `First` instances with a model that is equal to the supplied one.
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift:91:15: note: struct 'PredicateResult' does not conform to the 'Sendable' protocol
89 | /// The value that a Predicates return to describe if the given (actual) value matches the
90 | /// predicate.
91 | public struct PredicateResult {
| `- note: struct 'PredicateResult' does not conform to the 'Sendable' protocol
92 | /// Status indicates if the predicate matches, does not match, or fails.
93 | public var status: PredicateStatus
/Users/admin/builder/spi-builder-workspace/MobiusNimble/Source/NimbleFirstMatchers.swift:18:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Nimble'
16 | import MobiusCore
17 | import MobiusTest
18 | import Nimble
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Nimble'
19 |
20 | /// Function produces an `AssertFirst` function to be used with the `InitSpec`
:
33 |
34 | let nextBeingNilNotAllowed = "have a non-nil First. Got <nil>"
35 | let unexpectedNilParameterPredicateResult = PredicateResult(bool: false, message: .expectedTo(nextBeingNilNotAllowed))
| |- note: annotate 'unexpectedNilParameterPredicateResult' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | /// Returns a `Predicate` that matches `First` instances with a model that is equal to the supplied one.
Build complete! (45.26s)
Fetching https://github.com/mattgallagher/CwlCatchException.git
Fetching https://github.com/Quick/Nimble
Fetching https://github.com/mattgallagher/CwlPreconditionTesting.git
Fetching https://github.com/pointfreeco/swift-case-paths
Fetching https://github.com/Quick/Quick
[1/439] Fetching cwlcatchexception
[32/1686] Fetching cwlcatchexception, cwlpreconditiontesting
[182/5400] Fetching cwlcatchexception, cwlpreconditiontesting, swift-case-paths
[4027/19949] Fetching cwlcatchexception, cwlpreconditiontesting, swift-case-paths, quick
Fetched https://github.com/mattgallagher/CwlPreconditionTesting.git from cache (1.00s)
[2855/18702] Fetching cwlcatchexception, swift-case-paths, quick
Fetched https://github.com/pointfreeco/swift-case-paths from cache (1.13s)
[1021/14988] Fetching cwlcatchexception, quick
[14989/33628] Fetching cwlcatchexception, quick, nimble
Fetched https://github.com/mattgallagher/CwlCatchException.git from cache (2.79s)
Fetched https://github.com/Quick/Nimble from cache (2.79s)
Fetched https://github.com/Quick/Quick from cache (2.79s)
Computing version for https://github.com/Quick/Quick
Computed https://github.com/Quick/Quick at 5.0.1 (0.72s)
Computing version for https://github.com/Quick/Nimble
Computed https://github.com/Quick/Nimble at 10.0.0 (0.69s)
Computing version for https://github.com/pointfreeco/swift-case-paths
Computed https://github.com/pointfreeco/swift-case-paths at 0.10.1 (0.73s)
Computing version for https://github.com/mattgallagher/CwlPreconditionTesting.git
Computed https://github.com/mattgallagher/CwlPreconditionTesting.git at 2.1.0 (0.65s)
Computing version for https://github.com/mattgallagher/CwlCatchException.git
Computed https://github.com/mattgallagher/CwlCatchException.git at 2.0.0 (0.65s)
Creating working copy for https://github.com/mattgallagher/CwlPreconditionTesting.git
Working copy of https://github.com/mattgallagher/CwlPreconditionTesting.git resolved at 2.1.0
Creating working copy for https://github.com/Quick/Quick
Working copy of https://github.com/Quick/Quick resolved at 5.0.1
Creating working copy for https://github.com/mattgallagher/CwlCatchException.git
Working copy of https://github.com/mattgallagher/CwlCatchException.git resolved at 2.0.0
Creating working copy for https://github.com/Quick/Nimble
Working copy of https://github.com/Quick/Nimble resolved at 10.0.0
Creating working copy for https://github.com/pointfreeco/swift-case-paths
Working copy of https://github.com/pointfreeco/swift-case-paths resolved at 0.10.1
Build complete.
{
"dependencies" : [
{
"identity" : "swift-case-paths",
"requirement" : {
"range" : [
{
"lower_bound" : "0.10.1",
"upper_bound" : "0.11.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/pointfreeco/swift-case-paths"
},
{
"identity" : "nimble",
"requirement" : {
"range" : [
{
"lower_bound" : "10.0.0",
"upper_bound" : "11.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Quick/Nimble"
},
{
"identity" : "quick",
"requirement" : {
"range" : [
{
"lower_bound" : "5.0.1",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Quick/Quick"
}
],
"manifest_display_name" : "Mobius",
"name" : "Mobius",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "10.0"
},
{
"name" : "macos",
"version" : "10.12"
},
{
"name" : "tvos",
"version" : "10.0"
},
{
"name" : "watchos",
"version" : "3.0"
}
],
"products" : [
{
"name" : "MobiusCore",
"targets" : [
"MobiusCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MobiusExtras",
"targets" : [
"MobiusExtras"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MobiusNimble",
"targets" : [
"MobiusNimble"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MobiusTest",
"targets" : [
"MobiusTest"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "MobiusThrowableAssertion",
"module_type" : "ClangTarget",
"name" : "MobiusThrowableAssertion",
"path" : "MobiusThrowableAssertion/Source",
"sources" : [
"MobiusThrowableAssertion.m"
],
"type" : "library"
},
{
"c99name" : "MobiusTestTests",
"module_type" : "SwiftTarget",
"name" : "MobiusTestTests",
"path" : "MobiusTest/Test",
"product_dependencies" : [
"Quick",
"Nimble"
],
"sources" : [
"DebugDiffTests.swift",
"FirstMatchersTests.swift",
"InitSpecTests.swift",
"NextMatchersTests.swift",
"TestUtil.swift",
"UpdateSpecTests.swift"
],
"target_dependencies" : [
"MobiusTest"
],
"type" : "test"
},
{
"c99name" : "MobiusTest",
"module_type" : "SwiftTarget",
"name" : "MobiusTest",
"path" : "MobiusTest/Source",
"product_memberships" : [
"MobiusNimble",
"MobiusTest"
],
"sources" : [
"DebugDiff.swift",
"FirstMatchers.swift",
"InitSpec.swift",
"MatcherUtils.swift",
"NextMatchers.swift",
"SimpleDiff.swift",
"UpdateSpec.swift"
],
"target_dependencies" : [
"MobiusCore"
],
"type" : "library"
},
{
"c99name" : "MobiusNimbleTests",
"module_type" : "SwiftTarget",
"name" : "MobiusNimbleTests",
"path" : "MobiusNimble/Test",
"product_dependencies" : [
"Quick"
],
"sources" : [
"NimbleFirstMatchersTests.swift",
"NimbleNextMatchersTests.swift",
"TestUtil.swift"
],
"target_dependencies" : [
"MobiusNimble"
],
"type" : "test"
},
{
"c99name" : "MobiusNimble",
"module_type" : "SwiftTarget",
"name" : "MobiusNimble",
"path" : "MobiusNimble/Source",
"product_dependencies" : [
"Nimble"
],
"product_memberships" : [
"MobiusNimble"
],
"sources" : [
"NimbleFirstMatchers.swift",
"NimbleNextMatchers.swift"
],
"target_dependencies" : [
"MobiusCore",
"MobiusTest"
],
"type" : "library"
},
{
"c99name" : "MobiusExtrasTests",
"module_type" : "SwiftTarget",
"name" : "MobiusExtrasTests",
"path" : "MobiusExtras/Test",
"product_dependencies" : [
"Nimble",
"Quick"
],
"sources" : [
"ConnectableClassTests.swift",
"ConnectableContramapTests.swift",
"ConnectableMapTests.swift",
"CopyableTests.swift",
"EventSource+ExtensionsTests.swift",
"WikiTutorialTest.swift"
],
"target_dependencies" : [
"MobiusCore",
"MobiusExtras",
"MobiusThrowableAssertion"
],
"type" : "test"
},
{
"c99name" : "MobiusExtras",
"module_type" : "SwiftTarget",
"name" : "MobiusExtras",
"path" : "MobiusExtras/Source",
"product_memberships" : [
"MobiusExtras"
],
"sources" : [
"BeginnerLoop.swift",
"ConnectableClass.swift",
"ConnectableContramap.swift",
"ConnectableMap.swift",
"Copyable.swift",
"EventSourceMap.swift",
"SimpleLogger.swift"
],
"target_dependencies" : [
"MobiusCore"
],
"type" : "library"
},
{
"c99name" : "MobiusCoreTests",
"module_type" : "SwiftTarget",
"name" : "MobiusCoreTests",
"path" : "MobiusCore/Test",
"product_dependencies" : [
"Nimble",
"Quick"
],
"sources" : [
"AnonymousDisposableTests.swift",
"AnyConnectionTests.swift",
"AnyMobiusLoggerTests.swift",
"AsyncDispatchQueueConnectableTests.swift",
"CompositeDisposableTests.swift",
"ConnectablePublisherTests.swift",
"EffectHandlers/AnyEffectHandlerTests.swift",
"EffectHandlers/CallbackTests.swift",
"EffectHandlers/EffectHandlerTests.swift",
"EffectHandlers/EffectRouterDSLTests.swift",
"EffectHandlers/EffectRouterTests.swift",
"EffectHandlers/EnumRouteTests.swift",
"EventRouterDisposalLogicalRaceRegressionTest.swift",
"EventSources/AnyEventSourceTests.swift",
"EventSources/CompositeEventSourceBuilderTests.swift",
"FirstTests.swift",
"LoggingInitiateTests.swift",
"LoggingUpdateTests.swift",
"MobiusControllerTests.swift",
"MobiusHooksTests.swift",
"MobiusIntegrationTests.swift",
"MobiusLoopTests.swift",
"NextTests.swift",
"NonReentrancyTests.swift",
"Task+DisposableTests.swift",
"TestingErrorHandler.swift",
"TestingUtil.swift",
"WorkBagTests.swift"
],
"target_dependencies" : [
"MobiusCore",
"MobiusThrowableAssertion"
],
"type" : "test"
},
{
"c99name" : "MobiusCore",
"module_type" : "SwiftTarget",
"name" : "MobiusCore",
"path" : "MobiusCore/Source",
"product_dependencies" : [
"CasePaths"
],
"product_memberships" : [
"MobiusCore",
"MobiusExtras",
"MobiusNimble",
"MobiusTest"
],
"sources" : [
"AsyncDispatchQueueConnectable.swift",
"AsyncStartStopStateMachine.swift",
"ConcurrentAccessDetector.swift",
"Connectable.swift",
"ConnectablePublisher.swift",
"Connection.swift",
"Consumer.swift",
"Disposables/AnonymousDisposable.swift",
"Disposables/CompositeDisposable.swift",
"Disposables/Disposable.swift",
"Disposables/Task+Disposable.swift",
"EffectHandlers/EffectCallback.swift",
"EffectHandlers/EffectExecutor.swift",
"EffectHandlers/EffectHandler.swift",
"EffectHandlers/EffectRouter.swift",
"EffectHandlers/EffectRouterDSL.swift",
"EffectHandlers/EnumRoute.swift",
"EffectHandlers/ThreadSafeConnectable.swift",
"EventSources/AnyEventSource.swift",
"EventSources/CompositeEventSourceBuilder.swift",
"EventSources/EventSource.swift",
"First.swift",
"Lock.swift",
"LoggingAdaptors.swift",
"Mobius.swift",
"MobiusController.swift",
"MobiusHooks.swift",
"MobiusLogger.swift",
"MobiusLoop.swift",
"Next.swift",
"WorkBag.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Done.