Build Information
Successful build of SpanGrid, reference 0.0.4 (a10ca3
), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 15:48:14 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/sherlouk/SpanGrid.git
Reference: 0.0.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/sherlouk/SpanGrid
* tag 0.0.4 -> FETCH_HEAD
HEAD is now at a10ca3c Improve Project Compatibility (#7)
Cloned https://github.com/sherlouk/SpanGrid.git
Revision (git rev-parse @):
a10ca3c4e3bf3697523bf4fd0c0854d3923dcbcd
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/sherlouk/SpanGrid.git at 0.0.4
Fetching https://github.com/pointfreeco/swift-snapshot-testing.git from cache
Fetching https://github.com/apple/swift-log.git from cache
Fetched https://github.com/pointfreeco/swift-snapshot-testing.git from cache (0.63s)
Fetched https://github.com/apple/swift-log.git from cache (0.63s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.4.2 (1.21s)
Computing version for https://github.com/pointfreeco/swift-snapshot-testing.git
Computed https://github.com/pointfreeco/swift-snapshot-testing.git at 1.9.0 (0.58s)
Creating working copy for https://github.com/pointfreeco/swift-snapshot-testing.git
Working copy of https://github.com/pointfreeco/swift-snapshot-testing.git resolved at 1.9.0
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.4.2
========================================
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": "spangrid",
"name": "SpanGrid",
"url": "https://github.com/sherlouk/SpanGrid.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SpanGrid",
"dependencies": [
{
"identity": "swift-log",
"name": "swift-log",
"url": "https://github.com/apple/swift-log.git",
"version": "1.6.3",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/sherlouk/SpanGrid.git
[1/698] Fetching spangrid
Fetched https://github.com/sherlouk/SpanGrid.git from cache (1.29s)
Fetching https://github.com/apple/swift-log.git from cache
Fetched https://github.com/apple/swift-log.git from cache (0.53s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.3 (1.01s)
Creating working copy for https://github.com/sherlouk/SpanGrid.git
Working copy of https://github.com/sherlouk/SpanGrid.git resolved at 0.0.4 (a10ca3c)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.3
warning: '.resolve-product-dependencies': dependency 'spangrid' is not used by any target
Found 1 product dependencies
- swift-log
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/sherlouk/SpanGrid.git
https://github.com/sherlouk/SpanGrid.git
{
"dependencies" : [
{
"identity" : "swift-snapshot-testing",
"requirement" : {
"range" : [
{
"lower_bound" : "1.9.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/pointfreeco/swift-snapshot-testing.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
}
],
"manifest_display_name" : "SpanGrid",
"name" : "SpanGrid",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "tvos",
"version" : "14.0"
},
{
"name" : "macos",
"version" : "11.0"
},
{
"name" : "watchos",
"version" : "7.0"
}
],
"products" : [
{
"name" : "SpanGrid",
"targets" : [
"SpanGrid"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SpanGridTests",
"module_type" : "SwiftTarget",
"name" : "SpanGridTests",
"path" : "Tests",
"product_dependencies" : [
"SnapshotTesting"
],
"sources" : [
"SpanGridDynamicColumnSizeStrategyTests.swift",
"SpanGridExampleImageGenerator.swift",
"SpanGridKeyboardNavigationTests.swift",
"SpanGridPerformanceTests.swift",
"SpanGridRowSizeStrategyTests.swift",
"SpanGridSpanTests.swift",
"SpanGridWidthListenerTests.swift"
],
"target_dependencies" : [
"SpanGrid"
],
"type" : "test"
},
{
"c99name" : "SpanGrid",
"module_type" : "SwiftTarget",
"name" : "SpanGrid",
"path" : "Sources",
"product_dependencies" : [
"Logging"
],
"product_memberships" : [
"SpanGrid"
],
"sources" : [
"Business Logic/SpanGridDynamicColumnSizeStrategy.swift",
"Business Logic/SpanGridKeyboardNavigation.swift",
"Business Logic/SpanGridRowHeightStorage.swift",
"Business Logic/SpanGridSpanIndexCalculator.swift",
"Models/SpanGridCellMetadata.swift",
"Models/SpanGridColumnSizeStrategy.swift",
"Models/SpanGridData.swift",
"Models/SpanGridKeyboardNavigationOptions.swift",
"Models/SpanGridLayoutSize.swift",
"Models/SpanGridRowSizeStrategy.swift",
"Models/SpanGridTraitCollection.swift",
"SpanGridWidthListener/SpanGridWidthListener+iOS+tvOS.swift",
"SpanGridWidthListener/SpanGridWidthListener+macOS.swift",
"SpanGridWidthListener/SpanGridWidthListener+watchOS.swift",
"SpanGridWidthListener/SpanGridWidthListener.swift",
"Views/SpanGrid.swift",
"Views/SpanGridDetermineRowHeight.swift",
"Views/SpanGridKeyboardNavigationShortcuts.swift",
"Views/SpanGridSpanView.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/3] Write sources
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/7] Compiling Logging Locks.swift
[5/7] Compiling Logging Logging.swift
[6/7] Compiling Logging LogHandler.swift
[7/7] Emitting module Logging
[8/26] Compiling SpanGrid SpanGridDetermineRowHeight.swift
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGridDetermineRowHeight.swift:12:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | internal struct SpanGridRowPreferenceKey: PreferenceKey {
12 | static var defaultValue: [Int: CGFloat] = [:]
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 |
14 | static func reduce(value: inout [Int: CGFloat], nextValue: () -> [Int: CGFloat]) {
[9/26] Compiling SpanGrid SpanGridKeyboardNavigationShortcuts.swift
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGridDetermineRowHeight.swift:12:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | internal struct SpanGridRowPreferenceKey: PreferenceKey {
12 | static var defaultValue: [Int: CGFloat] = [:]
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 |
14 | static func reduce(value: inout [Int: CGFloat], nextValue: () -> [Int: CGFloat]) {
[10/26] Compiling SpanGrid SpanGridWidthListener+macOS.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:13:13: warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
10 | #if os(OSX)
11 | internal struct SpanGridWidthListener: NSViewControllerRepresentable {
12 | internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
| `- note: add '@preconcurrency' to the 'SpanGridWidthListenerViewController' conformance to defer isolation checking to run time
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
| `- warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
14 | var lastKnownSize: CGSize?
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:13:9: note: requirement 'logger' declared here
11 |
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 | var logger: Logger { get }
| `- note: requirement 'logger' declared here
14 | var lastKnownSize: CGSize? { get set }
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:14:13: warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
12 | internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 | var lastKnownSize: CGSize?
| `- warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
16 |
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:14:9: note: requirement 'lastKnownSize' declared here
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 | var logger: Logger { get }
14 | var lastKnownSize: CGSize? { get set }
| `- note: requirement 'lastKnownSize' declared here
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:15:13: warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 | var lastKnownSize: CGSize?
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
| `- warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
16 |
17 | override func loadView() {
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:15:9: note: requirement 'dynamicConfiguration' declared here
13 | var logger: Logger { get }
14 | var lastKnownSize: CGSize? { get set }
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
| `- note: requirement 'dynamicConfiguration' declared here
16 | }
17 |
[11/26] Compiling SpanGrid SpanGridWidthListener+watchOS.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:13:13: warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
10 | #if os(OSX)
11 | internal struct SpanGridWidthListener: NSViewControllerRepresentable {
12 | internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
| `- note: add '@preconcurrency' to the 'SpanGridWidthListenerViewController' conformance to defer isolation checking to run time
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
| `- warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
14 | var lastKnownSize: CGSize?
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:13:9: note: requirement 'logger' declared here
11 |
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 | var logger: Logger { get }
| `- note: requirement 'logger' declared here
14 | var lastKnownSize: CGSize? { get set }
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:14:13: warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
12 | internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 | var lastKnownSize: CGSize?
| `- warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
16 |
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:14:9: note: requirement 'lastKnownSize' declared here
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 | var logger: Logger { get }
14 | var lastKnownSize: CGSize? { get set }
| `- note: requirement 'lastKnownSize' declared here
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:15:13: warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 | var lastKnownSize: CGSize?
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
| `- warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
16 |
17 | override func loadView() {
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:15:9: note: requirement 'dynamicConfiguration' declared here
13 | var logger: Logger { get }
14 | var lastKnownSize: CGSize? { get set }
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
| `- note: requirement 'dynamicConfiguration' declared here
16 | }
17 |
[12/27] Compiling SpanGrid SpanGridWidthListener.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:50:69: warning: call to main actor-isolated static method 'getPublisher()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
25 | }
26 |
27 | func processNewSize(_ size: CGSize) {
| `- note: add '@MainActor' to make instance method 'processNewSize' part of global actor 'MainActor'
28 | defer {
29 | // No matter how we exit this function, lastKnownSize should be updated.
:
48 | }
49 |
50 | NotificationCenter.default.post(name: SpanGridWidthListener.getPublisher().name, object: nil)
| `- warning: call to main actor-isolated static method 'getPublisher()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
51 | logger.trace("Triggered notification.", metadata: metadata)
52 | }
:
54 |
55 | extension SpanGridWidthListener {
56 | static func getPublisher() -> NotificationCenter.Publisher {
| |- note: calls to static method 'getPublisher()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'NSViewControllerRepresentable'
57 | NotificationCenter.default.publisher(for: Notification.Name(rawValue: "SpanGrid.SceneWidthChanged"))
58 | }
[13/27] Compiling SpanGrid SpanGrid.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:50:69: warning: call to main actor-isolated static method 'getPublisher()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
25 | }
26 |
27 | func processNewSize(_ size: CGSize) {
| `- note: add '@MainActor' to make instance method 'processNewSize' part of global actor 'MainActor'
28 | defer {
29 | // No matter how we exit this function, lastKnownSize should be updated.
:
48 | }
49 |
50 | NotificationCenter.default.post(name: SpanGridWidthListener.getPublisher().name, object: nil)
| `- warning: call to main actor-isolated static method 'getPublisher()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
51 | logger.trace("Triggered notification.", metadata: metadata)
52 | }
:
54 |
55 | extension SpanGridWidthListener {
56 | static func getPublisher() -> NotificationCenter.Publisher {
| |- note: calls to static method 'getPublisher()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'NSViewControllerRepresentable'
57 | NotificationCenter.default.publisher(for: Notification.Name(rawValue: "SpanGrid.SceneWidthChanged"))
58 | }
[14/27] Compiling SpanGrid SpanGridLayoutSize.swift
[15/27] Compiling SpanGrid SpanGridRowSizeStrategy.swift
[16/27] Compiling SpanGrid SpanGridCellMetadata.swift
[17/27] Compiling SpanGrid SpanGridColumnSizeStrategy.swift
[18/27] Compiling SpanGrid SpanGridData.swift
[19/27] Compiling SpanGrid SpanGridKeyboardNavigationOptions.swift
[20/27] Compiling SpanGrid SpanGridRowHeightStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:38:45: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
36 |
37 | var temporaryCache = [Int: Int]()
38 | temporaryCache.reserveCapacity(grid.data.count)
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
39 |
40 | var reverseCache = [Int: Int]()
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:42:43: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
40 | var reverseCache = [Int: Int]()
41 | // reverseCache size will always be <= grid.data.count
42 | reverseCache.reserveCapacity(grid.data.count)
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
43 |
44 | var lastPartial = 0
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:47:40: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
45 | var lastCellIndex = 0
46 |
47 | let totalSpanIndex: Int = grid.data.reduce(0) { partialResult, gridData in
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
48 | // Populate any gaps in the reverse lookup cache.
49 | // This is appropriate where the last cell had a span of more than 1.
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:65:29: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
63 | }
64 |
65 | temporaryCache[grid.data.count] = totalSpanIndex
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
66 | reverseCache[totalSpanIndex] = grid.data.count
67 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:66:45: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
64 |
65 | temporaryCache[grid.data.count] = totalSpanIndex
66 | reverseCache[totalSpanIndex] = grid.data.count
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
67 |
68 | cache = temporaryCache
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:102:21: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
81 | }
82 |
83 | func getSpanIndex(forItemWithOffset offset: Int, columnCount: Int) -> Int {
| `- note: add '@MainActor' to make instance method 'getSpanIndex(forItemWithOffset:columnCount:)' part of global actor 'MainActor'
84 | if columnCount == 1 {
85 | // Optimisation: In a single column grid there can never be a difference between item offset and span index.
:
100 | logger.warning("Cache was missed, calculating on the fly.")
101 |
102 | return grid.data.prefix(offset).reduce(0) { partialResult, gridData in
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
103 | accumulateSpanIndex(partialResult: partialResult, gridData: gridData, columnCount: columnCount)
104 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
[21/27] Compiling SpanGrid SpanGridSpanIndexCalculator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:38:45: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
36 |
37 | var temporaryCache = [Int: Int]()
38 | temporaryCache.reserveCapacity(grid.data.count)
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
39 |
40 | var reverseCache = [Int: Int]()
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:42:43: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
40 | var reverseCache = [Int: Int]()
41 | // reverseCache size will always be <= grid.data.count
42 | reverseCache.reserveCapacity(grid.data.count)
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
43 |
44 | var lastPartial = 0
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:47:40: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
45 | var lastCellIndex = 0
46 |
47 | let totalSpanIndex: Int = grid.data.reduce(0) { partialResult, gridData in
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
48 | // Populate any gaps in the reverse lookup cache.
49 | // This is appropriate where the last cell had a span of more than 1.
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:65:29: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
63 | }
64 |
65 | temporaryCache[grid.data.count] = totalSpanIndex
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
66 | reverseCache[totalSpanIndex] = grid.data.count
67 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:66:45: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
20 | var reverseLookup: [Int: Int] = [:]
21 |
22 | func precalculateSpanIndex(columnCount: Int) {
| `- note: add '@MainActor' to make instance method 'precalculateSpanIndex(columnCount:)' part of global actor 'MainActor'
23 | guard cache.isEmpty || columnCount != lastColumnCount else {
24 | return
:
64 |
65 | temporaryCache[grid.data.count] = totalSpanIndex
66 | reverseCache[totalSpanIndex] = grid.data.count
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
67 |
68 | cache = temporaryCache
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridSpanIndexCalculator.swift:102:21: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
81 | }
82 |
83 | func getSpanIndex(forItemWithOffset offset: Int, columnCount: Int) -> Int {
| `- note: add '@MainActor' to make instance method 'getSpanIndex(forItemWithOffset:columnCount:)' part of global actor 'MainActor'
84 | if columnCount == 1 {
85 | // Optimisation: In a single column grid there can never be a difference between item offset and span index.
:
100 | logger.warning("Cache was missed, calculating on the fly.")
101 |
102 | return grid.data.prefix(offset).reduce(0) { partialResult, gridData in
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
103 | accumulateSpanIndex(partialResult: partialResult, gridData: gridData, columnCount: columnCount)
104 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
[22/27] Compiling SpanGrid SpanGridDynamicColumnSizeStrategy.swift
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:23:27: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
15 | private var currentSpanIndex: Int = 0
16 |
17 | func setCurrentItem(newValue: Int) -> Bool {
| `- note: add '@MainActor' to make instance method 'setCurrentItem(newValue:)' part of global actor 'MainActor'
18 | guard let grid = grid else {
19 | logger.error("Lost grid reference, ignoring.", metadata: [ "value": .stringConvertible(newValue) ])
:
21 | }
22 |
23 | guard (0 ..< grid.data.count).contains(newValue) else {
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | logger.info("Value out of bounds, ignoring.", metadata: [ "value": .stringConvertible(newValue) ])
25 | return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:61:33: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
59 | let currentItem = strongSelf.currentItem ?? 0
60 | var mutableSpanIndex = strongSelf.currentSpanIndex
61 | let spanSize = grid.data[currentItem].data.layoutSize.spanSize(columnCount: columnCount)
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
62 |
63 | let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: currentItem, columnCount: columnCount)
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:63:42: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 | let spanSize = grid.data[currentItem].data.layoutSize.spanSize(columnCount: columnCount)
62 |
63 | let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: currentItem, columnCount: columnCount)
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
64 | let spanIndexOffset = mutableSpanIndex - originalSpanIndex
65 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:66:35: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
64 | let spanIndexOffset = mutableSpanIndex - originalSpanIndex
65 |
66 | let spanPrefix = grid.spanIndexCalculator.calculateCellPrefix(
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
67 | spanSize: spanSize,
68 | columnCount: columnCount,
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:98:38: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
96 | }
97 |
98 | guard let newItem = grid.spanIndexCalculator.reverseLookup[mutableSpanIndex] else {
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
99 | strongSelf.logger.error("Unknown span index, ignoring. Input: '\(mutableSpanIndex)'.")
100 | return
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:110:31: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
112 | return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:115:27: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
:
113 | }
114 |
115 | guard (0 ..< grid.data.count).contains(item) else {
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
116 | logger.trace("Span index places item out of bounds, ignoring. Input: '\(spanIndex)=\(item)'.")
117 | return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:120:29: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
:
118 | }
119 |
120 | let spanSize = grid.data[item].data.layoutSize.spanSize(columnCount: columnCount)
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
121 |
122 | let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: item, columnCount: columnCount)
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:122:38: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
:
120 | let spanSize = grid.data[item].data.layoutSize.spanSize(columnCount: columnCount)
121 |
122 | let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: item, columnCount: columnCount)
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
123 | let spanIndexOffset = spanIndex - originalSpanIndex
124 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:125:31: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
:
123 | let spanIndexOffset = spanIndex - originalSpanIndex
124 |
125 | let spanPrefix = grid.spanIndexCalculator.calculateCellPrefix(spanSize: spanSize, columnCount: columnCount, spanIndex: originalSpanIndex)
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
126 |
127 | if spanIndexOffset < spanPrefix {
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
[23/27] Compiling SpanGrid SpanGridKeyboardNavigation.swift
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:23:27: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
15 | private var currentSpanIndex: Int = 0
16 |
17 | func setCurrentItem(newValue: Int) -> Bool {
| `- note: add '@MainActor' to make instance method 'setCurrentItem(newValue:)' part of global actor 'MainActor'
18 | guard let grid = grid else {
19 | logger.error("Lost grid reference, ignoring.", metadata: [ "value": .stringConvertible(newValue) ])
:
21 | }
22 |
23 | guard (0 ..< grid.data.count).contains(newValue) else {
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
24 | logger.info("Value out of bounds, ignoring.", metadata: [ "value": .stringConvertible(newValue) ])
25 | return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:61:33: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
59 | let currentItem = strongSelf.currentItem ?? 0
60 | var mutableSpanIndex = strongSelf.currentSpanIndex
61 | let spanSize = grid.data[currentItem].data.layoutSize.spanSize(columnCount: columnCount)
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
62 |
63 | let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: currentItem, columnCount: columnCount)
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:63:42: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 | let spanSize = grid.data[currentItem].data.layoutSize.spanSize(columnCount: columnCount)
62 |
63 | let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: currentItem, columnCount: columnCount)
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
64 | let spanIndexOffset = mutableSpanIndex - originalSpanIndex
65 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:66:35: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
64 | let spanIndexOffset = mutableSpanIndex - originalSpanIndex
65 |
66 | let spanPrefix = grid.spanIndexCalculator.calculateCellPrefix(
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
67 | spanSize: spanSize,
68 | columnCount: columnCount,
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:98:38: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
96 | }
97 |
98 | guard let newItem = grid.spanIndexCalculator.reverseLookup[mutableSpanIndex] else {
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
99 | strongSelf.logger.error("Unknown span index, ignoring. Input: '\(mutableSpanIndex)'.")
100 | return
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:110:31: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
112 | return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:115:27: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
:
113 | }
114 |
115 | guard (0 ..< grid.data.count).contains(item) else {
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
116 | logger.trace("Span index places item out of bounds, ignoring. Input: '\(spanIndex)=\(item)'.")
117 | return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:120:29: warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
:
118 | }
119 |
120 | let spanSize = grid.data[item].data.layoutSize.spanSize(columnCount: columnCount)
| `- warning: main actor-isolated property 'data' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
121 |
122 | let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: item, columnCount: columnCount)
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:22:9: note: property declared here
20 |
21 | /// An array containing all of the data for the grid.
22 | let data: [SpanGridData<Data>]
| `- note: property declared here
23 |
24 | /// A closure which produces a SwiftUI view for every piece of data within the grid.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:122:38: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
:
120 | let spanSize = grid.data[item].data.layoutSize.spanSize(columnCount: columnCount)
121 |
122 | let originalSpanIndex = grid.spanIndexCalculator.getSpanIndex(forItemWithOffset: item, columnCount: columnCount)
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
123 | let spanIndexOffset = spanIndex - originalSpanIndex
124 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
/Users/admin/builder/spi-builder-workspace/Sources/Business Logic/SpanGridKeyboardNavigation.swift:125:31: warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | func isInvalidCell(spanIndex: Int, columnCount: Int, grid: SpanGrid<Content, Data>) -> Bool {
| `- note: add '@MainActor' to make instance method 'isInvalidCell(spanIndex:columnCount:grid:)' part of global actor 'MainActor'
110 | guard let item = grid.spanIndexCalculator.reverseLookup[spanIndex] else {
111 | logger.error("Unknown span index, ignoring. Input: '\(spanIndex)'.")
:
123 | let spanIndexOffset = spanIndex - originalSpanIndex
124 |
125 | let spanPrefix = grid.spanIndexCalculator.calculateCellPrefix(spanSize: spanSize, columnCount: columnCount, spanIndex: originalSpanIndex)
| `- warning: main actor-isolated property 'spanIndexCalculator' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
126 |
127 | if spanIndexOffset < spanPrefix {
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGrid.swift:38:9: note: property declared here
36 | /// Calculates the span index for each item in the grid.
37 | /// The "span index" is the sum of the column spans of all items before it.
38 | let spanIndexCalculator = SpanGridSpanIndexCalculator<Content, Data>()
| `- note: property declared here
39 |
40 | /// Stores information about whether keyboard navigation is enabled, where supported.
[24/27] Emitting module SpanGrid
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:13:13: warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
10 | #if os(OSX)
11 | internal struct SpanGridWidthListener: NSViewControllerRepresentable {
12 | internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
| `- note: add '@preconcurrency' to the 'SpanGridWidthListenerViewController' conformance to defer isolation checking to run time
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
| `- warning: main actor-isolated property 'logger' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
14 | var lastKnownSize: CGSize?
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:13:9: note: requirement 'logger' declared here
11 |
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 | var logger: Logger { get }
| `- note: requirement 'logger' declared here
14 | var lastKnownSize: CGSize? { get set }
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:14:13: warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
12 | internal class ViewController: NSViewController, SpanGridWidthListenerViewController {
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 | var lastKnownSize: CGSize?
| `- warning: main actor-isolated property 'lastKnownSize' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
16 |
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:14:9: note: requirement 'lastKnownSize' declared here
12 | protocol SpanGridWidthListenerViewController: AnyObject {
13 | var logger: Logger { get }
14 | var lastKnownSize: CGSize? { get set }
| `- note: requirement 'lastKnownSize' declared here
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener+macOS.swift:15:13: warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
13 | let logger = Logger(label: "uk.sherlo.spangrid.width-listener")
14 | var lastKnownSize: CGSize?
15 | let dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration?
| `- warning: main actor-isolated property 'dynamicConfiguration' cannot be used to satisfy nonisolated requirement from protocol 'SpanGridWidthListenerViewController'; this is an error in the Swift 6 language mode
16 |
17 | override func loadView() {
/Users/admin/builder/spi-builder-workspace/Sources/SpanGridWidthListener/SpanGridWidthListener.swift:15:9: note: requirement 'dynamicConfiguration' declared here
13 | var logger: Logger { get }
14 | var lastKnownSize: CGSize? { get set }
15 | var dynamicConfiguration: SpanGridDynamicColumnSizeStrategy.Configuration? { get }
| `- note: requirement 'dynamicConfiguration' declared here
16 | }
17 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/SpanGridDetermineRowHeight.swift:12:16: warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | internal struct SpanGridRowPreferenceKey: PreferenceKey {
12 | static var defaultValue: [Int: CGFloat] = [:]
| |- warning: static property 'defaultValue' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultValue' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 |
14 | static func reduce(value: inout [Int: CGFloat], nextValue: () -> [Int: CGFloat]) {
[25/27] Compiling SpanGrid SpanGridTraitCollection.swift
[26/27] Compiling SpanGrid SpanGridWidthListener+iOS+tvOS.swift
[27/27] Compiling SpanGrid SpanGridSpanView.swift
Build complete! (11.63s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-snapshot-testing",
"requirement" : {
"range" : [
{
"lower_bound" : "1.9.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/pointfreeco/swift-snapshot-testing.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
}
],
"manifest_display_name" : "SpanGrid",
"name" : "SpanGrid",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "tvos",
"version" : "14.0"
},
{
"name" : "macos",
"version" : "11.0"
},
{
"name" : "watchos",
"version" : "7.0"
}
],
"products" : [
{
"name" : "SpanGrid",
"targets" : [
"SpanGrid"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SpanGridTests",
"module_type" : "SwiftTarget",
"name" : "SpanGridTests",
"path" : "Tests",
"product_dependencies" : [
"SnapshotTesting"
],
"sources" : [
"SpanGridDynamicColumnSizeStrategyTests.swift",
"SpanGridExampleImageGenerator.swift",
"SpanGridKeyboardNavigationTests.swift",
"SpanGridPerformanceTests.swift",
"SpanGridRowSizeStrategyTests.swift",
"SpanGridSpanTests.swift",
"SpanGridWidthListenerTests.swift"
],
"target_dependencies" : [
"SpanGrid"
],
"type" : "test"
},
{
"c99name" : "SpanGrid",
"module_type" : "SwiftTarget",
"name" : "SpanGrid",
"path" : "Sources",
"product_dependencies" : [
"Logging"
],
"product_memberships" : [
"SpanGrid"
],
"sources" : [
"Business Logic/SpanGridDynamicColumnSizeStrategy.swift",
"Business Logic/SpanGridKeyboardNavigation.swift",
"Business Logic/SpanGridRowHeightStorage.swift",
"Business Logic/SpanGridSpanIndexCalculator.swift",
"Models/SpanGridCellMetadata.swift",
"Models/SpanGridColumnSizeStrategy.swift",
"Models/SpanGridData.swift",
"Models/SpanGridKeyboardNavigationOptions.swift",
"Models/SpanGridLayoutSize.swift",
"Models/SpanGridRowSizeStrategy.swift",
"Models/SpanGridTraitCollection.swift",
"SpanGridWidthListener/SpanGridWidthListener+iOS+tvOS.swift",
"SpanGridWidthListener/SpanGridWidthListener+macOS.swift",
"SpanGridWidthListener/SpanGridWidthListener+watchOS.swift",
"SpanGridWidthListener/SpanGridWidthListener.swift",
"Views/SpanGrid.swift",
"Views/SpanGridDetermineRowHeight.swift",
"Views/SpanGridKeyboardNavigationShortcuts.swift",
"Views/SpanGridSpanView.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Done.