Build Information
Successful build of ScreenUI, reference main (99429b
), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 12:44:38 UTC.
Swift 6 data race errors: 4
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.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/k-o-d-e-n/ScreenUI.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/k-o-d-e-n/ScreenUI
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 99429b4 Updated to 1.1.1.
Cloned https://github.com/k-o-d-e-n/ScreenUI.git
Revision (git rev-parse @):
99429b497e02b69079d3d60f30b46b426a51208f
SUCCESS checkout https://github.com/k-o-d-e-n/ScreenUI.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": "screenui",
"name": "ScreenUI",
"url": "https://github.com/k-o-d-e-n/ScreenUI.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/ScreenUI",
"dependencies": [
]
}
]
}
Fetching https://github.com/k-o-d-e-n/ScreenUI.git
[1/193] Fetching screenui
Fetched https://github.com/k-o-d-e-n/ScreenUI.git from cache (0.73s)
Creating working copy for https://github.com/k-o-d-e-n/ScreenUI.git
Working copy of https://github.com/k-o-d-e-n/ScreenUI.git resolved at main (99429b4)
warning: '.resolve-product-dependencies': dependency 'screenui' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/k-o-d-e-n/ScreenUI.git
https://github.com/k-o-d-e-n/ScreenUI.git
{
"dependencies" : [
],
"manifest_display_name" : "ScreenUI",
"name" : "ScreenUI",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "ScreenUI",
"targets" : [
"ScreenUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ScreenUITests",
"module_type" : "SwiftTarget",
"name" : "ScreenUITests",
"path" : "Tests/ScreenUITests",
"sources" : [
"ScreenUITests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"ScreenUI"
],
"type" : "test"
},
{
"c99name" : "ScreenUI",
"module_type" : "SwiftTarget",
"name" : "ScreenUI",
"path" : "Sources/ScreenUI",
"product_memberships" : [
"ScreenUI"
],
"sources" : [
"AppKit.swift",
"ContentBuilders.swift",
"Crossplatform.swift",
"PathProvider.swift",
"Screen.swift",
"ScreenBuilder.swift",
"ScreenPath.swift",
"ScreenState.swift",
"SwiftUI.swift",
"Transition.swift",
"UIKit.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
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/13] Compiling ScreenUI Screen.swift
[4/13] Compiling ScreenUI Crossplatform.swift
[5/13] Compiling ScreenUI ScreenPath.swift
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/ScreenPath.swift:60:22: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
43 |
44 | public typealias ScreenPathResult<To> = (state: AnyScreenState, screenContent: To.NestedScreen.Content) where To: Screen
45 | public struct StartPath<T>: ScreenPath, ScreenPathPrivate, ScreenPathPrivate2 where T: Transition {
| `- note: 'T' previously declared here
46 | public typealias From = T.From
47 | public typealias To = T.To
:
58 | }
59 |
60 | public subscript<T>(next path: KeyPath<To.PathFrom, T>) -> T { transition[next: path] }
| `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
61 |
62 | public func __move(from surface: T.From.Content, completion: (() -> Void)?) -> ScreenPathResult<T.To> {
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/ScreenPath.swift:128:22: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
107 | }
108 | }
109 | public struct NextPath<Prev, T>: ScreenPath, ScreenPathPrivate, ScreenPathPrivate2
| `- note: 'T' previously declared here
110 | where Prev: ScreenPath & ScreenPathPrivate2, T: Transition, T.From == Prev.To.NestedScreen,
111 | Prev.Result == ScreenPathResult<Prev.To>
:
126 | }
127 |
128 | public subscript<T>(next path: KeyPath<To.PathFrom, T>) -> T { transition[next: path] }
| `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
129 |
130 | public func __move(from surface: Prev.From.Content, completion: (() -> Void)?) -> ScreenPathResult<T.To> {
[6/13] Compiling ScreenUI ScreenBuilder.swift
[7/13] Compiling ScreenUI PathProvider.swift
[8/14] Compiling ScreenUI ScreenState.swift
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/ScreenState.swift:127:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
125 | isActive_SwiftUI!.wrappedValue = false
126 | if let compl = completion {
127 | DispatchQueue.main.async(execute: compl)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
128 | }
129 | return
[9/14] Compiling ScreenUI SwiftUI.swift
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:321:22: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
304 | }
305 | @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
306 | public struct StartPath_SwiftUI<T>: ScreenPath, ScreenPathPrivate, ScreenPath_SwiftUI where T: SwiftUICompatibleTransition {
| `- note: 'T' previously declared here
307 | public typealias From = UnavailableContentScreen<Void>
308 | public typealias To = T.To
:
319 | }
320 |
321 | public subscript<T>(next path: KeyPath<To.PathFrom, T>) -> T { transition[next: path] }
| `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
322 | public func index(of keyPath: PartialKeyPath<To.PathFrom>) -> Int { transition.index(of: keyPath) }
323 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { transition.keyPath(at: index) }
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:370:22: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
350 | }
351 | @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
352 | public struct NextPath_SwiftUI<Prev, T>: ScreenPath, ScreenPathPrivate, ScreenPath_SwiftUI
| `- note: 'T' previously declared here
353 | where Prev: ScreenPath & ScreenPath_SwiftUI, T: SwiftUICompatibleTransition, Prev.To.NestedScreen == T.From
354 | {
:
368 | }
369 |
370 | public subscript<T>(next path: KeyPath<To.PathFrom, T>) -> T { transition[next: path] }
| `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
371 | public func index(of keyPath: PartialKeyPath<To.PathFrom>) -> Int { transition.index(of: keyPath) }
372 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { transition.keyPath(at: index) }
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:57:24: warning: call to main actor-isolated initializer 'init(router:content:selectedIndex:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
54 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
55 |
56 | public func makeContent(_ context: Context, router: Router<NestedScreen>) -> ContentResult<Self> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
57 | let tabs = TabsView(router: router, content: root.makeContent(context, router: router), selectedIndex: 0)
| `- warning: call to main actor-isolated initializer 'init(router:content:selectedIndex:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
58 | return (tabs, tabs)
59 | }
60 |
61 | public struct TabsView: View, _TabsViewIdentity {
| |- note: calls to initializer 'init(router:content:selectedIndex:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
62 | let router: Router<NestedScreen>
63 | let content: Root.Content
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:77:53: warning: converting non-sendable function value to '@isolated(any) @Sendable () -> Int' may introduce data races
75 | )
76 | router.state.selectedIndex_SwiftUI = _binding
77 | let binding = Binding(get: _binding.get, set: _binding.set)
| `- warning: converting non-sendable function value to '@isolated(any) @Sendable () -> Int' may introduce data races
78 | return TabView(selection: binding) {
79 | TupleView(content)
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:77:72: warning: converting non-sendable function value to '@isolated(any) @Sendable (Int) -> Void' may introduce data races
75 | )
76 | router.state.selectedIndex_SwiftUI = _binding
77 | let binding = Binding(get: _binding.get, set: _binding.set)
| `- warning: converting non-sendable function value to '@isolated(any) @Sendable (Int) -> Void' may introduce data races
78 | return TabView(selection: binding) {
79 | TupleView(content)
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:225:44: warning: call to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
215 | extension Router {
216 | @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
217 | public func move<T, ActionView>(
| `- note: add '@MainActor' to make instance method 'move(_:context:action:completion:)' part of global actor 'MainActor'
218 | _ path: KeyPath<From.PathFrom, T>, context: T.Context,
219 | @ViewBuilder action view: @escaping (Binding<Bool>) -> ActionView,
:
223 | nextState.previous = state
224 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
225 | return TransitionView<T, ActionView>(
| `- warning: call to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
226 | from[next: path], prevState: state, nextState: nextState,
227 | context: context, actionView: view, completion: completion
:
268 | let state: ContentScreenState<Transition.To.NestedScreen>
269 |
270 | init(_ transition: Transition, prevState: ContentScreenState<Transition.From.NestedScreen>,
| |- note: calls to initializer 'init(_:prevState:nextState:context:actionView:completion:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
271 | nextState: ContentScreenState<Transition.To.NestedScreen>, context: Transition.Context,
272 | @ViewBuilder actionView: @escaping (Binding<Bool>) -> ActionView, completion: (() -> Void)?) {
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:240:44: warning: call to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
229 | }
230 | @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
231 | public func move<T, ActionView>(
| `- note: add '@MainActor' to make instance method 'move(_:context:action:completion:)' part of global actor 'MainActor'
232 | _ path: KeyPath<From.PathFrom, Optional<T>>, context: T.Context,
233 | @ViewBuilder action view: @escaping (Binding<Bool>) -> ActionView,
:
238 | nextState.previous = state
239 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
240 | return TransitionView<T, ActionView>(
| `- warning: call to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
241 | transition, prevState: state, nextState: nextState,
242 | context: context, actionView: view, completion: completion
:
268 | let state: ContentScreenState<Transition.To.NestedScreen>
269 |
270 | init(_ transition: Transition, prevState: ContentScreenState<Transition.From.NestedScreen>,
| |- note: calls to initializer 'init(_:prevState:nextState:context:actionView:completion:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'View'
271 | nextState: ContentScreenState<Transition.To.NestedScreen>, context: Transition.Context,
272 | @ViewBuilder actionView: @escaping (Binding<Bool>) -> ActionView, completion: (() -> Void)?) {
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:292:45: warning: converting non-sendable function value to '@isolated(any) @Sendable () -> Bool' may introduce data races
290 | )
291 | state.isActive_SwiftUI = _binding
292 | let binding = Binding(get: _binding.get, set: _binding.set)
| `- warning: converting non-sendable function value to '@isolated(any) @Sendable () -> Bool' may introduce data races
293 | return transition.move(binding, screenState: state, actionView: actionView(binding), context: context, completion: completion)
294 | .onDisappear { [weak state] in
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:292:64: warning: converting non-sendable function value to '@isolated(any) @Sendable (Bool) -> Void' may introduce data races
290 | )
291 | state.isActive_SwiftUI = _binding
292 | let binding = Binding(get: _binding.get, set: _binding.set)
| `- warning: converting non-sendable function value to '@isolated(any) @Sendable (Bool) -> Void' may introduce data races
293 | return transition.move(binding, screenState: state, actionView: actionView(binding), context: context, completion: completion)
294 | .onDisappear { [weak state] in
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:57:24: warning: sending 'router' risks causing data races; this is an error in the Swift 6 language mode
55 |
56 | public func makeContent(_ context: Context, router: Router<NestedScreen>) -> ContentResult<Self> {
57 | let tabs = TabsView(router: router, content: root.makeContent(context, router: router), selectedIndex: 0)
| |- warning: sending 'router' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'router' to main actor-isolated initializer 'init(router:content:selectedIndex:)' risks causing data races between main actor-isolated and task-isolated uses
58 | return (tabs, tabs)
59 | }
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:57:24: warning: sending value of non-Sendable type 'Root.Content' risks causing data races; this is an error in the Swift 6 language mode
55 |
56 | public func makeContent(_ context: Context, router: Router<NestedScreen>) -> ContentResult<Self> {
57 | let tabs = TabsView(router: router, content: root.makeContent(context, router: router), selectedIndex: 0)
| |- warning: sending value of non-Sendable type 'Root.Content' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'Root.Content' to main actor-isolated initializer 'init(router:content:selectedIndex:)' risks causing races in between task-isolated and main actor-isolated uses
58 | return (tabs, tabs)
59 | }
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:225:44: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
223 | nextState.previous = state
224 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
225 | return TransitionView<T, ActionView>(
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'T' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing races in between task-isolated and main actor-isolated uses
226 | from[next: path], prevState: state, nextState: nextState,
227 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:225:44: warning: sending 'self.state' risks causing data races; this is an error in the Swift 6 language mode
223 | nextState.previous = state
224 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
225 | return TransitionView<T, ActionView>(
| |- warning: sending 'self.state' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self.state' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
226 | from[next: path], prevState: state, nextState: nextState,
227 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:225:44: warning: sending value of non-Sendable type 'TransitionState<From.NestedScreen, T.To.NestedScreen>' risks causing data races; this is an error in the Swift 6 language mode
223 | nextState.previous = state
224 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
225 | return TransitionView<T, ActionView>(
| |- warning: sending value of non-Sendable type 'TransitionState<From.NestedScreen, T.To.NestedScreen>' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'TransitionState<From.NestedScreen, T.To.NestedScreen>' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing races in between task-isolated and main actor-isolated uses
226 | from[next: path], prevState: state, nextState: nextState,
227 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:225:44: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
223 | nextState.previous = state
224 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
225 | return TransitionView<T, ActionView>(
| |- warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'context' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
226 | from[next: path], prevState: state, nextState: nextState,
227 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:225:44: warning: sending 'view' risks causing data races; this is an error in the Swift 6 language mode
223 | nextState.previous = state
224 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
225 | return TransitionView<T, ActionView>(
| |- warning: sending 'view' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'view' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
226 | from[next: path], prevState: state, nextState: nextState,
227 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:225:44: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
223 | nextState.previous = state
224 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
225 | return TransitionView<T, ActionView>(
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'completion' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
226 | from[next: path], prevState: state, nextState: nextState,
227 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:240:44: warning: sending 'transition' risks causing data races; this is an error in the Swift 6 language mode
238 | nextState.previous = state
239 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
240 | return TransitionView<T, ActionView>(
| |- warning: sending 'transition' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'transition' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
241 | transition, prevState: state, nextState: nextState,
242 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:240:44: warning: sending 'self.state' risks causing data races; this is an error in the Swift 6 language mode
238 | nextState.previous = state
239 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
240 | return TransitionView<T, ActionView>(
| |- warning: sending 'self.state' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self.state' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
241 | transition, prevState: state, nextState: nextState,
242 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:240:44: warning: sending value of non-Sendable type 'TransitionState<From.NestedScreen, T.To.NestedScreen>' risks causing data races; this is an error in the Swift 6 language mode
238 | nextState.previous = state
239 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
240 | return TransitionView<T, ActionView>(
| |- warning: sending value of non-Sendable type 'TransitionState<From.NestedScreen, T.To.NestedScreen>' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'TransitionState<From.NestedScreen, T.To.NestedScreen>' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing races in between task-isolated and main actor-isolated uses
241 | transition, prevState: state, nextState: nextState,
242 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:240:44: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
238 | nextState.previous = state
239 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
240 | return TransitionView<T, ActionView>(
| |- warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'context' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
241 | transition, prevState: state, nextState: nextState,
242 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:240:44: warning: sending 'view' risks causing data races; this is an error in the Swift 6 language mode
238 | nextState.previous = state
239 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
240 | return TransitionView<T, ActionView>(
| |- warning: sending 'view' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'view' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
241 | transition, prevState: state, nextState: nextState,
242 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:240:44: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
238 | nextState.previous = state
239 | state[child: path, T.To.NestedScreen.self] = nextState // replaced previous line
240 | return TransitionView<T, ActionView>(
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'completion' to main actor-isolated initializer 'init(_:prevState:nextState:context:actionView:completion:)' risks causing data races between main actor-isolated and task-isolated uses
241 | transition, prevState: state, nextState: nextState,
242 | context: context, actionView: view, completion: completion
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:337:17: warning: sending 'promise' risks causing data races; this is an error in the Swift 6 language mode
335 | return Future { promise in
336 | DispatchQueue.main.async {
337 | promise(.success(_state))
| |- warning: sending 'promise' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'promise' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
338 | }
339 | }.eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:337:34: warning: sending '_state' risks causing data races; this is an error in the Swift 6 language mode
335 | return Future { promise in
336 | DispatchQueue.main.async {
337 | promise(.success(_state))
| |- warning: sending '_state' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '_state' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
338 | }
339 | }.eraseToAnyPublisher()
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:388:21: warning: sending 'promise' risks causing data races; this is an error in the Swift 6 language mode
386 | return Future { promise in
387 | DispatchQueue.main.async {
388 | promise(.success(_state))
| |- warning: sending 'promise' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'promise' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
389 | }
390 | }
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:388:38: warning: sending '_state' risks causing data races; this is an error in the Swift 6 language mode
386 | return Future { promise in
387 | DispatchQueue.main.async {
388 | promise(.success(_state))
| |- warning: sending '_state' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '_state' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
389 | }
390 | }
[10/14] Compiling ScreenUI Transition.swift
[11/14] Emitting module ScreenUI
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/ScreenPath.swift:60:22: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
43 |
44 | public typealias ScreenPathResult<To> = (state: AnyScreenState, screenContent: To.NestedScreen.Content) where To: Screen
45 | public struct StartPath<T>: ScreenPath, ScreenPathPrivate, ScreenPathPrivate2 where T: Transition {
| `- note: 'T' previously declared here
46 | public typealias From = T.From
47 | public typealias To = T.To
:
58 | }
59 |
60 | public subscript<T>(next path: KeyPath<To.PathFrom, T>) -> T { transition[next: path] }
| `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
61 |
62 | public func __move(from surface: T.From.Content, completion: (() -> Void)?) -> ScreenPathResult<T.To> {
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/ScreenPath.swift:128:22: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
107 | }
108 | }
109 | public struct NextPath<Prev, T>: ScreenPath, ScreenPathPrivate, ScreenPathPrivate2
| `- note: 'T' previously declared here
110 | where Prev: ScreenPath & ScreenPathPrivate2, T: Transition, T.From == Prev.To.NestedScreen,
111 | Prev.Result == ScreenPathResult<Prev.To>
:
126 | }
127 |
128 | public subscript<T>(next path: KeyPath<To.PathFrom, T>) -> T { transition[next: path] }
| `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
129 |
130 | public func __move(from surface: Prev.From.Content, completion: (() -> Void)?) -> ScreenPathResult<T.To> {
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:321:22: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
304 | }
305 | @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
306 | public struct StartPath_SwiftUI<T>: ScreenPath, ScreenPathPrivate, ScreenPath_SwiftUI where T: SwiftUICompatibleTransition {
| `- note: 'T' previously declared here
307 | public typealias From = UnavailableContentScreen<Void>
308 | public typealias To = T.To
:
319 | }
320 |
321 | public subscript<T>(next path: KeyPath<To.PathFrom, T>) -> T { transition[next: path] }
| `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
322 | public func index(of keyPath: PartialKeyPath<To.PathFrom>) -> Int { transition.index(of: keyPath) }
323 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { transition.keyPath(at: index) }
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/SwiftUI.swift:370:22: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
350 | }
351 | @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
352 | public struct NextPath_SwiftUI<Prev, T>: ScreenPath, ScreenPathPrivate, ScreenPath_SwiftUI
| `- note: 'T' previously declared here
353 | where Prev: ScreenPath & ScreenPath_SwiftUI, T: SwiftUICompatibleTransition, Prev.To.NestedScreen == T.From
354 | {
:
368 | }
369 |
370 | public subscript<T>(next path: KeyPath<To.PathFrom, T>) -> T { transition[next: path] }
| `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
371 | public func index(of keyPath: PartialKeyPath<To.PathFrom>) -> Int { transition.index(of: keyPath) }
372 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { transition.keyPath(at: index) }
[12/14] Compiling ScreenUI AppKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:43:26: warning: call to main actor-isolated initializer 'init(contentRect:styleMask:backing:defer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
40 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
41 |
42 | public func makeContent(_ context: Root.Context, router: Router<Root.NestedScreen>) -> ContentResult<Win.AppKit<Root>> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
43 | let window = NSWindow(contentRect: rect, styleMask: styleMask, backing: backingStoreType, defer: isDefer)
| `- warning: call to main actor-isolated initializer 'init(contentRect:styleMask:backing:defer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
44 | let (content1, content0) = root.makeContent(context, router: router)
45 | window.contentViewController = content1
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:293:1: note: calls to initializer 'init(contentRect:styleMask:backing:defer:)' from outside of its actor context are implicitly asynchronous
291 | - (NSRect)contentRectForFrameRect:(NSRect)frameRect;
292 |
293 | - (instancetype)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)style backing:(NSBackingStoreType)backingStoreType defer:(BOOL)flag NS_DESIGNATED_INITIALIZER;
| |- note: calls to initializer 'init(contentRect:styleMask:backing:defer:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
294 | - (instancetype)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)style backing:(NSBackingStoreType)backingStoreType defer:(BOOL)flag screen:(nullable NSScreen *)screen;
295 | - (instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE; // Use initWithContentRect:. This method will throw an exception for coders that support allowsKeyedCoding, and is only available for compatibility with non keyed coding.
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:45:20: warning: main actor-isolated property 'contentViewController' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
40 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
41 |
42 | public func makeContent(_ context: Root.Context, router: Router<Root.NestedScreen>) -> ContentResult<Win.AppKit<Root>> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
43 | let window = NSWindow(contentRect: rect, styleMask: styleMask, backing: backingStoreType, defer: isDefer)
44 | let (content1, content0) = root.makeContent(context, router: router)
45 | window.contentViewController = content1
| `- warning: main actor-isolated property 'contentViewController' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
46 | return (window, content0)
47 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:651:48: note: mutation of this property is only permitted within the actor
649 | /*! The main content view controller for the window. This provides the contentView of the window. Assigning this value will remove the existing contentView and will make the contentViewController.view the main contentView for the window. The default value is nil. The contentViewController only controls the contentView, and not the title of the window. The window title can easily be bound to the contentViewController with the following: [window bind:NSTitleBinding toObject:contentViewController withKeyPath:@"title" options:nil]. Setting the contentViewController will cause the window to resize based on the current size of the contentViewController. Autolayout should be used to restrict the size of the window. The value of the contentViewController is encoded in the NIB. Directly assigning a contentView will clear out the contentViewController.
650 | */
651 | @property (nullable, strong) NSViewController *contentViewController API_AVAILABLE(macos(10.10));
| `- note: mutation of this property is only permitted within the actor
652 |
653 | /*! Convenience method for creating an autoreleased titled window with the given contentViewController. A basic NSWindow with the following attributes is made: titled, closable, resizable, miniaturizable. The window's title is automatically bound to the contentViewController's title. The size of the window can easily be controlled by utilizing autolayout and applying size constraints to the view (or its subviews). The window has isReleasedWhenClosed set to NO, and it must be explicitly retained to keep the window instance alive. To have it automatically be freed when it is closed, do the following: [window retain] and [window setReleasedWhenClosed:YES].
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:49:40: warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
46 | return (window, content0)
47 | }
48 | public func updateContent(_ content: Content, with context: Context) {
| `- note: add '@MainActor' to make instance method 'updateContent(_:with:)' part of global actor 'MainActor'
49 | root.updateContent(content.contentViewController as! Root.Content, with: context)
| `- warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
50 | }
51 | public func updateNestedContent(_ content: Root.NestedScreen.Content, with context: Root.Context) {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:651:48: note: property declared here
649 | /*! The main content view controller for the window. This provides the contentView of the window. Assigning this value will remove the existing contentView and will make the contentViewController.view the main contentView for the window. The default value is nil. The contentViewController only controls the contentView, and not the title of the window. The window title can easily be bound to the contentViewController with the following: [window bind:NSTitleBinding toObject:contentViewController withKeyPath:@"title" options:nil]. Setting the contentViewController will cause the window to resize based on the current size of the contentViewController. Autolayout should be used to restrict the size of the window. The value of the contentViewController is encoded in the NIB. Directly assigning a contentView will clear out the contentViewController.
650 | */
651 | @property (nullable, strong) NSViewController *contentViewController API_AVAILABLE(macos(10.10));
| `- note: property declared here
652 |
653 | /*! Convenience method for creating an autoreleased titled window with the given contentViewController. A basic NSWindow with the following attributes is made: titled, closable, resizable, miniaturizable. The window's title is automatically bound to the contentViewController's title. The size of the window can easily be controlled by utilizing autolayout and applying size constraints to the view (or its subviews). The window has isReleasedWhenClosed set to NO, and it must be explicitly retained to keep the window instance alive. To have it automatically be freed when it is closed, do the following: [window retain] and [window setReleasedWhenClosed:YES].
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:69:36: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
67 |
68 | public func makeContent(_ context: Context, router: Router<NestedScreen>) -> ContentResult<Self> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
69 | let tabBarController = NSTabViewController()
| `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
70 | let c1 = root.makeContent(context, router: router)
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
21 | @interface NSResponder : NSObject <NSCoding>
22 |
23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
| |- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSViewController'
24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
25 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:71:30: warning: main actor-isolated property 'tabViewItems' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
66 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
67 |
68 | public func makeContent(_ context: Context, router: Router<NestedScreen>) -> ContentResult<Self> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
69 | let tabBarController = NSTabViewController()
70 | let c1 = root.makeContent(context, router: router)
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
| `- warning: main actor-isolated property 'tabViewItems' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
72 | let observation = tabBarController.observe(\.selectedTabViewItemIndex, changeHandler: { (tbc, ch) in
73 | guard let state = router.state.childStates[router.keyPath(at: tbc.selectedTabViewItemIndex)] else { return }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:54:53: note: mutation of this property is only permitted within the actor
52 |
53 | /// The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.
54 | @property (copy) NSArray<__kindof NSTabViewItem *> *tabViewItems;
| `- note: mutation of this property is only permitted within the actor
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:72:58: warning: cannot form key path to main actor-isolated property 'selectedTabViewItemIndex'; this is an error in the Swift 6 language mode
70 | let c1 = root.makeContent(context, router: router)
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
72 | let observation = tabBarController.observe(\.selectedTabViewItemIndex, changeHandler: { (tbc, ch) in
| `- warning: cannot form key path to main actor-isolated property 'selectedTabViewItemIndex'; this is an error in the Swift 6 language mode
73 | guard let state = router.state.childStates[router.keyPath(at: tbc.selectedTabViewItemIndex)] else { return }
74 | router.state.next = state
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:73:35: warning: capture of 'router' with non-sendable type 'Router<Tab.AppKit<Root>.NestedScreen>' (aka 'Router<Tab.AppKit<Root>>') in a '@Sendable' closure
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
72 | let observation = tabBarController.observe(\.selectedTabViewItemIndex, changeHandler: { (tbc, ch) in
73 | guard let state = router.state.childStates[router.keyPath(at: tbc.selectedTabViewItemIndex)] else { return }
| `- warning: capture of 'router' with non-sendable type 'Router<Tab.AppKit<Root>.NestedScreen>' (aka 'Router<Tab.AppKit<Root>>') in a '@Sendable' closure
74 | router.state.next = state
75 | })
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/Screen.swift:6:15: note: consider making generic struct 'Router' conform to the 'Sendable' protocol
4 | #endif
5 |
6 | public struct Router<From>: PathProvider where From: ContentScreen {
| `- note: consider making generic struct 'Router' conform to the 'Sendable' protocol
7 | let from: _PathFrom<From.PathFrom>
8 | let state: ContentScreenState<From.NestedScreen>
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:73:83: warning: main actor-isolated property 'selectedTabViewItemIndex' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
72 | let observation = tabBarController.observe(\.selectedTabViewItemIndex, changeHandler: { (tbc, ch) in
73 | guard let state = router.state.childStates[router.keyPath(at: tbc.selectedTabViewItemIndex)] else { return }
| `- warning: main actor-isolated property 'selectedTabViewItemIndex' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
74 | router.state.next = state
75 | })
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:57:21: note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
57 | @property NSInteger selectedTabViewItemIndex;
| `- note: property declared here
58 |
59 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:80:40: warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
77 | return (tabBarController, tabBarController)
78 | }
79 | public func updateContent(_ content: Content, with context: Context) {
| `- note: add '@MainActor' to make instance method 'updateContent(_:with:)' part of global actor 'MainActor'
80 | root.updateContent(content.tabViewItems.compactMap(\.viewController), with: context)
| `- warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
81 | }
82 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:54:53: note: property declared here
52 |
53 | /// The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.
54 | @property (copy) NSArray<__kindof NSTabViewItem *> *tabViewItems;
| `- note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:95:20: warning: main actor-isolated property 'selectedTabViewItemIndex' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
92 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
93 |
94 | public func move(from screen: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Void, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
95 | screen.selectedTabViewItemIndex = index
| `- warning: main actor-isolated property 'selectedTabViewItemIndex' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
96 | let c1 = screen.tabViewItems[index].viewController as! Too.Content
97 | let c0 = Too.nestedContent(from: c1)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:57:21: note: mutation of this property is only permitted within the actor
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
57 | @property NSInteger selectedTabViewItemIndex;
| `- note: mutation of this property is only permitted within the actor
58 |
59 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:96:29: warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
92 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
93 |
94 | public func move(from screen: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Void, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
95 | screen.selectedTabViewItemIndex = index
96 | let c1 = screen.tabViewItems[index].viewController as! Too.Content
| `- warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
97 | let c0 = Too.nestedContent(from: c1)
98 | return (state[child: path, Too.self]!, (c1, c0))
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:54:53: note: property declared here
52 |
53 | /// The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.
54 | @property (copy) NSArray<__kindof NSTabViewItem *> *tabViewItems;
| `- note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:102:31: warning: main actor-isolated property 'selectedTabViewItemIndex' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
99 | }
100 |
101 | public func hierarchyTest(from fromContent: From.Content, to toContent: Too.NestedScreen.Content) -> Bool {
| `- note: add '@MainActor' to make instance method 'hierarchyTest(from:to:)' part of global actor 'MainActor'
102 | guard fromContent.selectedTabViewItemIndex == index else { return false }
| `- warning: main actor-isolated property 'selectedTabViewItemIndex' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
103 | guard fromContent.tabViewItems[index].viewController is Too.Content else { return false }
104 | return true
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:57:21: note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
57 | @property NSInteger selectedTabViewItemIndex;
| `- note: property declared here
58 |
59 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:103:31: warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
99 | }
100 |
101 | public func hierarchyTest(from fromContent: From.Content, to toContent: Too.NestedScreen.Content) -> Bool {
| `- note: add '@MainActor' to make instance method 'hierarchyTest(from:to:)' part of global actor 'MainActor'
102 | guard fromContent.selectedTabViewItemIndex == index else { return false }
103 | guard fromContent.tabViewItems[index].viewController is Too.Content else { return false }
| `- warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
104 | return true
105 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:54:53: note: property declared here
52 |
53 | /// The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.
54 | @property (copy) NSArray<__kindof NSTabViewItem *> *tabViewItems;
| `- note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:151:34: warning: call to main actor-isolated instance method 'presentAsModalWindow' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
140 |
141 | public func move(from surface: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Too.Context, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
142 | let nextState = TransitionState<From, To>()
143 | nextState.back = .some(Presentation.Dismiss.AppKit(animated: animated))
:
149 | }
150 | switch style {
151 | case .modal: surface.presentAsModalWindow(content1)
| `- warning: call to main actor-isolated instance method 'presentAsModalWindow' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
152 | case .sheet: surface.presentAsSheet(content1)
153 | case .popover(let rect, let viewPath, let edge, let behavior):
AppKit.NSViewController.presentAsModalWindow:3:24: note: calls to instance method 'presentAsModalWindow' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @MainActor open func presentAsModalWindow(_ viewController: NSViewController)}
| |- note: calls to instance method 'presentAsModalWindow' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:152:34: warning: call to main actor-isolated instance method 'presentAsSheet' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
140 |
141 | public func move(from surface: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Too.Context, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
142 | let nextState = TransitionState<From, To>()
143 | nextState.back = .some(Presentation.Dismiss.AppKit(animated: animated))
:
150 | switch style {
151 | case .modal: surface.presentAsModalWindow(content1)
152 | case .sheet: surface.presentAsSheet(content1)
| `- warning: call to main actor-isolated instance method 'presentAsSheet' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
153 | case .popover(let rect, let viewPath, let edge, let behavior):
154 | surface.present(content1, asPopoverRelativeTo: rect, of: surface[keyPath: viewPath] as! NSView, preferredEdge: edge, behavior: behavior)
AppKit.NSViewController.presentAsSheet:3:24: note: calls to instance method 'presentAsSheet' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @MainActor open func presentAsSheet(_ viewController: NSViewController)}
| |- note: calls to instance method 'presentAsSheet' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:154:25: warning: call to main actor-isolated instance method 'present(_:asPopoverRelativeTo:of:preferredEdge:behavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
140 |
141 | public func move(from surface: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Too.Context, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
142 | let nextState = TransitionState<From, To>()
143 | nextState.back = .some(Presentation.Dismiss.AppKit(animated: animated))
:
152 | case .sheet: surface.presentAsSheet(content1)
153 | case .popover(let rect, let viewPath, let edge, let behavior):
154 | surface.present(content1, asPopoverRelativeTo: rect, of: surface[keyPath: viewPath] as! NSView, preferredEdge: edge, behavior: behavior)
| `- warning: call to main actor-isolated instance method 'present(_:asPopoverRelativeTo:of:preferredEdge:behavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
155 | case .custom(let animator): surface.present(content1, animator: animator)
156 | }
AppKit.NSViewController.present:3:24: note: calls to instance method 'present(_:asPopoverRelativeTo:of:preferredEdge:behavior:)' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @MainActor open func present(_ viewController: NSViewController, asPopoverRelativeTo positioningRect: NSRect, of positioningView: NSView, preferredEdge: NSRectEdge, behavior: NSPopover.Behavior)}
| |- note: calls to instance method 'present(_:asPopoverRelativeTo:of:preferredEdge:behavior:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:155:49: warning: call to main actor-isolated instance method 'present(_:animator:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
140 |
141 | public func move(from surface: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Too.Context, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
142 | let nextState = TransitionState<From, To>()
143 | nextState.back = .some(Presentation.Dismiss.AppKit(animated: animated))
:
153 | case .popover(let rect, let viewPath, let edge, let behavior):
154 | surface.present(content1, asPopoverRelativeTo: rect, of: surface[keyPath: viewPath] as! NSView, preferredEdge: edge, behavior: behavior)
155 | case .custom(let animator): surface.present(content1, animator: animator)
| `- warning: call to main actor-isolated instance method 'present(_:animator:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
156 | }
157 | CATransaction.commit()
AppKit.NSViewController.present:3:24: note: calls to instance method 'present(_:animator:)' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @MainActor open func present(_ viewController: NSViewController, animator: any NSViewControllerPresentationAnimator)}
| |- note: calls to instance method 'present(_:animator:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:162:39: warning: main actor-isolated property 'presentingViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
159 | }
160 |
161 | public func hierarchyTest(from fromContent: From.Content, to toContent: Too.NestedScreen.Content) -> Bool {
| `- note: add '@MainActor' to make instance method 'hierarchyTest(from:to:)' part of global actor 'MainActor'
162 | fromContent === toContent.presentingViewController
| `- warning: main actor-isolated property 'presentingViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
163 | }
164 | public func updateContent(_ content: Too.NestedScreen.Content, context: Context) {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSViewController.h:164:58: note: property declared here
162 | /* The view controller that presented this view controller (or its farthest ancestor). In other words, 'presentingViewController' is the one that displayed 'self' to screen.
163 | */
164 | @property (nullable, readonly, assign) NSViewController *presentingViewController API_AVAILABLE(macos(10.10));
| `- note: property declared here
165 |
166 | @end
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:180:21: warning: call to main actor-isolated instance method 'dismiss' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
172 | let animated: Bool
173 |
174 | public func move(from content: From.Content, completion: (() -> Void)?) {
| `- note: add '@MainActor' to make instance method 'move(from:completion:)' part of global actor 'MainActor'
175 | CATransaction.begin()
176 | CATransaction.setCompletionBlock(completion)
:
178 | CATransaction.setAnimationDuration(0)
179 | }
180 | content.dismiss(nil)
| `- warning: call to main actor-isolated instance method 'dismiss' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
181 | CATransaction.commit()
182 | }
AppKit.NSViewController.dismiss:3:34: note: calls to instance method 'dismiss' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @IBAction @MainActor open func dismiss(_ sender: Any?)}
| |- note: calls to instance method 'dismiss' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:155:49: warning: sending 'animator' risks causing data races; this is an error in the Swift 6 language mode
153 | case .popover(let rect, let viewPath, let edge, let behavior):
154 | surface.present(content1, asPopoverRelativeTo: rect, of: surface[keyPath: viewPath] as! NSView, preferredEdge: edge, behavior: behavior)
155 | case .custom(let animator): surface.present(content1, animator: animator)
| |- warning: sending 'animator' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'animator' to main actor-isolated instance method 'present(_:animator:)' risks causing data races between main actor-isolated and task-isolated uses
156 | }
157 | CATransaction.commit()
[13/14] Compiling ScreenUI ContentBuilders.swift
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:43:26: warning: call to main actor-isolated initializer 'init(contentRect:styleMask:backing:defer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
40 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
41 |
42 | public func makeContent(_ context: Root.Context, router: Router<Root.NestedScreen>) -> ContentResult<Win.AppKit<Root>> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
43 | let window = NSWindow(contentRect: rect, styleMask: styleMask, backing: backingStoreType, defer: isDefer)
| `- warning: call to main actor-isolated initializer 'init(contentRect:styleMask:backing:defer:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
44 | let (content1, content0) = root.makeContent(context, router: router)
45 | window.contentViewController = content1
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:293:1: note: calls to initializer 'init(contentRect:styleMask:backing:defer:)' from outside of its actor context are implicitly asynchronous
291 | - (NSRect)contentRectForFrameRect:(NSRect)frameRect;
292 |
293 | - (instancetype)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)style backing:(NSBackingStoreType)backingStoreType defer:(BOOL)flag NS_DESIGNATED_INITIALIZER;
| |- note: calls to initializer 'init(contentRect:styleMask:backing:defer:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
294 | - (instancetype)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)style backing:(NSBackingStoreType)backingStoreType defer:(BOOL)flag screen:(nullable NSScreen *)screen;
295 | - (instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE; // Use initWithContentRect:. This method will throw an exception for coders that support allowsKeyedCoding, and is only available for compatibility with non keyed coding.
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:45:20: warning: main actor-isolated property 'contentViewController' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
40 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
41 |
42 | public func makeContent(_ context: Root.Context, router: Router<Root.NestedScreen>) -> ContentResult<Win.AppKit<Root>> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
43 | let window = NSWindow(contentRect: rect, styleMask: styleMask, backing: backingStoreType, defer: isDefer)
44 | let (content1, content0) = root.makeContent(context, router: router)
45 | window.contentViewController = content1
| `- warning: main actor-isolated property 'contentViewController' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
46 | return (window, content0)
47 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:651:48: note: mutation of this property is only permitted within the actor
649 | /*! The main content view controller for the window. This provides the contentView of the window. Assigning this value will remove the existing contentView and will make the contentViewController.view the main contentView for the window. The default value is nil. The contentViewController only controls the contentView, and not the title of the window. The window title can easily be bound to the contentViewController with the following: [window bind:NSTitleBinding toObject:contentViewController withKeyPath:@"title" options:nil]. Setting the contentViewController will cause the window to resize based on the current size of the contentViewController. Autolayout should be used to restrict the size of the window. The value of the contentViewController is encoded in the NIB. Directly assigning a contentView will clear out the contentViewController.
650 | */
651 | @property (nullable, strong) NSViewController *contentViewController API_AVAILABLE(macos(10.10));
| `- note: mutation of this property is only permitted within the actor
652 |
653 | /*! Convenience method for creating an autoreleased titled window with the given contentViewController. A basic NSWindow with the following attributes is made: titled, closable, resizable, miniaturizable. The window's title is automatically bound to the contentViewController's title. The size of the window can easily be controlled by utilizing autolayout and applying size constraints to the view (or its subviews). The window has isReleasedWhenClosed set to NO, and it must be explicitly retained to keep the window instance alive. To have it automatically be freed when it is closed, do the following: [window retain] and [window setReleasedWhenClosed:YES].
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:49:40: warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
46 | return (window, content0)
47 | }
48 | public func updateContent(_ content: Content, with context: Context) {
| `- note: add '@MainActor' to make instance method 'updateContent(_:with:)' part of global actor 'MainActor'
49 | root.updateContent(content.contentViewController as! Root.Content, with: context)
| `- warning: main actor-isolated property 'contentViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
50 | }
51 | public func updateNestedContent(_ content: Root.NestedScreen.Content, with context: Root.Context) {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWindow.h:651:48: note: property declared here
649 | /*! The main content view controller for the window. This provides the contentView of the window. Assigning this value will remove the existing contentView and will make the contentViewController.view the main contentView for the window. The default value is nil. The contentViewController only controls the contentView, and not the title of the window. The window title can easily be bound to the contentViewController with the following: [window bind:NSTitleBinding toObject:contentViewController withKeyPath:@"title" options:nil]. Setting the contentViewController will cause the window to resize based on the current size of the contentViewController. Autolayout should be used to restrict the size of the window. The value of the contentViewController is encoded in the NIB. Directly assigning a contentView will clear out the contentViewController.
650 | */
651 | @property (nullable, strong) NSViewController *contentViewController API_AVAILABLE(macos(10.10));
| `- note: property declared here
652 |
653 | /*! Convenience method for creating an autoreleased titled window with the given contentViewController. A basic NSWindow with the following attributes is made: titled, closable, resizable, miniaturizable. The window's title is automatically bound to the contentViewController's title. The size of the window can easily be controlled by utilizing autolayout and applying size constraints to the view (or its subviews). The window has isReleasedWhenClosed set to NO, and it must be explicitly retained to keep the window instance alive. To have it automatically be freed when it is closed, do the following: [window retain] and [window setReleasedWhenClosed:YES].
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:69:36: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
67 |
68 | public func makeContent(_ context: Context, router: Router<NestedScreen>) -> ContentResult<Self> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
69 | let tabBarController = NSTabViewController()
| `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
70 | let c1 = root.makeContent(context, router: router)
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
21 | @interface NSResponder : NSObject <NSCoding>
22 |
23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
| |- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSViewController'
24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
25 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:71:30: warning: main actor-isolated property 'tabViewItems' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
66 | public func keyPath(at index: Int) -> PartialKeyPath<Root.PathFrom> { root.keyPath(at: index) }
67 |
68 | public func makeContent(_ context: Context, router: Router<NestedScreen>) -> ContentResult<Self> {
| `- note: add '@MainActor' to make instance method 'makeContent(_:router:)' part of global actor 'MainActor'
69 | let tabBarController = NSTabViewController()
70 | let c1 = root.makeContent(context, router: router)
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
| `- warning: main actor-isolated property 'tabViewItems' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
72 | let observation = tabBarController.observe(\.selectedTabViewItemIndex, changeHandler: { (tbc, ch) in
73 | guard let state = router.state.childStates[router.keyPath(at: tbc.selectedTabViewItemIndex)] else { return }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:54:53: note: mutation of this property is only permitted within the actor
52 |
53 | /// The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.
54 | @property (copy) NSArray<__kindof NSTabViewItem *> *tabViewItems;
| `- note: mutation of this property is only permitted within the actor
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:72:58: warning: cannot form key path to main actor-isolated property 'selectedTabViewItemIndex'; this is an error in the Swift 6 language mode
70 | let c1 = root.makeContent(context, router: router)
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
72 | let observation = tabBarController.observe(\.selectedTabViewItemIndex, changeHandler: { (tbc, ch) in
| `- warning: cannot form key path to main actor-isolated property 'selectedTabViewItemIndex'; this is an error in the Swift 6 language mode
73 | guard let state = router.state.childStates[router.keyPath(at: tbc.selectedTabViewItemIndex)] else { return }
74 | router.state.next = state
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:73:35: warning: capture of 'router' with non-sendable type 'Router<Tab.AppKit<Root>.NestedScreen>' (aka 'Router<Tab.AppKit<Root>>') in a '@Sendable' closure
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
72 | let observation = tabBarController.observe(\.selectedTabViewItemIndex, changeHandler: { (tbc, ch) in
73 | guard let state = router.state.childStates[router.keyPath(at: tbc.selectedTabViewItemIndex)] else { return }
| `- warning: capture of 'router' with non-sendable type 'Router<Tab.AppKit<Root>.NestedScreen>' (aka 'Router<Tab.AppKit<Root>>') in a '@Sendable' closure
74 | router.state.next = state
75 | })
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/Screen.swift:6:15: note: consider making generic struct 'Router' conform to the 'Sendable' protocol
4 | #endif
5 |
6 | public struct Router<From>: PathProvider where From: ContentScreen {
| `- note: consider making generic struct 'Router' conform to the 'Sendable' protocol
7 | let from: _PathFrom<From.PathFrom>
8 | let state: ContentScreenState<From.NestedScreen>
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:73:83: warning: main actor-isolated property 'selectedTabViewItemIndex' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
71 | tabBarController.tabViewItems = c1.map(NSTabViewItem.init)
72 | let observation = tabBarController.observe(\.selectedTabViewItemIndex, changeHandler: { (tbc, ch) in
73 | guard let state = router.state.childStates[router.keyPath(at: tbc.selectedTabViewItemIndex)] else { return }
| `- warning: main actor-isolated property 'selectedTabViewItemIndex' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
74 | router.state.next = state
75 | })
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:57:21: note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
57 | @property NSInteger selectedTabViewItemIndex;
| `- note: property declared here
58 |
59 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:80:40: warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
77 | return (tabBarController, tabBarController)
78 | }
79 | public func updateContent(_ content: Content, with context: Context) {
| `- note: add '@MainActor' to make instance method 'updateContent(_:with:)' part of global actor 'MainActor'
80 | root.updateContent(content.tabViewItems.compactMap(\.viewController), with: context)
| `- warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
81 | }
82 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:54:53: note: property declared here
52 |
53 | /// The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.
54 | @property (copy) NSArray<__kindof NSTabViewItem *> *tabViewItems;
| `- note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:95:20: warning: main actor-isolated property 'selectedTabViewItemIndex' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
92 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
93 |
94 | public func move(from screen: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Void, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
95 | screen.selectedTabViewItemIndex = index
| `- warning: main actor-isolated property 'selectedTabViewItemIndex' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
96 | let c1 = screen.tabViewItems[index].viewController as! Too.Content
97 | let c0 = Too.nestedContent(from: c1)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:57:21: note: mutation of this property is only permitted within the actor
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
57 | @property NSInteger selectedTabViewItemIndex;
| `- note: mutation of this property is only permitted within the actor
58 |
59 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:96:29: warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
92 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
93 |
94 | public func move(from screen: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Void, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
95 | screen.selectedTabViewItemIndex = index
96 | let c1 = screen.tabViewItems[index].viewController as! Too.Content
| `- warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
97 | let c0 = Too.nestedContent(from: c1)
98 | return (state[child: path, Too.self]!, (c1, c0))
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:54:53: note: property declared here
52 |
53 | /// The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.
54 | @property (copy) NSArray<__kindof NSTabViewItem *> *tabViewItems;
| `- note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:102:31: warning: main actor-isolated property 'selectedTabViewItemIndex' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
99 | }
100 |
101 | public func hierarchyTest(from fromContent: From.Content, to toContent: Too.NestedScreen.Content) -> Bool {
| `- note: add '@MainActor' to make instance method 'hierarchyTest(from:to:)' part of global actor 'MainActor'
102 | guard fromContent.selectedTabViewItemIndex == index else { return false }
| `- warning: main actor-isolated property 'selectedTabViewItemIndex' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
103 | guard fromContent.tabViewItems[index].viewController is Too.Content else { return false }
104 | return true
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:57:21: note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
57 | @property NSInteger selectedTabViewItemIndex;
| `- note: property declared here
58 |
59 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:103:31: warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
99 | }
100 |
101 | public func hierarchyTest(from fromContent: From.Content, to toContent: Too.NestedScreen.Content) -> Bool {
| `- note: add '@MainActor' to make instance method 'hierarchyTest(from:to:)' part of global actor 'MainActor'
102 | guard fromContent.selectedTabViewItemIndex == index else { return false }
103 | guard fromContent.tabViewItems[index].viewController is Too.Content else { return false }
| `- warning: main actor-isolated property 'tabViewItems' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
104 | return true
105 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTabViewController.h:54:53: note: property declared here
52 |
53 | /// The array of tab view items that correspond to the current child view controllers. After a child view controller is added to the receiving TabViewController, a NSTabViewItem with the default values will be created for it. Once the child is removed, its corresponding tabViewItem will be removed from the tabViewItems array.
54 | @property (copy) NSArray<__kindof NSTabViewItem *> *tabViewItems;
| `- note: property declared here
55 |
56 | /// Read and write the current selected TabViewItem that is being shown. This value is KVC compliant and can be the target of a binding. For instance, a NSSegmentedControl's selection can be bound to this value with: \code [segmentedControl bind:NSSelectedIndexBinding toObject:tabViewController withKeyPath:@“selectedTabViewItemIndex" options:nil];
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:151:34: warning: call to main actor-isolated instance method 'presentAsModalWindow' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
140 |
141 | public func move(from surface: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Too.Context, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
142 | let nextState = TransitionState<From, To>()
143 | nextState.back = .some(Presentation.Dismiss.AppKit(animated: animated))
:
149 | }
150 | switch style {
151 | case .modal: surface.presentAsModalWindow(content1)
| `- warning: call to main actor-isolated instance method 'presentAsModalWindow' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
152 | case .sheet: surface.presentAsSheet(content1)
153 | case .popover(let rect, let viewPath, let edge, let behavior):
AppKit.NSViewController.presentAsModalWindow:3:24: note: calls to instance method 'presentAsModalWindow' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @MainActor open func presentAsModalWindow(_ viewController: NSViewController)}
| |- note: calls to instance method 'presentAsModalWindow' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:152:34: warning: call to main actor-isolated instance method 'presentAsSheet' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
140 |
141 | public func move(from surface: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Too.Context, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
142 | let nextState = TransitionState<From, To>()
143 | nextState.back = .some(Presentation.Dismiss.AppKit(animated: animated))
:
150 | switch style {
151 | case .modal: surface.presentAsModalWindow(content1)
152 | case .sheet: surface.presentAsSheet(content1)
| `- warning: call to main actor-isolated instance method 'presentAsSheet' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
153 | case .popover(let rect, let viewPath, let edge, let behavior):
154 | surface.present(content1, asPopoverRelativeTo: rect, of: surface[keyPath: viewPath] as! NSView, preferredEdge: edge, behavior: behavior)
AppKit.NSViewController.presentAsSheet:3:24: note: calls to instance method 'presentAsSheet' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @MainActor open func presentAsSheet(_ viewController: NSViewController)}
| |- note: calls to instance method 'presentAsSheet' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:154:25: warning: call to main actor-isolated instance method 'present(_:asPopoverRelativeTo:of:preferredEdge:behavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
140 |
141 | public func move(from surface: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Too.Context, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
142 | let nextState = TransitionState<From, To>()
143 | nextState.back = .some(Presentation.Dismiss.AppKit(animated: animated))
:
152 | case .sheet: surface.presentAsSheet(content1)
153 | case .popover(let rect, let viewPath, let edge, let behavior):
154 | surface.present(content1, asPopoverRelativeTo: rect, of: surface[keyPath: viewPath] as! NSView, preferredEdge: edge, behavior: behavior)
| `- warning: call to main actor-isolated instance method 'present(_:asPopoverRelativeTo:of:preferredEdge:behavior:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
155 | case .custom(let animator): surface.present(content1, animator: animator)
156 | }
AppKit.NSViewController.present:3:24: note: calls to instance method 'present(_:asPopoverRelativeTo:of:preferredEdge:behavior:)' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @MainActor open func present(_ viewController: NSViewController, asPopoverRelativeTo positioningRect: NSRect, of positioningView: NSView, preferredEdge: NSRectEdge, behavior: NSPopover.Behavior)}
| |- note: calls to instance method 'present(_:asPopoverRelativeTo:of:preferredEdge:behavior:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:155:49: warning: call to main actor-isolated instance method 'present(_:animator:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
139 | public func keyPath(at index: Int) -> PartialKeyPath<To.PathFrom> { to.keyPath(at: index) }
140 |
141 | public func move(from surface: From.Content, state: ContentScreenState<From.NestedScreen>, with context: Too.Context, completion: (() -> Void)?) -> TransitionResult<From, To> {
| `- note: add '@MainActor' to make instance method 'move(from:state:with:completion:)' part of global actor 'MainActor'
142 | let nextState = TransitionState<From, To>()
143 | nextState.back = .some(Presentation.Dismiss.AppKit(animated: animated))
:
153 | case .popover(let rect, let viewPath, let edge, let behavior):
154 | surface.present(content1, asPopoverRelativeTo: rect, of: surface[keyPath: viewPath] as! NSView, preferredEdge: edge, behavior: behavior)
155 | case .custom(let animator): surface.present(content1, animator: animator)
| `- warning: call to main actor-isolated instance method 'present(_:animator:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
156 | }
157 | CATransaction.commit()
AppKit.NSViewController.present:3:24: note: calls to instance method 'present(_:animator:)' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @MainActor open func present(_ viewController: NSViewController, animator: any NSViewControllerPresentationAnimator)}
| |- note: calls to instance method 'present(_:animator:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:162:39: warning: main actor-isolated property 'presentingViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
159 | }
160 |
161 | public func hierarchyTest(from fromContent: From.Content, to toContent: Too.NestedScreen.Content) -> Bool {
| `- note: add '@MainActor' to make instance method 'hierarchyTest(from:to:)' part of global actor 'MainActor'
162 | fromContent === toContent.presentingViewController
| `- warning: main actor-isolated property 'presentingViewController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
163 | }
164 | public func updateContent(_ content: Too.NestedScreen.Content, context: Context) {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSViewController.h:164:58: note: property declared here
162 | /* The view controller that presented this view controller (or its farthest ancestor). In other words, 'presentingViewController' is the one that displayed 'self' to screen.
163 | */
164 | @property (nullable, readonly, assign) NSViewController *presentingViewController API_AVAILABLE(macos(10.10));
| `- note: property declared here
165 |
166 | @end
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:180:21: warning: call to main actor-isolated instance method 'dismiss' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
172 | let animated: Bool
173 |
174 | public func move(from content: From.Content, completion: (() -> Void)?) {
| `- note: add '@MainActor' to make instance method 'move(from:completion:)' part of global actor 'MainActor'
175 | CATransaction.begin()
176 | CATransaction.setCompletionBlock(completion)
:
178 | CATransaction.setAnimationDuration(0)
179 | }
180 | content.dismiss(nil)
| `- warning: call to main actor-isolated instance method 'dismiss' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
181 | CATransaction.commit()
182 | }
AppKit.NSViewController.dismiss:3:34: note: calls to instance method 'dismiss' from outside of its actor context are implicitly asynchronous
1 | class NSViewController {
2 | @available(macOS 10.10, *)
3 | @IBAction @MainActor open func dismiss(_ sender: Any?)}
| |- note: calls to instance method 'dismiss' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/ScreenUI/AppKit.swift:155:49: warning: sending 'animator' risks causing data races; this is an error in the Swift 6 language mode
153 | case .popover(let rect, let viewPath, let edge, let behavior):
154 | surface.present(content1, asPopoverRelativeTo: rect, of: surface[keyPath: viewPath] as! NSView, preferredEdge: edge, behavior: behavior)
155 | case .custom(let animator): surface.present(content1, animator: animator)
| |- warning: sending 'animator' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'animator' to main actor-isolated instance method 'present(_:animator:)' risks causing data races between main actor-isolated and task-isolated uses
156 | }
157 | CATransaction.commit()
[14/14] Compiling ScreenUI UIKit.swift
Build complete! (8.84s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "ScreenUI",
"name" : "ScreenUI",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "ScreenUI",
"targets" : [
"ScreenUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ScreenUITests",
"module_type" : "SwiftTarget",
"name" : "ScreenUITests",
"path" : "Tests/ScreenUITests",
"sources" : [
"ScreenUITests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"ScreenUI"
],
"type" : "test"
},
{
"c99name" : "ScreenUI",
"module_type" : "SwiftTarget",
"name" : "ScreenUI",
"path" : "Sources/ScreenUI",
"product_memberships" : [
"ScreenUI"
],
"sources" : [
"AppKit.swift",
"ContentBuilders.swift",
"Crossplatform.swift",
"PathProvider.swift",
"Screen.swift",
"ScreenBuilder.swift",
"ScreenPath.swift",
"ScreenState.swift",
"SwiftUI.swift",
"Transition.swift",
"UIKit.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Done.