Build Information
Failed to build Cluster, reference 3.0.3 (3c7056
), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 20:07:19 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/efremidze/Cluster.git
Reference: 3.0.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/efremidze/Cluster
* tag 3.0.3 -> FETCH_HEAD
HEAD is now at 3c70568 3.0.3
Cloned https://github.com/efremidze/Cluster.git
Revision (git rev-parse @):
3c70568c779456355895adf354a01e7fe5440ebf
SUCCESS checkout https://github.com/efremidze/Cluster.git at 3.0.3
========================================
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": "cluster",
"name": "Cluster",
"url": "https://github.com/efremidze/Cluster.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Cluster",
"dependencies": [
]
}
]
}
Fetching https://github.com/efremidze/Cluster.git
[1/1927] Fetching cluster
Fetched https://github.com/efremidze/Cluster.git from cache (1.10s)
Creating working copy for https://github.com/efremidze/Cluster.git
Working copy of https://github.com/efremidze/Cluster.git resolved at 3.0.3 (3c70568)
warning: '.resolve-product-dependencies': dependency 'cluster' 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/efremidze/Cluster.git
https://github.com/efremidze/Cluster.git
{
"dependencies" : [
],
"manifest_display_name" : "Cluster",
"name" : "Cluster",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "8.0"
}
],
"products" : [
{
"name" : "Cluster",
"targets" : [
"Cluster"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ClusterTests",
"module_type" : "SwiftTarget",
"name" : "ClusterTests",
"path" : "Tests",
"sources" : [
"Tests.swift"
],
"target_dependencies" : [
"Cluster"
],
"type" : "test"
},
{
"c99name" : "Cluster",
"module_type" : "SwiftTarget",
"name" : "Cluster",
"path" : "Sources",
"product_memberships" : [
"Cluster"
],
"sources" : [
"Annotation.swift",
"Atomic.swift",
"Cluster.swift",
"Extensions.swift",
"QuadTree.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
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/8] Compiling Cluster QuadTree.swift
[4/8] Compiling Cluster Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:27:1: warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
25 | let MKMapPointMax = MKMapPoint(CLLocationCoordinate2DMax)
26 |
27 | extension CLLocationCoordinate2D: Hashable {
| |- warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
28 | public func hash(into hasher: inout Hasher) {
29 | hasher.combine(latitude)
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:108:13: warning: capture of 'block' with non-sendable type '(BlockOperation) -> Void' in a '@Sendable' closure
106 | operation.addExecutionBlock { [weak operation] in
107 | guard let operation = operation else { return }
108 | block(operation)
| |- warning: capture of 'block' with non-sendable type '(BlockOperation) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
109 | }
110 | self.addOperation(operation)
[5/8] Compiling Cluster Cluster.swift
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:12:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
10 | import MapKit
11 |
12 | public protocol ClusterManagerDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
13 | /**
14 | The size of each cell on the grid (The larger the size, the better the performance) at a given zoom level.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:161:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
42 | }
43 |
44 | open class ClusterManager {
| `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
45 |
46 | var tree = QuadTree(rect: .world)
:
159 | operationQueue.cancelAllOperations()
160 | dispatchQueue.async(flags: .barrier) { [weak self] in
161 | self?.tree.add(annotation)
| `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
162 | }
163 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:161:28: warning: capture of 'annotation' with non-sendable type 'any MKAnnotation' in a '@Sendable' closure
159 | operationQueue.cancelAllOperations()
160 | dispatchQueue.async(flags: .barrier) { [weak self] in
161 | self?.tree.add(annotation)
| `- warning: capture of 'annotation' with non-sendable type 'any MKAnnotation' in a '@Sendable' closure
162 | }
163 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
| `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'MapKit'
8 |
9 | import CoreLocation
10 | import MapKit
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'MapKit'
11 |
12 | public protocol ClusterManagerDelegate: class {
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:174:31: warning: capture of 'annotations' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
172 | operationQueue.cancelAllOperations()
173 | dispatchQueue.async(flags: .barrier) { [weak self] in
174 | for annotation in annotations {
| `- warning: capture of 'annotations' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
175 | self?.tree.add(annotation)
176 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
| `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:175:17: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
42 | }
43 |
44 | open class ClusterManager {
| `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
45 |
46 | var tree = QuadTree(rect: .world)
:
173 | dispatchQueue.async(flags: .barrier) { [weak self] in
174 | for annotation in annotations {
175 | self?.tree.add(annotation)
| `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
176 | }
177 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:189:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
42 | }
43 |
44 | open class ClusterManager {
| `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
45 |
46 | var tree = QuadTree(rect: .world)
:
187 | operationQueue.cancelAllOperations()
188 | dispatchQueue.async(flags: .barrier) { [weak self] in
189 | self?.tree.remove(annotation)
| `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
190 | }
191 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:189:31: warning: capture of 'annotation' with non-sendable type 'any MKAnnotation' in a '@Sendable' closure
187 | operationQueue.cancelAllOperations()
188 | dispatchQueue.async(flags: .barrier) { [weak self] in
189 | self?.tree.remove(annotation)
| `- warning: capture of 'annotation' with non-sendable type 'any MKAnnotation' in a '@Sendable' closure
190 | }
191 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
| `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:202:31: warning: capture of 'annotations' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
200 | operationQueue.cancelAllOperations()
201 | dispatchQueue.async(flags: .barrier) { [weak self] in
202 | for annotation in annotations {
| `- warning: capture of 'annotations' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
203 | self?.tree.remove(annotation)
204 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
| `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:203:17: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
42 | }
43 |
44 | open class ClusterManager {
| `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
45 |
46 | var tree = QuadTree(rect: .world)
:
201 | dispatchQueue.async(flags: .barrier) { [weak self] in
202 | for annotation in annotations {
203 | self?.tree.remove(annotation)
| `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
204 | }
205 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:214:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
42 | }
43 |
44 | open class ClusterManager {
| `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
45 |
46 | var tree = QuadTree(rect: .world)
:
212 | operationQueue.cancelAllOperations()
213 | dispatchQueue.async(flags: .barrier) { [weak self] in
214 | self?.tree = QuadTree(rect: .world)
| `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
215 | }
216 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:238:33: warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
235 | - completion: A closure to be executed when the reload finishes. The closure has no return value and takes a single Boolean argument that indicates whether or not the reload actually finished before the completion handler was called.
236 | */
237 | open func reload(mapView: MKMapView, completion: @escaping (Bool) -> Void = { finished in }) {
| `- note: add '@MainActor' to make instance method 'reload(mapView:completion:)' part of global actor 'MainActor'
238 | let mapBounds = mapView.bounds
| `- warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
239 | let visibleMapRect = mapView.visibleMapRect
240 | let visibleMapRectWidth = visibleMapRect.size.width
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:139:18: note: property declared here
137 | - (void)scaleUnitSquareToSize:(NSSize)newUnitSize;
138 | - (void)rotateByAngle:(CGFloat)angle;
139 | @property NSRect bounds;
| `- note: property declared here
140 |
141 | @property (getter=isFlipped, readonly) BOOL flipped;
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:239:38: warning: main actor-isolated property 'visibleMapRect' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
235 | - completion: A closure to be executed when the reload finishes. The closure has no return value and takes a single Boolean argument that indicates whether or not the reload actually finished before the completion handler was called.
236 | */
237 | open func reload(mapView: MKMapView, completion: @escaping (Bool) -> Void = { finished in }) {
| `- note: add '@MainActor' to make instance method 'reload(mapView:completion:)' part of global actor 'MainActor'
238 | let mapBounds = mapView.bounds
239 | let visibleMapRect = mapView.visibleMapRect
| `- warning: main actor-isolated property 'visibleMapRect' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
240 | let visibleMapRectWidth = visibleMapRect.size.width
241 | let zoomScale = Double(mapBounds.width) / visibleMapRectWidth
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKMapView.h:104:33: note: property declared here
102 |
103 | // Access the visible region of the map in projected coordinates.
104 | @property (nonatomic) MKMapRect visibleMapRect;
| `- note: property declared here
105 | - (void)setVisibleMapRect:(MKMapRect)mapRect animated:(BOOL)animate;
106 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:288:13: warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
42 | }
43 |
44 | open class ClusterManager {
| `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
45 |
46 | var tree = QuadTree(rect: .world)
:
286 |
287 | dispatchQueue.async(flags: .barrier) { [weak self] in
288 | self?.visibleAnnotations.subtract(toRemove)
| `- warning: capture of 'self' with non-sendable type 'ClusterManager?' in a '@Sendable' closure
289 | self?.visibleAnnotations.add(toAdd)
290 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:288:47: warning: capture of 'toRemove' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
286 |
287 | dispatchQueue.async(flags: .barrier) { [weak self] in
288 | self?.visibleAnnotations.subtract(toRemove)
| `- warning: capture of 'toRemove' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
289 | self?.visibleAnnotations.add(toAdd)
290 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
| `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:289:42: warning: capture of 'toAdd' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
287 | dispatchQueue.async(flags: .barrier) { [weak self] in
288 | self?.visibleAnnotations.subtract(toRemove)
289 | self?.visibleAnnotations.add(toAdd)
| `- warning: capture of 'toAdd' with non-sendable type '[any MKAnnotation]' in a '@Sendable' closure
290 | }
291 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
| `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:288:47: warning: reference to captured var 'toRemove' in concurrently-executing code
286 |
287 | dispatchQueue.async(flags: .barrier) { [weak self] in
288 | self?.visibleAnnotations.subtract(toRemove)
| `- warning: reference to captured var 'toRemove' in concurrently-executing code
289 | self?.visibleAnnotations.add(toAdd)
290 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:330:26: warning: capture of 'hash' with non-sendable type '[CLLocationCoordinate2D : [any MKAnnotation]]' in a '@Sendable' closure
328 | let hash = Dictionary(grouping: annotations) { $0.coordinate }
329 | dispatchQueue.async(flags: .barrier) {
330 | for value in hash.values where value.count > 1 {
| `- warning: capture of 'hash' with non-sendable type '[CLLocationCoordinate2D : [any MKAnnotation]]' in a '@Sendable' closure
331 | for (index, annotation) in value.enumerated() {
332 | tree.remove(annotation)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKAnnotation.h:14:11: note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol MKAnnotation <NSObject>
| `- note: protocol 'MKAnnotation' does not conform to the 'Sendable' protocol
15 |
16 | // Center latitude and longitude of the annotation view.
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:332:21: warning: capture of 'tree' with non-sendable type 'QuadTree' in a '@Sendable' closure
330 | for value in hash.values where value.count > 1 {
331 | for (index, annotation) in value.enumerated() {
332 | tree.remove(annotation)
| `- warning: capture of 'tree' with non-sendable type 'QuadTree' in a '@Sendable' closure
333 | let radiansBetweenAnnotations = (.pi * 2) / Double(value.count)
334 | let bearing = radiansBetweenAnnotations * Double(index)
/Users/admin/builder/spi-builder-workspace/Sources/QuadTree.swift:149:14: note: class 'QuadTree' does not conform to the 'Sendable' protocol
147 | }
148 |
149 | public class QuadTree: AnnotationsContainer {
| `- note: class 'QuadTree' does not conform to the 'Sendable' protocol
150 |
151 | let root: QuadTreeNode
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:335:152: warning: capture of 'self' with non-sendable type 'ClusterManager' in a '@Sendable' closure
42 | }
43 |
44 | open class ClusterManager {
| `- note: class 'ClusterManager' does not conform to the 'Sendable' protocol
45 |
46 | var tree = QuadTree(rect: .world)
:
333 | let radiansBetweenAnnotations = (.pi * 2) / Double(value.count)
334 | let bearing = radiansBetweenAnnotations * Double(index)
335 | (annotation as? MKPointAnnotation)?.coordinate = annotation.coordinate.coordinate(onBearingInRadians: bearing, atDistanceInMeters: self.distanceFromContestedLocation)
| `- warning: capture of 'self' with non-sendable type 'ClusterManager' in a '@Sendable' closure
336 | tree.add(annotation)
337 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:385:17: warning: call to main actor-isolated instance method 'removeAnnotations' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
381 | }
382 |
383 | open func display(mapView: MKMapView, toAdd: [MKAnnotation], toRemove: [MKAnnotation]) {
| `- note: add '@MainActor' to make instance method 'display(mapView:toAdd:toRemove:)' part of global actor 'MainActor'
384 | assert(Thread.isMainThread, "This function must be called from the main thread.")
385 | mapView.removeAnnotations(toRemove)
| `- warning: call to main actor-isolated instance method 'removeAnnotations' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
386 | mapView.addAnnotations(toAdd)
387 | }
MapKit.MKMapView.removeAnnotations:2:22: note: calls to instance method 'removeAnnotations' from outside of its actor context are implicitly asynchronous
1 | class MKMapView {
2 | @MainActor open func removeAnnotations(_ annotations: [any MKAnnotation])}
| |- note: calls to instance method 'removeAnnotations' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSView'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:386:17: warning: call to main actor-isolated instance method 'addAnnotations' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
381 | }
382 |
383 | open func display(mapView: MKMapView, toAdd: [MKAnnotation], toRemove: [MKAnnotation]) {
| `- note: add '@MainActor' to make instance method 'display(mapView:toAdd:toRemove:)' part of global actor 'MainActor'
384 | assert(Thread.isMainThread, "This function must be called from the main thread.")
385 | mapView.removeAnnotations(toRemove)
386 | mapView.addAnnotations(toAdd)
| `- warning: call to main actor-isolated instance method 'addAnnotations' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
387 | }
388 |
MapKit.MKMapView.addAnnotations:2:22: note: calls to instance method 'addAnnotations' from outside of its actor context are implicitly asynchronous
1 | class MKMapView {
2 | @MainActor open func addAnnotations(_ annotations: [any MKAnnotation])}
| |- note: calls to instance method 'addAnnotations' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSView'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
82 | - `radius`: The radius of the annotation circle
83 | */
84 | case color(UIColor, radius: CGFloat)
| `- error: cannot find type 'UIColor' in scope
85 |
86 | /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
87 | Displays the annotation as an image.
88 | */
89 | case image(UIImage?)
| `- error: cannot find type 'UIImage' in scope
90 | }
91 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:248:38: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
246 | let (toAdd, toRemove) = self.clusteredAnnotations(zoomScale: zoomScale, visibleMapRect: visibleMapRect, operation: operation)
247 | DispatchQueue.main.async { [weak self, weak mapView] in
248 | guard let self = self, let mapView = mapView else { return completion(false) }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
249 | self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
250 | completion(true)
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:248:80: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
246 | let (toAdd, toRemove) = self.clusteredAnnotations(zoomScale: zoomScale, visibleMapRect: visibleMapRect, operation: operation)
247 | DispatchQueue.main.async { [weak self, weak mapView] in
248 | guard let self = self, let mapView = mapView else { return completion(false) }
| |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
249 | self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
250 | completion(true)
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:249:59: warning: sending 'toAdd' risks causing data races; this is an error in the Swift 6 language mode
247 | DispatchQueue.main.async { [weak self, weak mapView] in
248 | guard let self = self, let mapView = mapView else { return completion(false) }
249 | self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
| |- warning: sending 'toAdd' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'toAdd' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
250 | completion(true)
251 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:249:76: warning: sending 'toRemove' risks causing data races; this is an error in the Swift 6 language mode
247 | DispatchQueue.main.async { [weak self, weak mapView] in
248 | guard let self = self, let mapView = mapView else { return completion(false) }
249 | self.display(mapView: mapView, toAdd: toAdd, toRemove: toRemove)
| |- warning: sending 'toRemove' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'toRemove' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
250 | completion(true)
251 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:385:17: warning: sending 'toRemove._bridgeToObjectiveC' risks causing data races; this is an error in the Swift 6 language mode
383 | open func display(mapView: MKMapView, toAdd: [MKAnnotation], toRemove: [MKAnnotation]) {
384 | assert(Thread.isMainThread, "This function must be called from the main thread.")
385 | mapView.removeAnnotations(toRemove)
| |- warning: sending 'toRemove._bridgeToObjectiveC' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'toRemove._bridgeToObjectiveC' to main actor-isolated instance method 'removeAnnotations' risks causing data races between main actor-isolated and task-isolated uses
386 | mapView.addAnnotations(toAdd)
387 | }
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:386:17: warning: sending 'toAdd._bridgeToObjectiveC' risks causing data races; this is an error in the Swift 6 language mode
384 | assert(Thread.isMainThread, "This function must be called from the main thread.")
385 | mapView.removeAnnotations(toRemove)
386 | mapView.addAnnotations(toAdd)
| |- warning: sending 'toAdd._bridgeToObjectiveC' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'toAdd._bridgeToObjectiveC' to main actor-isolated instance method 'addAnnotations' risks causing data races between main actor-isolated and task-isolated uses
387 | }
388 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/8] Compiling Cluster Atomic.swift
/Users/admin/builder/spi-builder-workspace/Sources/Atomic.swift:23:46: warning: capture of 'self' with non-sendable type 'Atomic<Value>' in a '@Sendable' closure
10 |
11 | @propertyWrapper
12 | class Atomic<Value> {
| `- note: generic class 'Atomic' does not conform to the 'Sendable' protocol
13 | private let queue = DispatchQueue(label: "Atomic serial queue", attributes: .concurrent)
14 |
:
21 | var wrappedValue: Value {
22 | get { return queue.sync { _value } }
23 | set { queue.async(flags: .barrier) { self._value = newValue } }
| `- warning: capture of 'self' with non-sendable type 'Atomic<Value>' in a '@Sendable' closure
24 | }
25 | }
/Users/admin/builder/spi-builder-workspace/Sources/Atomic.swift:23:60: warning: capture of 'newValue' with non-sendable type 'Value' in a '@Sendable' closure
10 |
11 | @propertyWrapper
12 | class Atomic<Value> {
| `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
13 | private let queue = DispatchQueue(label: "Atomic serial queue", attributes: .concurrent)
14 |
:
21 | var wrappedValue: Value {
22 | get { return queue.sync { _value } }
23 | set { queue.async(flags: .barrier) { self._value = newValue } }
| `- warning: capture of 'newValue' with non-sendable type 'Value' in a '@Sendable' closure
24 | }
25 | }
[7/8] Emitting module Cluster
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:47:31: error: cannot find type 'UILabel' in scope
45 | */
46 | open class ClusterAnnotationView: MKAnnotationView {
47 | open lazy var countLabel: UILabel = {
| `- error: cannot find type 'UILabel' in scope
48 | let label = UILabel()
49 | label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
82 | - `radius`: The radius of the annotation circle
83 | */
84 | case color(UIColor, radius: CGFloat)
| `- error: cannot find type 'UIColor' in scope
85 |
86 | /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
87 | Displays the annotation as an image.
88 | */
89 | case image(UIImage?)
| `- error: cannot find type 'UIImage' in scope
90 | }
91 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:145:24: error: method does not override any method from its superclass
143 | }
144 |
145 | override open func layoutSubviews() {
| `- error: method does not override any method from its superclass
146 | super.layoutSubviews()
147 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:12:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
10 | import MapKit
11 |
12 | public protocol ClusterManagerDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
13 | /**
14 | The size of each cell on the grid (The larger the size, the better the performance) at a given zoom level.
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:27:1: warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
25 | let MKMapPointMax = MKMapPoint(CLLocationCoordinate2DMax)
26 |
27 | extension CLLocationCoordinate2D: Hashable {
| |- warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
28 | public func hash(into hasher: inout Hasher) {
29 | hasher.combine(latitude)
[8/8] Compiling Cluster Annotation.swift
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:47:31: error: cannot find type 'UILabel' in scope
45 | */
46 | open class ClusterAnnotationView: MKAnnotationView {
47 | open lazy var countLabel: UILabel = {
| `- error: cannot find type 'UILabel' in scope
48 | let label = UILabel()
49 | label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
82 | - `radius`: The radius of the annotation circle
83 | */
84 | case color(UIColor, radius: CGFloat)
| `- error: cannot find type 'UIColor' in scope
85 |
86 | /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
87 | Displays the annotation as an image.
88 | */
89 | case image(UIImage?)
| `- error: cannot find type 'UIImage' in scope
90 | }
91 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:145:24: error: method does not override any method from its superclass
143 | }
144 |
145 | override open func layoutSubviews() {
| `- error: method does not override any method from its superclass
146 | super.layoutSubviews()
147 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:127:13: error: cannot find 'backgroundColor' in scope
125 | switch style {
126 | case let .image(image):
127 | backgroundColor = .clear
| `- error: cannot find 'backgroundColor' in scope
128 | self.image = image
129 | case let .color(color, radius):
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:131:13: error: cannot find 'backgroundColor' in scope
129 | case let .color(color, radius):
130 | let count = annotation.annotations.count
131 | backgroundColor = color
| `- error: cannot find 'backgroundColor' in scope
132 | var diameter = radius * 2
133 | switch count {
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:146:15: error: value of type 'ClusterAnnotationView' has no member 'layoutSubviews'
144 |
145 | override open func layoutSubviews() {
146 | super.layoutSubviews()
| `- error: value of type 'ClusterAnnotationView' has no member 'layoutSubviews'
147 |
148 | if case .color = style {
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:149:13: error: value of optional type 'CALayer?' must be unwrapped to refer to member 'masksToBounds' of wrapped base type 'CALayer'
147 |
148 | if case .color = style {
149 | layer.masksToBounds = true
| |- error: value of optional type 'CALayer?' must be unwrapped to refer to member 'masksToBounds' of wrapped base type 'CALayer'
| |- note: chain the optional using '?' to access member 'masksToBounds' only for non-'nil' base values
| `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
150 | layer.cornerRadius = image == nil ? bounds.width / 2 : 0
151 | countLabel.frame = bounds
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:150:13: error: value of optional type 'CALayer?' must be unwrapped to refer to member 'cornerRadius' of wrapped base type 'CALayer'
148 | if case .color = style {
149 | layer.masksToBounds = true
150 | layer.cornerRadius = image == nil ? bounds.width / 2 : 0
| |- error: value of optional type 'CALayer?' must be unwrapped to refer to member 'cornerRadius' of wrapped base type 'CALayer'
| |- note: chain the optional using '?' to access member 'cornerRadius' only for non-'nil' base values
| `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
151 | countLabel.frame = bounds
152 | }
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/7] Compiling Cluster QuadTree.swift
[3/7] Compiling Cluster Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:27:1: warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
25 | let MKMapPointMax = MKMapPoint(CLLocationCoordinate2DMax)
26 |
27 | extension CLLocationCoordinate2D: Hashable {
| |- warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
28 | public func hash(into hasher: inout Hasher) {
29 | hasher.combine(latitude)
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/7] Emitting module Cluster
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:47:31: error: cannot find type 'UILabel' in scope
45 | */
46 | open class ClusterAnnotationView: MKAnnotationView {
47 | open lazy var countLabel: UILabel = {
| `- error: cannot find type 'UILabel' in scope
48 | let label = UILabel()
49 | label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
82 | - `radius`: The radius of the annotation circle
83 | */
84 | case color(UIColor, radius: CGFloat)
| `- error: cannot find type 'UIColor' in scope
85 |
86 | /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
87 | Displays the annotation as an image.
88 | */
89 | case image(UIImage?)
| `- error: cannot find type 'UIImage' in scope
90 | }
91 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:145:24: error: method does not override any method from its superclass
143 | }
144 |
145 | override open func layoutSubviews() {
| `- error: method does not override any method from its superclass
146 | super.layoutSubviews()
147 |
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:12:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
10 | import MapKit
11 |
12 | public protocol ClusterManagerDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
13 | /**
14 | The size of each cell on the grid (The larger the size, the better the performance) at a given zoom level.
/Users/admin/builder/spi-builder-workspace/Sources/Extensions.swift:27:1: warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
25 | let MKMapPointMax = MKMapPoint(CLLocationCoordinate2DMax)
26 |
27 | extension CLLocationCoordinate2D: Hashable {
| |- warning: extension declares a conformance of imported type 'CLLocationCoordinate2D' to imported protocols 'Hashable', 'Equatable'; this will not behave correctly if the owners of 'CoreLocation' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
28 | public func hash(into hasher: inout Hasher) {
29 | hasher.combine(latitude)
[5/7] Compiling Cluster Atomic.swift
[6/7] Compiling Cluster Annotation.swift
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:47:31: error: cannot find type 'UILabel' in scope
45 | */
46 | open class ClusterAnnotationView: MKAnnotationView {
47 | open lazy var countLabel: UILabel = {
| `- error: cannot find type 'UILabel' in scope
48 | let label = UILabel()
49 | label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
82 | - `radius`: The radius of the annotation circle
83 | */
84 | case color(UIColor, radius: CGFloat)
| `- error: cannot find type 'UIColor' in scope
85 |
86 | /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
87 | Displays the annotation as an image.
88 | */
89 | case image(UIImage?)
| `- error: cannot find type 'UIImage' in scope
90 | }
91 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:145:24: error: method does not override any method from its superclass
143 | }
144 |
145 | override open func layoutSubviews() {
| `- error: method does not override any method from its superclass
146 | super.layoutSubviews()
147 |
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:127:13: error: cannot find 'backgroundColor' in scope
125 | switch style {
126 | case let .image(image):
127 | backgroundColor = .clear
| `- error: cannot find 'backgroundColor' in scope
128 | self.image = image
129 | case let .color(color, radius):
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:131:13: error: cannot find 'backgroundColor' in scope
129 | case let .color(color, radius):
130 | let count = annotation.annotations.count
131 | backgroundColor = color
| `- error: cannot find 'backgroundColor' in scope
132 | var diameter = radius * 2
133 | switch count {
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:146:15: error: value of type 'ClusterAnnotationView' has no member 'layoutSubviews'
144 |
145 | override open func layoutSubviews() {
146 | super.layoutSubviews()
| `- error: value of type 'ClusterAnnotationView' has no member 'layoutSubviews'
147 |
148 | if case .color = style {
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:149:13: error: value of optional type 'CALayer?' must be unwrapped to refer to member 'masksToBounds' of wrapped base type 'CALayer'
147 |
148 | if case .color = style {
149 | layer.masksToBounds = true
| |- error: value of optional type 'CALayer?' must be unwrapped to refer to member 'masksToBounds' of wrapped base type 'CALayer'
| |- note: chain the optional using '?' to access member 'masksToBounds' only for non-'nil' base values
| `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
150 | layer.cornerRadius = image == nil ? bounds.width / 2 : 0
151 | countLabel.frame = bounds
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:150:13: error: value of optional type 'CALayer?' must be unwrapped to refer to member 'cornerRadius' of wrapped base type 'CALayer'
148 | if case .color = style {
149 | layer.masksToBounds = true
150 | layer.cornerRadius = image == nil ? bounds.width / 2 : 0
| |- error: value of optional type 'CALayer?' must be unwrapped to refer to member 'cornerRadius' of wrapped base type 'CALayer'
| |- note: chain the optional using '?' to access member 'cornerRadius' only for non-'nil' base values
| `- note: force-unwrap using '!' to abort execution if the optional value contains 'nil'
151 | countLabel.frame = bounds
152 | }
[7/7] Compiling Cluster Cluster.swift
/Users/admin/builder/spi-builder-workspace/Sources/Cluster.swift:12:41: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
10 | import MapKit
11 |
12 | public protocol ClusterManagerDelegate: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
13 | /**
14 | The size of each cell on the grid (The larger the size, the better the performance) at a given zoom level.
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:84:16: error: cannot find type 'UIColor' in scope
82 | - `radius`: The radius of the annotation circle
83 | */
84 | case color(UIColor, radius: CGFloat)
| `- error: cannot find type 'UIColor' in scope
85 |
86 | /**
/Users/admin/builder/spi-builder-workspace/Sources/Annotation.swift:89:16: error: cannot find type 'UIImage' in scope
87 | Displays the annotation as an image.
88 | */
89 | case image(UIImage?)
| `- error: cannot find type 'UIImage' in scope
90 | }
91 |
BUILD FAILURE 6.1 macosSpm