Build Information
Successful build of PoliceDataKit with Swift 6.0 for macOS (SPM).
Swift 6 data race errors: 21
Build Command
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
33 | /// Use this object to interface to crime services in your application.
34 | ///
35 | public static let shared = CrimeService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
28 | public static let `default` = CrimeCategory(
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | id: "all-crime",
30 | name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:126:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
124 | Task {
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
127 | promise(.success(crimes))
128 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:127:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
127 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
128 | } catch let error {
129 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:203:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
201 | Task {
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 | promise(.success(crimes))
205 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:204:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
204 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
205 | } catch let error {
206 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:307:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
305 | Task {
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
308 | promise(.success(crimes))
309 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:308:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
308 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
309 | } catch let error {
310 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 | }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 | }
86 |
[88/100] Compiling PoliceDataKit Crime.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 | }
30 |
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
| `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 | }
37 |
38 | func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
| `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 | }
43 |
44 | func crimesWithNoLocation(
| `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 | forCategory categoryID: CrimeCategory.ID,
46 | inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 | }
58 |
59 | func setCrimesWithNoLocation(
| `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 | _ crimes: [Crime],
61 | forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 | }
73 |
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
| `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 | }
80 |
81 | func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
| `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
33 | /// Use this object to interface to crime services in your application.
34 | ///
35 | public static let shared = CrimeService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
28 | public static let `default` = CrimeCategory(
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | id: "all-crime",
30 | name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:126:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
124 | Task {
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
127 | promise(.success(crimes))
128 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:127:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
127 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
128 | } catch let error {
129 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:203:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
201 | Task {
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 | promise(.success(crimes))
205 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:204:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
204 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
205 | } catch let error {
206 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:307:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
305 | Task {
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
308 | promise(.success(crimes))
309 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:308:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
308 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
309 | } catch let error {
310 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 | }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 | }
86 |
[89/100] Compiling PoliceDataKit CrimeCategory.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 | }
30 |
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
| `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 | }
37 |
38 | func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
| `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 | }
43 |
44 | func crimesWithNoLocation(
| `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 | forCategory categoryID: CrimeCategory.ID,
46 | inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 | }
58 |
59 | func setCrimesWithNoLocation(
| `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 | _ crimes: [Crime],
61 | forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 | }
73 |
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
| `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 | }
80 |
81 | func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
| `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
33 | /// Use this object to interface to crime services in your application.
34 | ///
35 | public static let shared = CrimeService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
28 | public static let `default` = CrimeCategory(
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | id: "all-crime",
30 | name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:126:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
124 | Task {
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
127 | promise(.success(crimes))
128 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:127:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
127 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
128 | } catch let error {
129 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:203:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
201 | Task {
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 | promise(.success(crimes))
205 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:204:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
204 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
205 | } catch let error {
206 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:307:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
305 | Task {
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
308 | promise(.success(crimes))
309 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:308:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
308 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
309 | } catch let error {
310 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 | }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 | }
86 |
[90/100] Compiling PoliceDataKit CrimeLocationType.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 | }
30 |
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
| `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 | }
37 |
38 | func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
| `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 | }
43 |
44 | func crimesWithNoLocation(
| `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 | forCategory categoryID: CrimeCategory.ID,
46 | inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 | }
58 |
59 | func setCrimesWithNoLocation(
| `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 | _ crimes: [Crime],
61 | forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 | }
73 |
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
| `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 | }
80 |
81 | func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
| `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
33 | /// Use this object to interface to crime services in your application.
34 | ///
35 | public static let shared = CrimeService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
28 | public static let `default` = CrimeCategory(
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | id: "all-crime",
30 | name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:126:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
124 | Task {
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
127 | promise(.success(crimes))
128 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:127:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
127 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
128 | } catch let error {
129 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:203:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
201 | Task {
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 | promise(.success(crimes))
205 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:204:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
204 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
205 | } catch let error {
206 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:307:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
305 | Task {
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
308 | promise(.success(crimes))
309 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:308:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
308 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
309 | } catch let error {
310 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 | }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 | }
86 |
[91/100] Compiling PoliceDataKit CrimeCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:31:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
29 | }
30 |
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
| `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimes(forStreet:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:38:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
36 | }
37 |
38 | func setCrimes(_ crimes: [Crime], forStreet streetID: Int, date: Date) async {
| `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimes(_:forStreet:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:44:10: warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
42 | }
43 |
44 | func crimesWithNoLocation(
| `- warning: non-sendable type '[Crime]?' returned by actor-isolated instance method 'crimesWithNoLocation(forCategory:inPoliceForce:date:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
45 | forCategory categoryID: CrimeCategory.ID,
46 | inPoliceForce policeForceID: PoliceForce.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:59:10: warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
57 | }
58 |
59 | func setCrimesWithNoLocation(
| `- warning: non-sendable type '[Crime]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimesWithNoLocation(_:forCategory:inPoliceForce:date:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
60 | _ crimes: [Crime],
61 | forCategory categoryID: CrimeCategory.ID,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:74:10: warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
72 | }
73 |
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
| `- warning: non-sendable type '[CrimeCategory]?' returned by actor-isolated instance method 'crimeCategories(forDate:)' satisfying protocol requirement cannot cross actor boundary; this is an error in the Swift 6 language mode
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:81:10: warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
79 | }
80 |
81 | func setCrimeCategories(_ crimeCategories: [CrimeCategory], forDate date: Date) async {
| `- warning: non-sendable type '[CrimeCategory]' in parameter of the protocol requirement satisfied by actor-isolated instance method 'setCrimeCategories(_:forDate:)' cannot cross actor boundary; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| `- warning: non-sendable type '[Crime]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/Crime.swift:25:15: note: consider making struct 'Crime' conform to the 'Sendable' protocol
23 | /// A model representing a crime.
24 | ///
25 | public struct Crime: Identifiable, Equatable, Codable {
| `- note: consider making struct 'Crime' conform to the 'Sendable' protocol
26 |
27 | /// Identifier of the crime.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| `- warning: non-sendable type '[CrimeCategory]?' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:25:15: note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:35:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
33 | /// Use this object to interface to crime services in your application.
34 | ///
35 | public static let shared = CrimeService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'CrimeService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Models/CrimeCategory.swift:28:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
23 | /// A model representing a category of a crime.
24 | ///
25 | public struct CrimeCategory: Identifiable, Decodable, Equatable {
| `- note: consider making struct 'CrimeCategory' conform to the 'Sendable' protocol
26 |
27 | /// The default crime category which includes all crimes.
28 | public static let `default` = CrimeCategory(
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'CrimeCategory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
29 | id: "all-crime",
30 | name: "All Crimes"
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:126:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
124 | Task {
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
127 | promise(.success(crimes))
128 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:127:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
125 | do {
126 | let crimes = try await self.streetLevelCrimes(at: coordinate, date: date)
127 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
128 | } catch let error {
129 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:203:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
201 | Task {
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
204 | promise(.success(crimes))
205 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:204:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
202 | do {
203 | let crimes = try await self.streetLevelCrimes(in: coordinates, date: date)
204 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
205 | } catch let error {
206 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:307:44: warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 | ///
27 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
28 | public final class CrimeService {
| `- note: class 'CrimeService' does not conform to the 'Sendable' protocol
29 |
30 | ///
:
305 | Task {
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'CrimeService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
308 | promise(.success(crimes))
309 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/CrimeService.swift:308:21: warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
306 | do {
307 | let crimes = try await self.crimes(at: coordinate, date: date)
308 | promise(.success(crimes))
| |- warning: capture of 'promise' with non-sendable type '(Result<[Crime], CrimeError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
309 | } catch let error {
310 | let crimeError = Self.mapToCrimeError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:33:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
31 | func crimes(forStreet streetID: Int, date: Date) async -> [Crime]? {
32 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
33 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
34 |
35 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:41:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
39 | let cacheKey = CrimesForStreetCachingKey(streetID: streetID, date: date)
40 |
41 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:54:45: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
52 | date: date
53 | )
54 | let cachedCrimes = await cacheStore.object(for: cacheKey, type: [Crime].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
55 |
56 | return cachedCrimes
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[Crime]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:71:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
69 | )
70 |
71 | await cacheStore.set(crimes, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
72 | }
73 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:76:54: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
74 | func crimeCategories(forDate date: Date) async -> [CrimeCategory]? {
75 | let cacheKey = CrimeCategoriesCachingKey(date: date)
76 | let cachedCrimeCategories = await cacheStore.object(for: cacheKey, type: [CrimeCategory].self)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated instance method 'object(for:type:)' risks causing data races between nonisolated and 'self'-isolated uses
77 |
78 | return cachedCrimeCategories
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| `- warning: sending 'self'-isolated value of type '[CrimeCategory]' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
85 | }
86 |
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Crimes/Cache/CrimeDefaultCache.swift:84:26: warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
82 | let cacheKey = CrimeCategoriesCachingKey(date: date)
83 |
84 | await cacheStore.set(crimeCategories, for: cacheKey)
| |- warning: sending 'self.cacheStore' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.cacheStore' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
85 | }
86 |
[92/100] Compiling PoliceDataKit StopAndSearchDefaultCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
[93/100] Compiling PoliceDataKit StopAndSearchesEndpoint.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
[94/100] Compiling PoliceDataKit Gender.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
[95/100] Compiling PoliceDataKit StopAndSearch.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
[96/100] Compiling PoliceDataKit StopAndSearchType.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
[97/100] Compiling PoliceDataKit StopAndSearchCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
[98/100] Compiling PoliceDataKit StopAndSearchError.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
[99/100] Compiling PoliceDataKit StopAndSearchService.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
[100/100] Compiling PoliceDataKit resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:39:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
37 | /// Use this object to interface to stop and search services in your application.
38 | ///
39 | public static let shared = StopAndSearchService()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'StopAndSearchService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 |
41 | private let apiClient: any APIClient
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/PoliceDataKitFactory.swift:30:16: warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
28 | extension PoliceDataKitFactory {
29 |
30 | static let apiClient: some APIClient = PoliceDataAPIClient(
| |- warning: static property 'apiClient' is not concurrency-safe because non-'Sendable' type 'some APIClient' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'apiClient' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 | baseURL: policeDataBaseURL,
32 | urlSession: urlSession,
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:131:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
129 | Task {
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
132 | promise(.success(stopAndSearches))
133 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:132:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
130 | do {
131 | let stopAndSearches = try await self.stopAndSearches(at: coordinate, date: date)
132 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
133 | } catch let error {
134 | let outcomeError = Self.mapToStopAndSearchError(error)
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:202:53: warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
30 | ///
31 | @available(iOS 15.0, tvOS 15.0, watchOS 8.0, macOS 12, *)
32 | public final class StopAndSearchService {
| `- note: class 'StopAndSearchService' does not conform to the 'Sendable' protocol
33 |
34 | ///
:
200 | Task {
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
| `- warning: capture of 'self' with non-sendable type 'StopAndSearchService' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 | promise(.success(stopAndSearches))
204 | } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/StopAndSearches/StopAndSearchService.swift:203:21: warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
201 | do {
202 | let stopAndSearches = try await self.stopAndSearches(in: coordinates, date: date)
203 | promise(.success(stopAndSearches))
| |- warning: capture of 'promise' with non-sendable type '(Result<[StopAndSearch], StopAndSearchError>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
204 | } catch let error {
205 | let outcomeError = Self.mapToStopAndSearchError(error)
Build complete! (30.67s)
Build complete.
{
"default_localization" : "en",
"dependencies" : [
],
"manifest_display_name" : "PoliceDataKit",
"name" : "PoliceDataKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
}
],
"products" : [
{
"name" : "PoliceDataKit",
"targets" : [
"PoliceDataKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "PoliceDataKitTests",
"module_type" : "SwiftTarget",
"name" : "PoliceDataKitTests",
"path" : "Tests/PoliceDataKitTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/link.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-location-invalid-coordinates.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-empty-force-url.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/contact-details.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/location.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/engagement-method-empty-url.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-priority-html.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/crime.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/stop-and-search.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/location-invalid-coordinate.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/data-set.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/outcome-crime.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/police-force.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/crime-location-types.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-priority.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/outcome.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/police-force-reference.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-invalid-population.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/police-officer-nulls.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/coordinate-invalid.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/engagement-method.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-priority-no-action.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/link-no-description.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-policing-team.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-location.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/coordinate.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-reference.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/police-officer.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/outcome-category.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/contact-details-none.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/outcome-status.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-location-null-type.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-html-in-name.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/neighbourhood-location-null-coordinates.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/crime-category.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/PoliceDataKitTests/Resources/json/case-history.json",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Availability/AvailabilityServiceTests.swift",
"Availability/Cache/AvailabilityDefaultCacheTests.swift",
"Availability/Cache/CachingKeys/AvailableDataSetsCachingKeyTests.swift",
"Availability/Endpoints/AvailabilityEndpointTests.swift",
"Availability/Mocks/AvailabilityMockCache.swift",
"Availability/Models/DataSetTests.swift",
"Cache/CacheItemTests.swift",
"Cache/InMemoryCacheTests.swift",
"Crimes/Cache/CachingKey/CrimeCategoriesCachingKeyTests.swift",
"Crimes/Cache/CachingKey/CrimesForStreetCachingKeyTests.swift",
"Crimes/Cache/CachingKey/CrimesWithNoLocationForCategoryInPoliceForceCachingKeyTests.swift",
"Crimes/Cache/CrimeDefaultCacheTests.swift",
"Crimes/CrimeServiceTests.swift",
"Crimes/Endpoints/CrimesEndpointTests.swift",
"Crimes/Mocks/CrimeMockCache.swift",
"Crimes/Models/CrimeCategoryTests.swift",
"Crimes/Models/CrimeLocationTypeTests.swift",
"Crimes/Models/CrimeTests.swift",
"Extensions/DateFormatter+PoliceDataAPITests.swift",
"Extensions/JSONDecoderDateDecodingStrategy+PoliceDataAPITests.swift",
"Extensions/StringHTMLTests.swift",
"Extensions/URL+QueryItemTests.swift",
"General/Models/ContactDetailsTests.swift",
"General/Models/GenderTests.swift",
"General/Models/LocationTests.swift",
"General/Models/MKCoordinateRegionContainsCoordinateTests.swift",
"General/Models/PoliceOfficerTests.swift",
"Helpers/Data+LoadFromFile.swift",
"Helpers/JSONDecoder+DecodeFromFile.swift",
"Helpers/MockError.swift",
"Helpers/URLProtocolMock.swift",
"Helpers/URLSessionConfiguration+Mock.swift",
"Helpers/XCTestCase+URLProtocolMock.swift",
"Mocks/Cache/MockCache.swift",
"Mocks/Client/MockAPIClient.swift",
"Mocks/CoreLocation/CLLocationCoordinate2D+Mocks.swift",
"Mocks/MapKit/MKCoordinateRegion+Mocks.swift",
"Mocks/Models/CaseHistory+Mocks.swift",
"Mocks/Models/ContactDetails+Mocks.swift",
"Mocks/Models/Crime+Mocks.swift",
"Mocks/Models/CrimeCategory+Mocks.swift",
"Mocks/Models/CrimeLocationType+Mocks.swift",
"Mocks/Models/DataSet+Mocks.swift",
"Mocks/Models/EngagementMethod+Mocks.swift",
"Mocks/Models/Link+Mocks.swift",
"Mocks/Models/Location+Mocks.swift",
"Mocks/Models/Neighbourhood+Mocks.swift",
"Mocks/Models/NeighbourhoodLocation+Mocks.swift",
"Mocks/Models/NeighbourhoodPolicingTeam+Mocks.swift",
"Mocks/Models/NeighbourhoodPriority+Mocks.swift",
"Mocks/Models/NeighbourhoodReference+Mocks.swift",
"Mocks/Models/Outcome+Mocks.swift",
"Mocks/Models/OutcomeCategory+Mocks.swift",
"Mocks/Models/OutcomeCrime+Mocks.swift",
"Mocks/Models/OutcomeStatus+Mocks.swift",
"Mocks/Models/PoliceForce+Mocks.swift",
"Mocks/Models/PoliceForceReference+Mocks.swift",
"Mocks/Models/PoliceOfficer+Mocks.swift",
"Mocks/Models/StopAndSearch+Mocks.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodBoundaryCachingKeyTests.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodCachingKeyTests.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodPoliceOfficersCachingKeyTests.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodPrioritiesCachingKeyTests.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodsInPoliceForceCachingKeyTests.swift",
"Neighbourhoods/Cache/NeighbourhoodDefaultCacheTests.swift",
"Neighbourhoods/Endpoints/NeighbourhoodsEndpointTests.swift",
"Neighbourhoods/Mocks/NeighbourhoodMockCache.swift",
"Neighbourhoods/Models/LinkTests.swift",
"Neighbourhoods/Models/NeighbourhoodLocationTests.swift",
"Neighbourhoods/Models/NeighbourhoodPolicingTeamTests.swift",
"Neighbourhoods/Models/NeighbourhoodPriorityTests.swift",
"Neighbourhoods/Models/NeighbourhoodReferenceTests.swift",
"Neighbourhoods/Models/NeighbourhoodTests.swift",
"Neighbourhoods/NeighbourhoodServiceTests.swift",
"Networking/JSONSerialiserTests.swift",
"Networking/MockURLProtocol.swift",
"Networking/PoliceDataAPIClientTests.swift",
"Outcomes/Cache/CachingKeys/OutcomesAtStreetLevelForStreetCachingKeyTests.swift",
"Outcomes/Cache/CachingKeys/OutcomesForCrimeCachingKeyTests.swift",
"Outcomes/Cache/OutcomeDefaultCacheTests.swift",
"Outcomes/Endpoints/OutcomesEndpointTests.swift",
"Outcomes/Mocks/OutcomeMockCache.swift",
"Outcomes/Models/CaseHistoryTests.swift",
"Outcomes/Models/OutcomeCategoryTests.swift",
"Outcomes/Models/OutcomeCrimeTests.swift",
"Outcomes/Models/OutcomeStatusDataModelTests.swift",
"Outcomes/Models/OutcomeTests.swift",
"Outcomes/OutcomeServiceTests.swift",
"PoliceForces/Cache/CachingKeys/PoliceForceCachingKeyTests.swift",
"PoliceForces/Cache/CachingKeys/PoliceForceSeniorOfficersCachingKeyTests.swift",
"PoliceForces/Cache/CachingKeys/PoliceForcesCachingKeyTests.swift",
"PoliceForces/Cache/PoliceForceDefaultCacheTests.swift",
"PoliceForces/Endpoints/PoliceForcesEndpointTests.swift",
"PoliceForces/Mocks/PoliceForceMockCache.swift",
"PoliceForces/Models/EngagementMethodTests.swift",
"PoliceForces/Models/PoliceForceReferenceTests.swift",
"PoliceForces/Models/PoliceForceTests.swift",
"PoliceForces/PoliceForceServiceTests.swift",
"StopsAndSearches/Cache/CachingKeys/StopAndSearchesAtLocationCachingKeyTests.swift",
"StopsAndSearches/Cache/CachingKeys/StopAndSearchesForPoliceForceCachingKeyTests.swift",
"StopsAndSearches/Cache/CachingKeys/StopAndSearchesWithNoLocationCachingKeyTests.swift",
"StopsAndSearches/Cache/StopAndSearchDefaultCacheTests.swift",
"StopsAndSearches/Endpoints/StopAndSearchesEndpointTests.swift",
"StopsAndSearches/Mocks/StopAndSearchMockCache.swift",
"StopsAndSearches/Models/StopAndSearchTests.swift",
"StopsAndSearches/Models/StopAndSearchTypeTests.swift",
"StopsAndSearches/StopAndSearchServiceTests.swift"
],
"target_dependencies" : [
"PoliceDataKit"
],
"type" : "test"
},
{
"c99name" : "PoliceDataKit",
"module_type" : "SwiftTarget",
"name" : "PoliceDataKit",
"path" : "Sources/PoliceDataKit",
"product_memberships" : [
"PoliceDataKit"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/PoliceDataKit/Resources/en.lproj/Localizable.strings",
"rule" : {
"process" : {
"localization" : "en"
}
}
}
],
"sources" : [
"Availability/AvailabilityError.swift",
"Availability/AvailabilityService.swift",
"Availability/Cache/AvailabilityDefaultCache.swift",
"Availability/Cache/CachingKeys/AvailableDataSetsCachingKey.swift",
"Availability/Endpoints/AvailabilityEndpoint.swift",
"Availability/Models/DataSet.swift",
"Availability/Protocols/AvailabilityCache.swift",
"Cache/CacheItem.swift",
"Cache/InMemoryCache.swift",
"Crimes/Cache/CachingKeys/CrimeCategoriesCachingKey.swift",
"Crimes/Cache/CachingKeys/CrimesForStreetCachingKey.swift",
"Crimes/Cache/CachingKeys/CrimesWithNoLocationForCategoryInPoliceForceCachingKey.swift",
"Crimes/Cache/CrimeDefaultCache.swift",
"Crimes/CrimeError.swift",
"Crimes/CrimeService.swift",
"Crimes/Endpoints/CrimesEndpoint.swift",
"Crimes/Models/Crime.swift",
"Crimes/Models/CrimeCategory.swift",
"Crimes/Models/CrimeLocationType.swift",
"Crimes/Protocols/CrimeCache.swift",
"Extensions/DateFormatter+PoliceDataAPI.swift",
"Extensions/JSONDecoder+PoliceDataAPI.swift",
"Extensions/JSONDecoderDateDecodingStrategy+PoliceDataAPI.swift",
"Extensions/String+HTML.swift",
"Extensions/URL+QueryItem.swift",
"General/Models/CLLocationCoordinate2D+Codable.swift",
"General/Models/CLLocationCoordinate2D+CustomStringConvertible.swift",
"General/Models/CLLocationCoordinate2D+Equatable.swift",
"General/Models/ContactDetails.swift",
"General/Models/Location.swift",
"General/Models/MKCoordinateRegion+ContainsCLLocationCoordinate2D.swift",
"General/Models/MKCoordinateRegion+Regions.swift",
"General/Models/PoliceOfficer.swift",
"General/Models/Street.swift",
"General/Protocols/APIClient.swift",
"General/Protocols/Cache.swift",
"General/Protocols/CachingKey.swift",
"General/Protocols/Endpoint.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodBoundaryCachingKey.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodCachingKey.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodPoliceOfficersCachingKey.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodPrioritiesCachingKey.swift",
"Neighbourhoods/Cache/CachingKeys/NeighbourhoodsInPoliceForceCachingKey.swift",
"Neighbourhoods/Cache/NeighbourhoodDefaultCache.swift",
"Neighbourhoods/Endpoints/NeighbourhoodsEndpoint.swift",
"Neighbourhoods/Models/Link.swift",
"Neighbourhoods/Models/Neighbourhood.swift",
"Neighbourhoods/Models/NeighbourhoodLocation.swift",
"Neighbourhoods/Models/NeighbourhoodPolicingTeam.swift",
"Neighbourhoods/Models/NeighbourhoodPriority.swift",
"Neighbourhoods/Models/NeighbourhoodReference.swift",
"Neighbourhoods/NeighbourhoodError.swift",
"Neighbourhoods/NeighbourhoodService.swift",
"Neighbourhoods/Protocols/NeighbourhoodCache.swift",
"Networking/JSONSerialiser.swift",
"Networking/PoliceDataAPIClient.swift",
"Networking/Serialiser.swift",
"Outcomes/Cache/CachingKeys/OutcomesAtStreetLevelForStreetCachingKey.swift",
"Outcomes/Cache/CachingKeys/OutcomesForCrimeCachingKey.swift",
"Outcomes/Cache/OutcomeDefaultCache.swift",
"Outcomes/Endpoints/OutcomesEndpoint.swift",
"Outcomes/Models/CaseHistory.swift",
"Outcomes/Models/CaseHistoryCrime.swift",
"Outcomes/Models/CaseHistoryOutcome.swift",
"Outcomes/Models/Outcome.swift",
"Outcomes/Models/OutcomeCategory.swift",
"Outcomes/Models/OutcomeCrime.swift",
"Outcomes/Models/OutcomeStatus.swift",
"Outcomes/OutcomeError.swift",
"Outcomes/OutcomeService.swift",
"Outcomes/Protocols/OutcomeCache.swift",
"PoliceDataKitFactory.swift",
"PoliceForces/Cache/CachingKeys/PoliceForceCachingKey.swift",
"PoliceForces/Cache/CachingKeys/PoliceForceSeniorOfficersCachingKey.swift",
"PoliceForces/Cache/CachingKeys/PoliceForcesCachingKey.swift",
"PoliceForces/Cache/PoliceForceDefaultCache.swift",
"PoliceForces/Endpoints/PoliceForcesEndpoint.swift",
"PoliceForces/Models/EngagementMethod.swift",
"PoliceForces/Models/PoliceForce.swift",
"PoliceForces/Models/PoliceForceReference.swift",
"PoliceForces/PoliceForceError.swift",
"PoliceForces/PoliceForceService.swift",
"PoliceForces/Protocols/PoliceForceCache.swift",
"StopAndSearches/Cache/CachingKeys/StopAndSearchesAtLocationCachingKey.swift",
"StopAndSearches/Cache/CachingKeys/StopAndSearchesForPoliceForceCachingKey.swift",
"StopAndSearches/Cache/CachingKeys/StopAndSearchesWithNoLocationCachingKey.swift",
"StopAndSearches/Cache/StopAndSearchDefaultCache.swift",
"StopAndSearches/Endpoints/StopAndSearchesEndpoint.swift",
"StopAndSearches/Models/Gender.swift",
"StopAndSearches/Models/StopAndSearch.swift",
"StopAndSearches/Models/StopAndSearchType.swift",
"StopAndSearches/Protocols/StopAndSearchCache.swift",
"StopAndSearches/StopAndSearchError.swift",
"StopAndSearches/StopAndSearchService.swift"
],
"type" : "library"
},
{
"c99name" : "IntegrationTests",
"module_type" : "SwiftTarget",
"name" : "IntegrationTests",
"path" : "Tests/IntegrationTests",
"sources" : [
"AvailabilityIntegrationTests.swift",
"CrimeIntegrationTests.swift",
"Helpers/Date+ISO8601.swift",
"NeighbourhoodIntegrationTests.swift",
"OutcomeIntegrationTests.swift",
"PoliceForceIntegrationTests.swift",
"StopAndSearchIntegrationTests.swift"
],
"target_dependencies" : [
"PoliceDataKit"
],
"type" : "test"
}
],
"tools_version" : "5.9"
}
Done.