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.0 for macOS (SPM) on 2 Nov 2024 12:45:53 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
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
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "swiftui-hooks",
      "name": "swiftui-hooks",
      "url": "https://github.com/ra1028/SwiftUI-Hooks.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftUI-Hooks",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/ra1028/SwiftUI-Hooks.git
[1/8010] Fetching swiftui-hooks
Fetched https://github.com/ra1028/SwiftUI-Hooks.git from cache (1.32s)
Creating working copy for https://github.com/ra1028/SwiftUI-Hooks.git
Working copy of https://github.com/ra1028/SwiftUI-Hooks.git resolved at main (4d74bb4)
warning: '.resolve-product-dependencies': dependency 'swiftui-hooks' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/ra1028/SwiftUI-Hooks.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/29] Compiling Hooks LinkedList.swift
[4/29] Compiling Hooks RefObject.swift
[5/29] 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 |                 }
[6/29] 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 |                 }
[7/29] 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 |                 }
[8/31] Compiling Hooks UsePublisher.swift
[9/31] Compiling Hooks UsePublisherSubscribe.swift
[10/31] Compiling Hooks UseReducer.swift
[11/31] 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: annotate 'current' 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
  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 |     }
[12/31] Compiling Hooks AsyncPhase.swift
[13/31] Compiling Hooks Consumer.swift
[14/31] Compiling Hooks Context.swift
[15/31] Compiling Hooks Provider.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: non-sendable type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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: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:63:39: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 61 |     func updateState(coordinator: Coordinator) {
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
    |                                       `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 64 |             let output = await operation()
 65 |
/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 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:103:39: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
101 |     func updateState(coordinator: Coordinator) {
102 |         coordinator.state.phase = .running
103 |         coordinator.state.task = Task { @MainActor in
    |                                       `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
104 |             let phase: AsyncPhase<Output, Error>
105 |
[16/31] Compiling Hooks Hook.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: non-sendable type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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: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:63:39: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 61 |     func updateState(coordinator: Coordinator) {
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
    |                                       `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 64 |             let output = await operation()
 65 |
/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 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:103:39: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
101 |     func updateState(coordinator: Coordinator) {
102 |         coordinator.state.phase = .running
103 |         coordinator.state.task = Task { @MainActor in
    |                                       `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
104 |             let phase: AsyncPhase<Output, Error>
105 |
[17/31] Compiling Hooks UseAsync.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:64:32: warning: non-sendable type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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 type 'Output' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; 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: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:63:39: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 61 |     func updateState(coordinator: Coordinator) {
 62 |         coordinator.state.phase = .running
 63 |         coordinator.state.task = Task { @MainActor in
    |                                       `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
 64 |             let output = await operation()
 65 |
/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 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/Hook/UseAsync.swift:103:39: warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
101 |     func updateState(coordinator: Coordinator) {
102 |         coordinator.state.phase = .running
103 |         coordinator.state.task = Task { @MainActor in
    |                                       `- warning: task or actor isolated value cannot be sent; this is an error in the Swift 6 language mode
104 |             let phase: AsyncPhase<Output, Error>
105 |
[18/31] Compiling Hooks UseEnvironment.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: annotate 'current' 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
  7 |
  8 |     /// A publisher that emits before the object has changed.
[19/31] Compiling Hooks UseHook.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: annotate 'current' 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
  7 |
  8 |     /// A publisher that emits before the object has changed.
[20/31] Compiling Hooks UseMemo.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: annotate 'current' 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
  7 |
  8 |     /// A publisher that emits before the object has changed.
[21/31] Compiling Hooks HookTester.swift
[22/31] Compiling Hooks ViewExtensions.swift
[23/31] Compiling Hooks HookView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookView.swift:27:9: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
25 |     /// The content and behavior of the view.
26 |     var body: some View {
27 |         HookScope {
   |         `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
28 |             hookBody
29 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookScope.swift:24:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
22 |     /// Creates a `HookScope` that hosts the state of hooks.
23 |     /// - Parameter content: A content view that uses the hooks.
24 |     public init(@ViewBuilder _ content: @escaping () -> Content) {
   |            `- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
25 |         self.content = content
26 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookView.swift:27:9: warning: sending task-isolated value of type '() -> Self.HookBody' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
25 |     /// The content and behavior of the view.
26 |     var body: some View {
27 |         HookScope {
   |         `- warning: sending task-isolated value of type '() -> Self.HookBody' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
28 |             hookBody
29 |         }
[24/31] Compiling Hooks Assertions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookView.swift:27:9: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
25 |     /// The content and behavior of the view.
26 |     var body: some View {
27 |         HookScope {
   |         `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
28 |             hookBody
29 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookScope.swift:24:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
22 |     /// Creates a `HookScope` that hosts the state of hooks.
23 |     /// - Parameter content: A content view that uses the hooks.
24 |     public init(@ViewBuilder _ content: @escaping () -> Content) {
   |            `- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
25 |         self.content = content
26 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookView.swift:27:9: warning: sending task-isolated value of type '() -> Self.HookBody' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
25 |     /// The content and behavior of the view.
26 |     var body: some View {
27 |         HookScope {
   |         `- warning: sending task-isolated value of type '() -> Self.HookBody' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
28 |             hookBody
29 |         }
[25/31] Compiling Hooks EnvironmentKeys.swift
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookView.swift:27:9: warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
25 |     /// The content and behavior of the view.
26 |     var body: some View {
27 |         HookScope {
   |         `- warning: call to main actor-isolated initializer 'init(_:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
28 |             hookBody
29 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookScope.swift:24:12: note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
22 |     /// Creates a `HookScope` that hosts the state of hooks.
23 |     /// - Parameter content: A content view that uses the hooks.
24 |     public init(@ViewBuilder _ content: @escaping () -> Content) {
   |            `- note: calls to initializer 'init(_:)' from outside of its actor context are implicitly asynchronous
25 |         self.content = content
26 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Hooks/HookView.swift:27:9: warning: sending task-isolated value of type '() -> Self.HookBody' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
25 |     /// The content and behavior of the view.
26 |     var body: some View {
27 |         HookScope {
   |         `- warning: sending task-isolated value of type '() -> Self.HookBody' with later accesses to main actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
28 |             hookBody
29 |         }
[26/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: annotate 'current' 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
  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 |     }
[27/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: annotate 'current' 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
  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 |     }
[28/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: annotate 'current' 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
  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 |     }
[29/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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
[30/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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
[31/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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
Build complete! (20.07s)
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.