Build Information
Successful build of Mixpanel, reference v5.0.0 (e26192
), with Swift 6.1 for macOS (SPM) on 25 Apr 2025 14:39:39 UTC.
Swift 6 data race errors: 11
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mixpanel/mixpanel-swift.git
Reference: v5.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/mixpanel/mixpanel-swift
* tag v5.0.0 -> FETCH_HEAD
HEAD is now at e261928 Update docs
Cloned https://github.com/mixpanel/mixpanel-swift.git
Revision (git rev-parse @):
e2619282894502f9378abe04c7f7d92fc523484a
SUCCESS checkout https://github.com/mixpanel/mixpanel-swift.git at v5.0.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "mixpanel-swift",
"name": "Mixpanel",
"url": "https://github.com/mixpanel/mixpanel-swift.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/mixpanel-swift",
"dependencies": [
]
}
]
}
Fetching https://github.com/mixpanel/mixpanel-swift.git
[1/15246] Fetching mixpanel-swift
Fetched https://github.com/mixpanel/mixpanel-swift.git from cache (2.92s)
Creating working copy for https://github.com/mixpanel/mixpanel-swift.git
Working copy of https://github.com/mixpanel/mixpanel-swift.git resolved at v5.0.0 (e261928)
warning: '.resolve-product-dependencies': dependency 'mixpanel-swift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/mixpanel/mixpanel-swift.git
https://github.com/mixpanel/mixpanel-swift.git
{
"dependencies" : [
],
"manifest_display_name" : "Mixpanel",
"name" : "Mixpanel",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "11.0"
},
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "watchos",
"version" : "4.0"
}
],
"products" : [
{
"name" : "Mixpanel",
"targets" : [
"Mixpanel"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "Mixpanel",
"module_type" : "SwiftTarget",
"name" : "Mixpanel",
"path" : "Sources",
"product_memberships" : [
"Mixpanel"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"AutomaticEvents.swift",
"AutomaticProperties.swift",
"Constants.swift",
"Data+Compression.swift",
"Error.swift",
"FileLogging.swift",
"Flush.swift",
"FlushRequest.swift",
"Group.swift",
"JSONHandler.swift",
"MPDB.swift",
"Mixpanel.swift",
"MixpanelInstance.swift",
"MixpanelLogger.swift",
"MixpanelPersistence.swift",
"MixpanelType.swift",
"Network.swift",
"People.swift",
"PrintLogging.swift",
"ReadWriteLock.swift",
"SessionMetadata.swift",
"Track.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/3] Copying PrivacyInfo.xcprivacy
[0/3] Write sources
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/25] Emitting module Mixpanel
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | class AutomaticProperties {
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
| |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
21 |
22 | static var properties: InternalProperties = {
| |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | var p = InternalProperties()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 | }()
77 |
78 | static var peopleProperties: InternalProperties = {
| |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
79 | var p = InternalProperties()
80 | let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:15:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | struct QueueConstants {
15 | static var queueSize = 5000
| |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | }
17 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 | case invalidType(type: Any)
| `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:16: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 | static var assertClosure = swiftAssertClosure
| |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:16: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 | static var assertClosure = swiftAssertClosure
17 | static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
| |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:266:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
262 | }
263 |
264 | final class MixpanelManager {
| `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
265 |
266 | static let sharedInstance = MixpanelManager()
| |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 | private var instances: [String: MixpanelInstance]
268 | private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 |
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
| |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
| |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
| |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
63 |
64 | /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
[5/27] Compiling Mixpanel Track.swift
[6/27] Compiling Mixpanel resource_bundle_accessor.swift
[7/27] Compiling Mixpanel MixpanelLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 |
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
| |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
| |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
| |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
63 |
64 | /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:23: warning: result of call to 'write(closure:)' is unused
71 | /// Enable log messages of a specific `LogLevel` to be added to the log
72 | class func enableLevel(_ level: MixpanelLogLevel) {
73 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
74 | enabledLevels.insert(level)
75 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:23: warning: result of call to 'write(closure:)' is unused
78 | /// Disable log messages of a specific `LogLevel` to prevent them from being logged
79 | class func disableLevel(_ level: MixpanelLogLevel) {
80 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
81 | enabledLevels.remove(level)
82 | }
[8/27] Compiling Mixpanel MixpanelPersistence.swift
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:24: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 |
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
| |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:24: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
59 | public class MixpanelLogger {
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
| |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:24: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
60 | private static var loggers = [MixpanelLogging]()
61 | private static var enabledLevels = Set<MixpanelLogLevel>()
62 | private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
| |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
63 |
64 | /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:23: warning: result of call to 'write(closure:)' is unused
71 | /// Enable log messages of a specific `LogLevel` to be added to the log
72 | class func enableLevel(_ level: MixpanelLogLevel) {
73 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
74 | enabledLevels.insert(level)
75 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:23: warning: result of call to 'write(closure:)' is unused
78 | /// Disable log messages of a specific `LogLevel` to prevent them from being logged
79 | class func disableLevel(_ level: MixpanelLogLevel) {
80 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
81 | enabledLevels.remove(level)
82 | }
[9/27] Compiling Mixpanel Flush.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
12 | /// the main Mixpanel instance.
13 | open class Group {
| `- note: class 'Group' does not conform to the 'Sendable' protocol
14 |
15 | let apiToken: String
:
50 | var r = InternalProperties()
51 | var p = InternalProperties()
52 | r["$token"] = self.apiToken
| `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
53 | r["$time"] = epochMilliseconds
54 | if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
55 | // $unset takes an array of property names which is supplied to this method
56 | // in the properties parameter under the key "$properties"
57 | r[action] = properties["$properties"]
| `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
58 | } else {
59 | p += properties
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:111:17: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
109 | if let timer = timer {
110 | DispatchQueue.main.async { [weak self, timer] in
111 | timer.invalidate()
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
112 | self?.timer = nil
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:112:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 | DispatchQueue.main.async { [weak self, timer] in
111 | timer.invalidate()
112 | self?.timer = nil
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
113 | }
114 | }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:89:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
87 | stopFlushTimer()
88 | DispatchQueue.main.async { [weak self] in
89 | guard let self = self else {
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
90 | return
91 | }
[10/27] Compiling Mixpanel FlushRequest.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
12 | /// the main Mixpanel instance.
13 | open class Group {
| `- note: class 'Group' does not conform to the 'Sendable' protocol
14 |
15 | let apiToken: String
:
50 | var r = InternalProperties()
51 | var p = InternalProperties()
52 | r["$token"] = self.apiToken
| `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
53 | r["$time"] = epochMilliseconds
54 | if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
55 | // $unset takes an array of property names which is supplied to this method
56 | // in the properties parameter under the key "$properties"
57 | r[action] = properties["$properties"]
| `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
58 | } else {
59 | p += properties
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:111:17: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
109 | if let timer = timer {
110 | DispatchQueue.main.async { [weak self, timer] in
111 | timer.invalidate()
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
112 | self?.timer = nil
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:112:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 | DispatchQueue.main.async { [weak self, timer] in
111 | timer.invalidate()
112 | self?.timer = nil
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
113 | }
114 | }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:89:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
87 | stopFlushTimer()
88 | DispatchQueue.main.async { [weak self] in
89 | guard let self = self else {
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
90 | return
91 | }
[11/27] Compiling Mixpanel Group.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
12 | /// the main Mixpanel instance.
13 | open class Group {
| `- note: class 'Group' does not conform to the 'Sendable' protocol
14 |
15 | let apiToken: String
:
50 | var r = InternalProperties()
51 | var p = InternalProperties()
52 | r["$token"] = self.apiToken
| `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
53 | r["$time"] = epochMilliseconds
54 | if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
55 | // $unset takes an array of property names which is supplied to this method
56 | // in the properties parameter under the key "$properties"
57 | r[action] = properties["$properties"]
| `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
58 | } else {
59 | p += properties
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:111:17: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
109 | if let timer = timer {
110 | DispatchQueue.main.async { [weak self, timer] in
111 | timer.invalidate()
| |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
112 | self?.timer = nil
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:112:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 | DispatchQueue.main.async { [weak self, timer] in
111 | timer.invalidate()
112 | self?.timer = nil
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
113 | }
114 | }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:89:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
87 | stopFlushTimer()
88 | DispatchQueue.main.async { [weak self] in
89 | guard let self = self else {
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
90 | return
91 | }
[12/27] Compiling Mixpanel AutomaticEvents.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | class AutomaticProperties {
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
| |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
21 |
22 | static var properties: InternalProperties = {
| |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | var p = InternalProperties()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 | }()
77 |
78 | static var peopleProperties: InternalProperties = {
| |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
79 | var p = InternalProperties()
80 | let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:15:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | struct QueueConstants {
15 | static var queueSize = 5000
| |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | }
17 |
[13/27] Compiling Mixpanel AutomaticProperties.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | class AutomaticProperties {
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
| |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
21 |
22 | static var properties: InternalProperties = {
| |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | var p = InternalProperties()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 | }()
77 |
78 | static var peopleProperties: InternalProperties = {
| |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
79 | var p = InternalProperties()
80 | let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:15:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | struct QueueConstants {
15 | static var queueSize = 5000
| |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | }
17 |
[14/27] Compiling Mixpanel Constants.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | class AutomaticProperties {
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
| |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 |
22 | static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | class ReadWriteLock {
| `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 | private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:16: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
21 |
22 | static var properties: InternalProperties = {
| |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | var p = InternalProperties()
24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:16: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
76 | }()
77 |
78 | static var peopleProperties: InternalProperties = {
| |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
79 | var p = InternalProperties()
80 | let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:15:16: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
13 |
14 | struct QueueConstants {
15 | static var queueSize = 5000
| |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | }
17 |
[15/27] Compiling Mixpanel Data+Compression.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 | case invalidType(type: Any)
| `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:16: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 | static var assertClosure = swiftAssertClosure
| |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:16: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 | static var assertClosure = swiftAssertClosure
17 | static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
| |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
[16/27] Compiling Mixpanel Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 | case invalidType(type: Any)
| `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:16: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 | static var assertClosure = swiftAssertClosure
| |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:16: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 | static var assertClosure = swiftAssertClosure
17 | static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
| |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
[17/27] Compiling Mixpanel FileLogging.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 | case invalidType(type: Any)
| `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:16: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 | static var assertClosure = swiftAssertClosure
| |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:16: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 | static var assertClosure = swiftAssertClosure
17 | static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
| |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
[18/27] Compiling Mixpanel JSONHandler.swift
[19/27] Compiling Mixpanel MPDB.swift
[20/27] Compiling Mixpanel ReadWriteLock.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionMetadata.swift:24:30: warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
9 | import Foundation
10 |
11 | class SessionMetadata {
| `- note: class 'SessionMetadata' does not conform to the 'Sendable' protocol
12 | var eventsCounter: UInt64 = 0
13 | var peopleCounter: UInt64 = 0
:
22 | func applicationWillEnterForeground() {
23 | trackingQueue.async { [weak self] in
24 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
25 |
26 | self.eventsCounter = 0
[21/27] Compiling Mixpanel SessionMetadata.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionMetadata.swift:24:30: warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
9 | import Foundation
10 |
11 | class SessionMetadata {
| `- note: class 'SessionMetadata' does not conform to the 'Sendable' protocol
12 | var eventsCounter: UInt64 = 0
13 | var peopleCounter: UInt64 = 0
:
22 | func applicationWillEnterForeground() {
23 | trackingQueue.async { [weak self] in
24 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
25 |
26 | self.eventsCounter = 0
[22/27] Compiling Mixpanel People.swift
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:51:30: warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
11 | /// Access to the Mixpanel People API, available as an accessible variable from
12 | /// the main Mixpanel instance.
13 | open class People {
| `- note: class 'People' does not conform to the 'Sendable' protocol
14 |
15 | /// controls the $ignore_time property in any subsequent MixpanelPeople operation.
:
49 |
50 | serialQueue.async { [weak self, action, properties] in
51 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
52 |
53 | var r = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:63:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
61 | // $unset takes an array of property names which is supplied to this method
62 | // in the properties parameter under the key "$properties"
63 | r[action] = properties["$properties"]
| `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
64 | } else {
65 | if action == "$set" || action == "$set_once" {
[23/27] Compiling Mixpanel PrintLogging.swift
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:51:30: warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
11 | /// Access to the Mixpanel People API, available as an accessible variable from
12 | /// the main Mixpanel instance.
13 | open class People {
| `- note: class 'People' does not conform to the 'Sendable' protocol
14 |
15 | /// controls the $ignore_time property in any subsequent MixpanelPeople operation.
:
49 |
50 | serialQueue.async { [weak self, action, properties] in
51 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
52 |
53 | var r = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:63:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
61 | // $unset takes an array of property names which is supplied to this method
62 | // in the properties parameter under the key "$properties"
63 | r[action] = properties["$properties"]
| `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
64 | } else {
65 | if action == "$set" || action == "$set_once" {
[24/27] Compiling Mixpanel Mixpanel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:266:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
262 | }
263 |
264 | final class MixpanelManager {
| `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
265 |
266 | static let sharedInstance = MixpanelManager()
| |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 | private var instances: [String: MixpanelInstance]
268 | private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:714:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
712 | if hasOptedOutTracking() {
713 | if let completion = completion {
714 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
715 | }
716 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:721:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
719 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
720 | if let completion = completion {
721 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
722 | }
723 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:768:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
766 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
767 | if let completion = completion {
768 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
769 | }
770 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:726:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
724 | }
725 | trackingQueue.async { [weak self, distinctId, usePeople] in
726 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
727 |
728 | // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:767:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
765 | alias: self.alias,
766 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
767 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
768 | DispatchQueue.main.async(execute: completion)
769 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:803:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
801 | if hasOptedOutTracking() {
802 | if let completion = completion {
803 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
804 | }
805 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:811:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
809 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
810 | if let completion = completion {
811 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
812 | }
813 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:819:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
817 | MixpanelLogger.error(message: "\(self) create alias called with empty alias")
818 | if let completion = completion {
819 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
820 | }
821 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:828:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
826 | guard let self = self else {
827 | if let completion = completion {
828 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
829 | }
830 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:870:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
868 | MixpanelLogger.error(message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
869 | if let completion = completion {
870 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
871 | }
872 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:826:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
824 | if alias != distinctId {
825 | trackingQueue.async { [weak self, alias] in
826 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
827 | if let completion = completion {
828 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:827:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
825 | trackingQueue.async { [weak self, alias] in
826 | guard let self = self else {
827 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
828 | DispatchQueue.main.async(execute: completion)
829 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:903:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
901 | self.archive()
902 | if let completion = completion {
903 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
904 | }
905 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:884:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
882 | flush()
883 | trackingQueue.async { [weak self] in
884 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
885 | return
886 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:902:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
900 | self.mixpanelPersistence.resetEntities()
901 | self.archive()
902 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
903 | DispatchQueue.main.async(execute: completion)
904 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
980 | if hasOptedOutTracking() {
981 | if let completion = completion {
982 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
983 | }
984 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:989:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
987 | guard let self = self else {
988 | if let completion = completion {
989 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
990 | }
991 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:996:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
994 | if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
995 | if let completion = completion {
996 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
997 | }
998 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1019:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1017 | guard let self = self else {
1018 | if let completion = completion {
1019 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1020 | }
1021 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1028:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1026 |
1027 | if let completion = completion {
1028 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1029 | }
1030 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:987:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
985 | }
986 | trackingQueue.async { [weak self, completion] in
987 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
988 | if let completion = completion {
989 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:988:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
986 | trackingQueue.async { [weak self, completion] in
987 | guard let self = self else {
988 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
989 | DispatchQueue.main.async(execute: completion)
990 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1017:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1015 |
1016 | self.networkQueue.async { [weak self, completion] in
1017 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1018 | if let completion = completion {
1019 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1018:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1016 | self.networkQueue.async { [weak self, completion] in
1017 | guard let self = self else {
1018 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1019 | DispatchQueue.main.async(execute: completion)
1020 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1023:33: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1021 | return
1022 | }
1023 | self.flushQueue(eventQueue, type: .events)
| `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1024 | self.flushQueue(peopleQueue, type: .people)
1025 | self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1024:33: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1022 | }
1023 | self.flushQueue(eventQueue, type: .events)
1024 | self.flushQueue(peopleQueue, type: .people)
| `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1025 | self.flushQueue(groupsQueue, type: .groups)
1026 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1025:33: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1023 | self.flushQueue(eventQueue, type: .events)
1024 | self.flushQueue(peopleQueue, type: .people)
1025 | self.flushQueue(groupsQueue, type: .groups)
| `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1026 |
1027 | if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1058:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1056 | func flushSuccess(type: FlushType, ids: [Int32]) {
1057 | trackingQueue.async { [weak self] in
1058 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1059 | return
1060 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1086:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1084 |
1085 | trackingQueue.async { [weak self, event, properties, epochInterval] in
1086 | guard let self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1087 | return
1088 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:76: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1105 | hadPersistedDistinctId: self.hadPersistedDistinctId)
1106 | let timedEventsSnapshot = self.trackInstance.track(event: event,
1107 | properties: properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1108 | timedEvents: shadowTimedEvents,
1109 | superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1203:23: warning: result of call to 'write(closure:)' is unused
1201 |
1202 | func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1203 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
1204 | groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1205 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1237:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1235 | let startTime = Date().timeIntervalSince1970
1236 | trackingQueue.async { [weak self, startTime, event] in
1237 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1238 | let timedEvents = self.trackInstance.time(event: event, timedEvents: self.timedEvents, startTime: startTime)
1239 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1268:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1266 | public func clearTimedEvents() {
1267 | trackingQueue.async { [weak self] in
1268 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1269 | self.readWriteLock.write {
1270 | self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1283:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1281 | public func clearTimedEvent(event: String) {
1282 | trackingQueue.async { [weak self, event] in
1283 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1284 |
1285 | let updatedTimedEvents = self.trackInstance.clearTimedEvent(event: event, timedEvents: self.timedEvents)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1308:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1306 | public func clearSuperProperties() {
1307 | trackingQueue.async { [weak self] in
1308 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1309 | self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1310 | MixpanelPersistence.saveSuperProperties(superProperties: self.superProperties, instanceName: self.name)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1327:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1325 | public func registerSuperProperties(_ properties: Properties) {
1326 | trackingQueue.async { [weak self] in
1327 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1328 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
1329 | superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1328:85: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1326 | trackingQueue.async { [weak self] in
1327 | guard let self = self else { return }
1328 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1329 | superProperties: self.superProperties)
1330 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1356:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1354 | defaultValue: MixpanelType? = nil) {
1355 | trackingQueue.async { [weak self] in
1356 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1357 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1358 | superProperties: self.superProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1357:89: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1355 | trackingQueue.async { [weak self] in
1356 | guard let self = self else { return }
1357 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1358 | superProperties: self.superProperties,
1359 | defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1359:103: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1357 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1358 | superProperties: self.superProperties,
1359 | defaultValue: defaultValue)
| `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1360 | self.readWriteLock.write {
1361 | self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1384:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1382 | public func unregisterSuperProperty(_ propertyName: String) {
1383 | trackingQueue.async { [weak self] in
1384 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1385 | let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(propertyName,
1386 | superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1403:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1401 | func updateSuperProperty(_ update: @escaping (_ superproperties: inout InternalProperties) -> Void) {
1402 | trackingQueue.async { [weak self] in
1403 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1404 | var superPropertiesShadow = self.superProperties
1405 | self.trackInstance.updateSuperProperty(update,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1405:52: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1403 | guard let self = self else { return }
1404 | var superPropertiesShadow = self.superProperties
1405 | self.trackInstance.updateSuperProperty(update,
| |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1406 | superProperties: &superPropertiesShadow)
1407 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1520:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1518 | public func optOutTracking() {
1519 | trackingQueue.async { [weak self] in
1520 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1521 | if self.people.distinctId != nil {
1522 | self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1565:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1563 | public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1564 | trackingQueue.async { [weak self] in
1565 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1566 | self.readWriteLock.write {
1567 | self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1575:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1573 | self.identify(distinctId: distinctId)
1574 | }
1575 | self.track(event: "$opt_in", properties: properties)
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1576 | }
1577 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
[25/27] Compiling Mixpanel MixpanelInstance.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:266:16: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
262 | }
263 |
264 | final class MixpanelManager {
| `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
265 |
266 | static let sharedInstance = MixpanelManager()
| |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
267 | private var instances: [String: MixpanelInstance]
268 | private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:714:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
712 | if hasOptedOutTracking() {
713 | if let completion = completion {
714 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
715 | }
716 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:721:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
719 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
720 | if let completion = completion {
721 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
722 | }
723 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:768:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
766 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
767 | if let completion = completion {
768 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
769 | }
770 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:726:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
724 | }
725 | trackingQueue.async { [weak self, distinctId, usePeople] in
726 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
727 |
728 | // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:767:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
765 | alias: self.alias,
766 | hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
767 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
768 | DispatchQueue.main.async(execute: completion)
769 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:803:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
801 | if hasOptedOutTracking() {
802 | if let completion = completion {
803 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
804 | }
805 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:811:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
809 | MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
810 | if let completion = completion {
811 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
812 | }
813 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:819:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
817 | MixpanelLogger.error(message: "\(self) create alias called with empty alias")
818 | if let completion = completion {
819 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
820 | }
821 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:828:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
826 | guard let self = self else {
827 | if let completion = completion {
828 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
829 | }
830 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:870:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
868 | MixpanelLogger.error(message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
869 | if let completion = completion {
870 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
871 | }
872 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:826:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
824 | if alias != distinctId {
825 | trackingQueue.async { [weak self, alias] in
826 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
827 | if let completion = completion {
828 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:827:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
825 | trackingQueue.async { [weak self, alias] in
826 | guard let self = self else {
827 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
828 | DispatchQueue.main.async(execute: completion)
829 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:903:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
901 | self.archive()
902 | if let completion = completion {
903 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
904 | }
905 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:884:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
882 | flush()
883 | trackingQueue.async { [weak self] in
884 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
885 | return
886 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:902:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
900 | self.mixpanelPersistence.resetEntities()
901 | self.archive()
902 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
903 | DispatchQueue.main.async(execute: completion)
904 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
980 | if hasOptedOutTracking() {
981 | if let completion = completion {
982 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
983 | }
984 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:989:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
987 | guard let self = self else {
988 | if let completion = completion {
989 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
990 | }
991 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:996:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
994 | if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
995 | if let completion = completion {
996 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
997 | }
998 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1019:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1017 | guard let self = self else {
1018 | if let completion = completion {
1019 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1020 | }
1021 | return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1028:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1026 |
1027 | if let completion = completion {
1028 | DispatchQueue.main.async(execute: completion)
| `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1029 | }
1030 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:987:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
985 | }
986 | trackingQueue.async { [weak self, completion] in
987 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
988 | if let completion = completion {
989 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:988:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
986 | trackingQueue.async { [weak self, completion] in
987 | guard let self = self else {
988 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
989 | DispatchQueue.main.async(execute: completion)
990 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1017:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1015 |
1016 | self.networkQueue.async { [weak self, completion] in
1017 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1018 | if let completion = completion {
1019 | DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1018:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1016 | self.networkQueue.async { [weak self, completion] in
1017 | guard let self = self else {
1018 | if let completion = completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1019 | DispatchQueue.main.async(execute: completion)
1020 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1023:33: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1021 | return
1022 | }
1023 | self.flushQueue(eventQueue, type: .events)
| `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1024 | self.flushQueue(peopleQueue, type: .people)
1025 | self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1024:33: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1022 | }
1023 | self.flushQueue(eventQueue, type: .events)
1024 | self.flushQueue(peopleQueue, type: .people)
| `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1025 | self.flushQueue(groupsQueue, type: .groups)
1026 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1025:33: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1023 | self.flushQueue(eventQueue, type: .events)
1024 | self.flushQueue(peopleQueue, type: .people)
1025 | self.flushQueue(groupsQueue, type: .groups)
| `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1026 |
1027 | if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1058:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1056 | func flushSuccess(type: FlushType, ids: [Int32]) {
1057 | trackingQueue.async { [weak self] in
1058 | guard let self = self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1059 | return
1060 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1086:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1084 |
1085 | trackingQueue.async { [weak self, event, properties, epochInterval] in
1086 | guard let self else {
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1087 | return
1088 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:76: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1105 | hadPersistedDistinctId: self.hadPersistedDistinctId)
1106 | let timedEventsSnapshot = self.trackInstance.track(event: event,
1107 | properties: properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1108 | timedEvents: shadowTimedEvents,
1109 | superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1203:23: warning: result of call to 'write(closure:)' is unused
1201 |
1202 | func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1203 | readWriteLock.write {
| `- warning: result of call to 'write(closure:)' is unused
1204 | groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1205 | }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1237:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1235 | let startTime = Date().timeIntervalSince1970
1236 | trackingQueue.async { [weak self, startTime, event] in
1237 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1238 | let timedEvents = self.trackInstance.time(event: event, timedEvents: self.timedEvents, startTime: startTime)
1239 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1268:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1266 | public func clearTimedEvents() {
1267 | trackingQueue.async { [weak self] in
1268 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1269 | self.readWriteLock.write {
1270 | self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1283:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1281 | public func clearTimedEvent(event: String) {
1282 | trackingQueue.async { [weak self, event] in
1283 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1284 |
1285 | let updatedTimedEvents = self.trackInstance.clearTimedEvent(event: event, timedEvents: self.timedEvents)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1308:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1306 | public func clearSuperProperties() {
1307 | trackingQueue.async { [weak self] in
1308 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1309 | self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1310 | MixpanelPersistence.saveSuperProperties(superProperties: self.superProperties, instanceName: self.name)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1327:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1325 | public func registerSuperProperties(_ properties: Properties) {
1326 | trackingQueue.async { [weak self] in
1327 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1328 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
1329 | superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1328:85: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1326 | trackingQueue.async { [weak self] in
1327 | guard let self = self else { return }
1328 | let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1329 | superProperties: self.superProperties)
1330 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1356:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1354 | defaultValue: MixpanelType? = nil) {
1355 | trackingQueue.async { [weak self] in
1356 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1357 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1358 | superProperties: self.superProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1357:89: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1355 | trackingQueue.async { [weak self] in
1356 | guard let self = self else { return }
1357 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
| `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1358 | superProperties: self.superProperties,
1359 | defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1359:103: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1357 | let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1358 | superProperties: self.superProperties,
1359 | defaultValue: defaultValue)
| `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1360 | self.readWriteLock.write {
1361 | self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1384:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1382 | public func unregisterSuperProperty(_ propertyName: String) {
1383 | trackingQueue.async { [weak self] in
1384 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1385 | let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(propertyName,
1386 | superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1403:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1401 | func updateSuperProperty(_ update: @escaping (_ superproperties: inout InternalProperties) -> Void) {
1402 | trackingQueue.async { [weak self] in
1403 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1404 | var superPropertiesShadow = self.superProperties
1405 | self.trackInstance.updateSuperProperty(update,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1405:52: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1403 | guard let self = self else { return }
1404 | var superPropertiesShadow = self.superProperties
1405 | self.trackInstance.updateSuperProperty(update,
| |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1406 | superProperties: &superPropertiesShadow)
1407 | self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1520:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1518 | public func optOutTracking() {
1519 | trackingQueue.async { [weak self] in
1520 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1521 | if self.people.distinctId != nil {
1522 | self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1565:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
76 |
77 | /// The class that represents the Mixpanel Instance
78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate {
| `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
79 |
80 | /// apiToken string that identifies the project to track data to
:
1563 | public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1564 | trackingQueue.async { [weak self] in
1565 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1566 | self.readWriteLock.write {
1567 | self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1575:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1573 | self.identify(distinctId: distinctId)
1574 | }
1575 | self.track(event: "$opt_in", properties: properties)
| `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1576 | }
1577 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
13 | /// Numbers are not NaN or infinity
14 | public protocol MixpanelType: Any {
| `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
15 | /**
16 | Checks if this object has nested object types that Mixpanel supports.
[26/27] Compiling Mixpanel MixpanelType.swift
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:80:21: warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
78 |
79 | if let hasError = error {
80 | failure(.other(hasError), data, response)
| |- warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
81 | } else {
82 | failure(.noData, data, response)
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:94:32: warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
32 | }
33 |
34 | struct Resource<A> {
| `- note: consider making generic struct 'Resource' conform to the 'Sendable' protocol
35 | let path: String
36 | let method: RequestMethod
:
92 | return
93 | }
94 | guard let result = resource.parse(responseData) else {
| `- warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
95 | failure(.parseError, data, response)
96 | return
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:99:13: warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
97 | }
98 |
99 | success(result, response)
| |- warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
100 | }.resume()
101 | }
[27/27] Compiling Mixpanel Network.swift
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:80:21: warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
78 |
79 | if let hasError = error {
80 | failure(.other(hasError), data, response)
| |- warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
81 | } else {
82 | failure(.noData, data, response)
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:94:32: warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
32 | }
33 |
34 | struct Resource<A> {
| `- note: consider making generic struct 'Resource' conform to the 'Sendable' protocol
35 | let path: String
36 | let method: RequestMethod
:
92 | return
93 | }
94 | guard let result = resource.parse(responseData) else {
| `- warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
95 | failure(.parseError, data, response)
96 | return
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:99:13: warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
97 | }
98 |
99 | success(result, response)
| |- warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
100 | }.resume()
101 | }
Build complete! (8.62s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Mixpanel",
"name" : "Mixpanel",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "11.0"
},
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "watchos",
"version" : "4.0"
}
],
"products" : [
{
"name" : "Mixpanel",
"targets" : [
"Mixpanel"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "Mixpanel",
"module_type" : "SwiftTarget",
"name" : "Mixpanel",
"path" : "Sources",
"product_memberships" : [
"Mixpanel"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"AutomaticEvents.swift",
"AutomaticProperties.swift",
"Constants.swift",
"Data+Compression.swift",
"Error.swift",
"FileLogging.swift",
"Flush.swift",
"FlushRequest.swift",
"Group.swift",
"JSONHandler.swift",
"MPDB.swift",
"Mixpanel.swift",
"MixpanelInstance.swift",
"MixpanelLogger.swift",
"MixpanelPersistence.swift",
"MixpanelType.swift",
"Network.swift",
"People.swift",
"PrintLogging.swift",
"ReadWriteLock.swift",
"SessionMetadata.swift",
"Track.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Done.