The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of swiftui-hooks, reference main (4d74bb), with Swift 6.1 for macOS (SPM) on 29 Apr 2025 16:22:07 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.61.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ra1028/SwiftUI-Hooks.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/ra1028/SwiftUI-Hooks
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 4d74bb4 Fix typos (#30)
Cloned https://github.com/ra1028/SwiftUI-Hooks.git
Revision (git rev-parse @):
4d74bb4370a8e00c0bb51067cda601fa66537a92
SUCCESS checkout https://github.com/ra1028/SwiftUI-Hooks.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/ra1028/SwiftUI-Hooks.git
https://github.com/ra1028/SwiftUI-Hooks.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "swiftui-hooks",
  "name" : "swiftui-hooks",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "Hooks",
      "targets" : [
        "Hooks"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "HooksTests",
      "module_type" : "SwiftTarget",
      "name" : "HooksTests",
      "path" : "Tests/HooksTests",
      "sources" : [
        "AsyncPhaseTests.swift",
        "Hook/UseAsyncPerformTests.swift",
        "Hook/UseAsyncTests.swift",
        "Hook/UseContextTests.swift",
        "Hook/UseEffectTests.swift",
        "Hook/UseEnvironmentTests.swift",
        "Hook/UseHookTests.swift",
        "Hook/UseMemoTests.swift",
        "Hook/UsePublisherSubscribeTests.swift",
        "Hook/UsePublisherTests.swift",
        "Hook/UseReducerTests.swift",
        "Hook/UseRefTests.swift",
        "Hook/UseStateTests.swift",
        "Hook/Utilities.swift",
        "HookDispatcherTests.swift",
        "HookUpdateStrategyTests.swift",
        "LinkedListTests.swift",
        "RefObjectTests.swift",
        "Testing/HookTesterTests.swift"
      ],
      "target_dependencies" : [
        "Hooks"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Hooks",
      "module_type" : "SwiftTarget",
      "name" : "Hooks",
      "path" : "Sources/Hooks",
      "product_memberships" : [
        "Hooks"
      ],
      "sources" : [
        "AsyncPhase.swift",
        "Context/Consumer.swift",
        "Context/Context.swift",
        "Context/Provider.swift",
        "Hook.swift",
        "Hook/UseAsync.swift",
        "Hook/UseAsyncPerform.swift",
        "Hook/UseContext.swift",
        "Hook/UseEffect.swift",
        "Hook/UseEnvironment.swift",
        "Hook/UseHook.swift",
        "Hook/UseMemo.swift",
        "Hook/UsePublisher.swift",
        "Hook/UsePublisherSubscribe.swift",
        "Hook/UseReducer.swift",
        "Hook/UseRef.swift",
        "Hook/UseState.swift",
        "HookCoordinator.swift",
        "HookDispatcher.swift",
        "HookScope.swift",
        "HookUpdateStrategy.swift",
        "HookView.swift",
        "Internals/Assertions.swift",
        "Internals/EnvironmentKeys.swift",
        "Internals/LinkedList.swift",
        "RefObject.swift",
        "Testing/HookTester.swift",
        "ViewExtensions.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/29] Emitting module Hooks
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookDispatcher.swift:6:43: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | /// A class that manages list of states of hooks used inside `HookDispatcher.scoped(environment:_)`.
  5 | public final class HookDispatcher: ObservableObject {
  6 |     internal private(set) static weak var current: HookDispatcher?
    |                                           |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                                           |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
    |                                           |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
    |                                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |
  8 |     /// A publisher that emits before the object has changed.
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookDispatcher.swift:214:16: warning: generic parameter 'H' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
204 | }
205 |
206 | private struct HookRecord<H: Hook>: HookRecordProtocol {
    |                           `- note: 'H' previously declared here
207 |     let hook: H
208 |     let coordinator: HookCoordinator<H>
    :
212 |     }
213 |
214 |     func state<H: Hook>(of hookType: H.Type) -> H.State? {
    |                `- warning: generic parameter 'H' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
215 |         coordinator.state as? H.State
216 |     }
[4/31] Compiling Hooks UseRef.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:49:17: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
47 |         Binding(
48 |             get: {
49 |                 coordinator.state.state
   |                 `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
50 |             },
51 |             set: { newState, transaction in
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:54:24: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
52 |                 assertMainThread()
53 |
54 |                 guard !coordinator.state.isDisposed else {
   |                        `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
55 |                     return
56 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:59:21: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in an isolated closure; this is an error in the Swift 6 language mode
57 |
58 |                 withTransaction(transaction) {
59 |                     coordinator.state.state = newState
   |                     `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in an isolated closure; this is an error in the Swift 6 language mode
60 |                     coordinator.updateView()
61 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
[5/31] Compiling Hooks UseState.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:49:17: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
47 |         Binding(
48 |             get: {
49 |                 coordinator.state.state
   |                 `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
50 |             },
51 |             set: { newState, transaction in
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:54:24: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
52 |                 assertMainThread()
53 |
54 |                 guard !coordinator.state.isDisposed else {
   |                        `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
55 |                     return
56 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:59:21: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in an isolated closure; this is an error in the Swift 6 language mode
57 |
58 |                 withTransaction(transaction) {
59 |                     coordinator.state.state = newState
   |                     `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in an isolated closure; this is an error in the Swift 6 language mode
60 |                     coordinator.updateView()
61 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
[6/31] Compiling Hooks HookCoordinator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:49:17: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
47 |         Binding(
48 |             get: {
49 |                 coordinator.state.state
   |                 `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
50 |             },
51 |             set: { newState, transaction in
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:54:24: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
52 |                 assertMainThread()
53 |
54 |                 guard !coordinator.state.isDisposed else {
   |                        `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in a '@Sendable' closure
55 |                     return
56 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseState.swift:59:21: warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in an isolated closure; this is an error in the Swift 6 language mode
57 |
58 |                 withTransaction(transaction) {
59 |                     coordinator.state.state = newState
   |                     `- warning: capture of 'coordinator' with non-sendable type 'StateHook<State>.Coordinator' (aka 'HookCoordinator<StateHook<State>>') in an isolated closure; this is an error in the Swift 6 language mode
60 |                     coordinator.updateView()
61 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookCoordinator.swift:4:15: note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 2 |
 3 | /// Contextual information about the state of the hook.
 4 | public struct HookCoordinator<H: Hook> {
   |               `- note: consider making generic struct 'HookCoordinator' conform to the 'Sendable' protocol
 5 |     /// The state of the hook stored in the scope.
 6 |     public let state: H.State
[7/31] Compiling Hooks HookTester.swift
[8/31] Compiling Hooks ViewExtensions.swift
[9/31] Compiling Hooks UseEnvironment.swift
[10/31] Compiling Hooks UseHook.swift
[11/31] Compiling Hooks UseMemo.swift
[12/31] Compiling Hooks UseAsyncPerform.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:52:24: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 50 |             phase: coordinator.state.phase,
 51 |             perform: {
 52 |                 guard !coordinator.state.isDisposed else {
    |                        |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 53 |                     return
 54 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:59:36: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 57 |                 coordinator.updateView()
 58 |
 59 |                 let output = await operation()
    |                                    |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 60 |
 61 |                 if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:96:24: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 94 |             phase: coordinator.state.phase,
 95 |             perform: {
 96 |                 guard !coordinator.state.isDisposed else {
    |                        |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 97 |                     return
 98 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:106:44: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
104 |
105 |                 do {
106 |                     let output = try await operation()
    |                                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
107 |                     phase = .success(output)
108 |                 }
[13/31] Compiling Hooks UseContext.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:52:24: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 50 |             phase: coordinator.state.phase,
 51 |             perform: {
 52 |                 guard !coordinator.state.isDisposed else {
    |                        |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 53 |                     return
 54 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:59:36: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 57 |                 coordinator.updateView()
 58 |
 59 |                 let output = await operation()
    |                                    |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 60 |
 61 |                 if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:96:24: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 94 |             phase: coordinator.state.phase,
 95 |             perform: {
 96 |                 guard !coordinator.state.isDisposed else {
    |                        |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 97 |                     return
 98 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:106:44: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
104 |
105 |                 do {
106 |                     let output = try await operation()
    |                                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
107 |                     phase = .success(output)
108 |                 }
[14/31] Compiling Hooks UseEffect.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:52:24: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 50 |             phase: coordinator.state.phase,
 51 |             perform: {
 52 |                 guard !coordinator.state.isDisposed else {
    |                        |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 53 |                     return
 54 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:59:36: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 57 |                 coordinator.updateView()
 58 |
 59 |                 let output = await operation()
    |                                    |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 60 |
 61 |                 if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:96:24: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 94 |             phase: coordinator.state.phase,
 95 |             perform: {
 96 |                 guard !coordinator.state.isDisposed else {
    |                        |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 97 |                     return
 98 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsyncPerform.swift:106:44: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
104 |
105 |                 do {
106 |                     let output = try await operation()
    |                                            |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                            `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
107 |                     phase = .success(output)
108 |                 }
[15/31] Compiling Hooks HookView.swift
[16/31] Compiling Hooks Assertions.swift
[17/31] Compiling Hooks EnvironmentKeys.swift
[18/31] Compiling Hooks HookDispatcher.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookDispatcher.swift:6:43: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | /// A class that manages list of states of hooks used inside `HookDispatcher.scoped(environment:_)`.
  5 | public final class HookDispatcher: ObservableObject {
  6 |     internal private(set) static weak var current: HookDispatcher?
    |                                           |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                                           |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
    |                                           |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
    |                                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |
  8 |     /// A publisher that emits before the object has changed.
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookDispatcher.swift:214:16: warning: generic parameter 'H' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
204 | }
205 |
206 | private struct HookRecord<H: Hook>: HookRecordProtocol {
    |                           `- note: 'H' previously declared here
207 |     let hook: H
208 |     let coordinator: HookCoordinator<H>
    :
212 |     }
213 |
214 |     func state<H: Hook>(of hookType: H.Type) -> H.State? {
    |                `- warning: generic parameter 'H' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
215 |         coordinator.state as? H.State
216 |     }
[19/31] Compiling Hooks HookScope.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookDispatcher.swift:6:43: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | /// A class that manages list of states of hooks used inside `HookDispatcher.scoped(environment:_)`.
  5 | public final class HookDispatcher: ObservableObject {
  6 |     internal private(set) static weak var current: HookDispatcher?
    |                                           |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                                           |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
    |                                           |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
    |                                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |
  8 |     /// A publisher that emits before the object has changed.
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookDispatcher.swift:214:16: warning: generic parameter 'H' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
204 | }
205 |
206 | private struct HookRecord<H: Hook>: HookRecordProtocol {
    |                           `- note: 'H' previously declared here
207 |     let hook: H
208 |     let coordinator: HookCoordinator<H>
    :
212 |     }
213 |
214 |     func state<H: Hook>(of hookType: H.Type) -> H.State? {
    |                `- warning: generic parameter 'H' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
215 |         coordinator.state as? H.State
216 |     }
[20/31] Compiling Hooks HookUpdateStrategy.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookDispatcher.swift:6:43: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | /// A class that manages list of states of hooks used inside `HookDispatcher.scoped(environment:_)`.
  5 | public final class HookDispatcher: ObservableObject {
  6 |     internal private(set) static weak var current: HookDispatcher?
    |                                           |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                                           |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
    |                                           |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
    |                                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |
  8 |     /// A publisher that emits before the object has changed.
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookDispatcher.swift:214:16: warning: generic parameter 'H' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
204 | }
205 |
206 | private struct HookRecord<H: Hook>: HookRecordProtocol {
    |                           `- note: 'H' previously declared here
207 |     let hook: H
208 |     let coordinator: HookCoordinator<H>
    :
212 |     }
213 |
214 |     func state<H: Hook>(of hookType: H.Type) -> H.State? {
    |                `- warning: generic parameter 'H' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
215 |         coordinator.state as? H.State
216 |     }
[21/31] Compiling Hooks Provider.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 47 | }
 48 |
 49 | internal struct AsyncHook<Output>: Hook {
    |                           `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
 50 |     let updateStrategy: HookUpdateStrategy?
 51 |     let operation: () async -> Output
    :
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
 64 |             let output = await operation()
    |                                `- warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 65 |
 66 |             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:107:40: warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 87 | }
 88 |
 89 | internal struct AsyncThrowingHook<Output>: Hook {
    |                                   `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
 90 |     let updateStrategy: HookUpdateStrategy?
 91 |     let operation: () async throws -> Output
    :
105 |
106 |             do {
107 |                 let output = try await operation()
    |                                        `- warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
108 |                 phase = .success(output)
109 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
 64 |             let output = await operation()
    |                                |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 65 |
 66 |             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:67:17: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 65 |
 66 |             if !Task.isCancelled {
 67 |                 coordinator.state.phase = .success(output)
    |                 |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 68 |                 coordinator.updateView()
 69 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:107:40: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
105 |
106 |             do {
107 |                 let output = try await operation()
    |                                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                        `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
108 |                 phase = .success(output)
109 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:115:17: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
113 |
114 |             if !Task.isCancelled {
115 |                 coordinator.state.phase = phase
    |                 |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
116 |                 coordinator.updateView()
117 |             }
[22/31] Compiling Hooks Hook.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 47 | }
 48 |
 49 | internal struct AsyncHook<Output>: Hook {
    |                           `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
 50 |     let updateStrategy: HookUpdateStrategy?
 51 |     let operation: () async -> Output
    :
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
 64 |             let output = await operation()
    |                                `- warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 65 |
 66 |             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:107:40: warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 87 | }
 88 |
 89 | internal struct AsyncThrowingHook<Output>: Hook {
    |                                   `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
 90 |     let updateStrategy: HookUpdateStrategy?
 91 |     let operation: () async throws -> Output
    :
105 |
106 |             do {
107 |                 let output = try await operation()
    |                                        `- warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
108 |                 phase = .success(output)
109 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
 64 |             let output = await operation()
    |                                |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 65 |
 66 |             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:67:17: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 65 |
 66 |             if !Task.isCancelled {
 67 |                 coordinator.state.phase = .success(output)
    |                 |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 68 |                 coordinator.updateView()
 69 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:107:40: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
105 |
106 |             do {
107 |                 let output = try await operation()
    |                                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                        `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
108 |                 phase = .success(output)
109 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:115:17: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
113 |
114 |             if !Task.isCancelled {
115 |                 coordinator.state.phase = phase
    |                 |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
116 |                 coordinator.updateView()
117 |             }
[23/31] Compiling Hooks UseAsync.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 47 | }
 48 |
 49 | internal struct AsyncHook<Output>: Hook {
    |                           `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
 50 |     let updateStrategy: HookUpdateStrategy?
 51 |     let operation: () async -> Output
    :
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
 64 |             let output = await operation()
    |                                `- warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 65 |
 66 |             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:107:40: warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
 87 | }
 88 |
 89 | internal struct AsyncThrowingHook<Output>: Hook {
    |                                   `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
 90 |     let updateStrategy: HookUpdateStrategy?
 91 |     let operation: () async throws -> Output
    :
105 |
106 |             do {
107 |                 let output = try await operation()
    |                                        `- warning: non-sendable result type 'Output' cannot be sent from nonisolated context in call to async function; this is an error in the Swift 6 language mode
108 |                 phase = .success(output)
109 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
 64 |             let output = await operation()
    |                                |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 65 |
 66 |             if !Task.isCancelled {
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:67:17: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
 65 |
 66 |             if !Task.isCancelled {
 67 |                 coordinator.state.phase = .success(output)
    |                 |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 68 |                 coordinator.updateView()
 69 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:107:40: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
105 |
106 |             do {
107 |                 let output = try await operation()
    |                                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                        `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
108 |                 phase = .success(output)
109 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:115:17: warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
113 |
114 |             if !Task.isCancelled {
115 |                 coordinator.state.phase = phase
    |                 |- warning: sending 'coordinator' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'coordinator' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
116 |                 coordinator.updateView()
117 |             }
[24/31] Compiling Hooks LinkedList.swift
[25/31] Compiling Hooks RefObject.swift
[26/31] Compiling Hooks UsePublisher.swift
[27/31] Compiling Hooks UsePublisherSubscribe.swift
[28/31] Compiling Hooks UseReducer.swift
[29/31] Compiling Hooks AsyncPhase.swift
[30/31] Compiling Hooks Consumer.swift
[31/31] Compiling Hooks Context.swift
Build complete! (9.83s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "swiftui-hooks",
  "name" : "swiftui-hooks",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "Hooks",
      "targets" : [
        "Hooks"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "HooksTests",
      "module_type" : "SwiftTarget",
      "name" : "HooksTests",
      "path" : "Tests/HooksTests",
      "sources" : [
        "AsyncPhaseTests.swift",
        "Hook/UseAsyncPerformTests.swift",
        "Hook/UseAsyncTests.swift",
        "Hook/UseContextTests.swift",
        "Hook/UseEffectTests.swift",
        "Hook/UseEnvironmentTests.swift",
        "Hook/UseHookTests.swift",
        "Hook/UseMemoTests.swift",
        "Hook/UsePublisherSubscribeTests.swift",
        "Hook/UsePublisherTests.swift",
        "Hook/UseReducerTests.swift",
        "Hook/UseRefTests.swift",
        "Hook/UseStateTests.swift",
        "Hook/Utilities.swift",
        "HookDispatcherTests.swift",
        "HookUpdateStrategyTests.swift",
        "LinkedListTests.swift",
        "RefObjectTests.swift",
        "Testing/HookTesterTests.swift"
      ],
      "target_dependencies" : [
        "Hooks"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Hooks",
      "module_type" : "SwiftTarget",
      "name" : "Hooks",
      "path" : "Sources/Hooks",
      "product_memberships" : [
        "Hooks"
      ],
      "sources" : [
        "AsyncPhase.swift",
        "Context/Consumer.swift",
        "Context/Context.swift",
        "Context/Provider.swift",
        "Hook.swift",
        "Hook/UseAsync.swift",
        "Hook/UseAsyncPerform.swift",
        "Hook/UseContext.swift",
        "Hook/UseEffect.swift",
        "Hook/UseEnvironment.swift",
        "Hook/UseHook.swift",
        "Hook/UseMemo.swift",
        "Hook/UsePublisher.swift",
        "Hook/UsePublisherSubscribe.swift",
        "Hook/UseReducer.swift",
        "Hook/UseRef.swift",
        "Hook/UseState.swift",
        "HookCoordinator.swift",
        "HookDispatcher.swift",
        "HookScope.swift",
        "HookUpdateStrategy.swift",
        "HookView.swift",
        "Internals/Assertions.swift",
        "Internals/EnvironmentKeys.swift",
        "Internals/LinkedList.swift",
        "RefObject.swift",
        "Testing/HookTester.swift",
        "ViewExtensions.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Done.