Build Information
Failed to build SwiftletData, reference 2.0.2 (926565), with Swift 6.3 for macOS (SPM) on 16 Apr 2026 05:28:35 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64Build Log
674 | if result != SQLITE_OK {
675 | sqlite3_finalize(stmt)
676 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
677 | throw ADDataProviderError.failedToPrepareSQL(message: "\(error)")
678 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:719:36: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
717 | if flag != SQLITE_OK {
718 | sqlite3_finalize(stmt)
719 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
720 | let msg = "Parameters: \(params!), Index: \(ndx) Error: \(error)"
721 | throw ADDataProviderError.unableToBindParameter(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:745:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
743 | if res != SQLITE_OK && res != SQLITE_DONE {
744 | sqlite3_finalize(stmt)
745 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
746 | let msg = "\(error)"
747 | throw ADDataProviderError.failedToExecuteSQL(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:798:40: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
796 | // Get column name
797 | let name = sqlite3_column_name(stmt, index)
798 | columnNames.append(String(validatingUTF8:name!)!)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
799 | // Get column type
800 | columnTypes.append(getColumnType(index:index, stmt:stmt))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:844:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
842 | let buf = sqlite3_column_decltype(stmt, index)
843 | if buf != nil {
844 | var tmp = String(validatingUTF8:buf!)!.uppercased()
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
845 | // Remove bracketed section
846 | if let pos = tmp.range(of:"(") {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:916:27: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
914 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
915 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
916 | let txt = String(validatingUTF8:uptr)!
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
917 | let set = CharacterSet(charactersIn:"-:")
918 | if txt.rangeOfCharacter(from:set) != nil {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:938:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
936 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
937 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
938 | let txt = String(validatingUTF8:uptr)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
939 | return txt
940 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 | }
198 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:265:17: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
263 | if let error = error {
264 | // Unable to check status
265 | self?.cloudKitAccountStatus = .couldNotDetermine
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
266 | Log.error(subsystem: "ADiCloudProvider", category: "init", "Unable to determine the user's CloudKit account status: \(error)")
267 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:655:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
653 | // Attempt to save record to database.
654 | iCloudDatabase?.save(record) { record, error in
655 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
656 | // Pass info to caller.
657 | handler(record, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:699:17: warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
699 | completionHandler(newRecord, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
700 | } else if let record = record {
701 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:708:118: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
706 |
707 | // Return found record
708 | completionHandler(newRecord, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
709 | }
710 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:768:38: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
766 | // Attempt to nuke record
767 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
768 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
769 | // Pass info to caller.
770 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:804:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
802 | // Attempt to nuke record
803 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
804 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
805 | // Pass info to caller.
806 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:840:39: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
838 | } else if let record = record {
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
841 | let item = try ADSQLDecoder().decode(type, from: data)
842 | completionHandler(item, nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:841:62: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
841 | let item = try ADSQLDecoder().decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
842 | completionHandler(item, nil)
843 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:850:112: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
848 | } else {
849 | // Not found
850 | completionHandler(nil, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
851 | }
852 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:903:44: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
901 | switch recordResult {
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
904 | let item = try decoder.decode(type, from: data)
905 | rows.append(item)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:904:59: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
904 | let item = try decoder.decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
905 | rows.append(item)
906 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:908:29: warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
906 | case .failure(let error):
907 | // Encountered error, pass forward
908 | completionHandler(nil, error)
| |- warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
909 | }
910 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:896:36: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a nonisolated closure. nonisolated uses in closure may race against later nonisolated uses
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a caller isolation inheriting-isolated closure. caller isolation inheriting-isolated uses in closure may race against later nonisolated uses
197 | }
198 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[111/117] Compiling SwiftletData ADSQLiteProvider.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:676:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
674 | if result != SQLITE_OK {
675 | sqlite3_finalize(stmt)
676 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
677 | throw ADDataProviderError.failedToPrepareSQL(message: "\(error)")
678 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:719:36: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
717 | if flag != SQLITE_OK {
718 | sqlite3_finalize(stmt)
719 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
720 | let msg = "Parameters: \(params!), Index: \(ndx) Error: \(error)"
721 | throw ADDataProviderError.unableToBindParameter(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:745:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
743 | if res != SQLITE_OK && res != SQLITE_DONE {
744 | sqlite3_finalize(stmt)
745 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
746 | let msg = "\(error)"
747 | throw ADDataProviderError.failedToExecuteSQL(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:798:40: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
796 | // Get column name
797 | let name = sqlite3_column_name(stmt, index)
798 | columnNames.append(String(validatingUTF8:name!)!)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
799 | // Get column type
800 | columnTypes.append(getColumnType(index:index, stmt:stmt))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:844:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
842 | let buf = sqlite3_column_decltype(stmt, index)
843 | if buf != nil {
844 | var tmp = String(validatingUTF8:buf!)!.uppercased()
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
845 | // Remove bracketed section
846 | if let pos = tmp.range(of:"(") {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:916:27: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
914 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
915 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
916 | let txt = String(validatingUTF8:uptr)!
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
917 | let set = CharacterSet(charactersIn:"-:")
918 | if txt.rangeOfCharacter(from:set) != nil {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:938:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
936 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
937 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
938 | let txt = String(validatingUTF8:uptr)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
939 | return txt
940 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 | }
198 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:265:17: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
263 | if let error = error {
264 | // Unable to check status
265 | self?.cloudKitAccountStatus = .couldNotDetermine
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
266 | Log.error(subsystem: "ADiCloudProvider", category: "init", "Unable to determine the user's CloudKit account status: \(error)")
267 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:655:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
653 | // Attempt to save record to database.
654 | iCloudDatabase?.save(record) { record, error in
655 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
656 | // Pass info to caller.
657 | handler(record, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:699:17: warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
699 | completionHandler(newRecord, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
700 | } else if let record = record {
701 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:708:118: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
706 |
707 | // Return found record
708 | completionHandler(newRecord, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
709 | }
710 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:768:38: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
766 | // Attempt to nuke record
767 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
768 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
769 | // Pass info to caller.
770 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:804:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
802 | // Attempt to nuke record
803 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
804 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
805 | // Pass info to caller.
806 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:840:39: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
838 | } else if let record = record {
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
841 | let item = try ADSQLDecoder().decode(type, from: data)
842 | completionHandler(item, nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:841:62: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
841 | let item = try ADSQLDecoder().decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
842 | completionHandler(item, nil)
843 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:850:112: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
848 | } else {
849 | // Not found
850 | completionHandler(nil, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
851 | }
852 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:903:44: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
901 | switch recordResult {
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
904 | let item = try decoder.decode(type, from: data)
905 | rows.append(item)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:904:59: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
904 | let item = try decoder.decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
905 | rows.append(item)
906 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:908:29: warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
906 | case .failure(let error):
907 | // Encountered error, pass forward
908 | completionHandler(nil, error)
| |- warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
909 | }
910 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:896:36: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a nonisolated closure. nonisolated uses in closure may race against later nonisolated uses
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a caller isolation inheriting-isolated closure. caller isolation inheriting-isolated uses in closure may race against later nonisolated uses
197 | }
198 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[112/117] Compiling SwiftletData ADiCloudProvider.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:676:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
674 | if result != SQLITE_OK {
675 | sqlite3_finalize(stmt)
676 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
677 | throw ADDataProviderError.failedToPrepareSQL(message: "\(error)")
678 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:719:36: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
717 | if flag != SQLITE_OK {
718 | sqlite3_finalize(stmt)
719 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
720 | let msg = "Parameters: \(params!), Index: \(ndx) Error: \(error)"
721 | throw ADDataProviderError.unableToBindParameter(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:745:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
743 | if res != SQLITE_OK && res != SQLITE_DONE {
744 | sqlite3_finalize(stmt)
745 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
746 | let msg = "\(error)"
747 | throw ADDataProviderError.failedToExecuteSQL(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:798:40: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
796 | // Get column name
797 | let name = sqlite3_column_name(stmt, index)
798 | columnNames.append(String(validatingUTF8:name!)!)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
799 | // Get column type
800 | columnTypes.append(getColumnType(index:index, stmt:stmt))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:844:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
842 | let buf = sqlite3_column_decltype(stmt, index)
843 | if buf != nil {
844 | var tmp = String(validatingUTF8:buf!)!.uppercased()
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
845 | // Remove bracketed section
846 | if let pos = tmp.range(of:"(") {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:916:27: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
914 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
915 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
916 | let txt = String(validatingUTF8:uptr)!
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
917 | let set = CharacterSet(charactersIn:"-:")
918 | if txt.rangeOfCharacter(from:set) != nil {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:938:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
936 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
937 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
938 | let txt = String(validatingUTF8:uptr)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
939 | return txt
940 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 | }
198 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:265:17: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
263 | if let error = error {
264 | // Unable to check status
265 | self?.cloudKitAccountStatus = .couldNotDetermine
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
266 | Log.error(subsystem: "ADiCloudProvider", category: "init", "Unable to determine the user's CloudKit account status: \(error)")
267 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:655:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
653 | // Attempt to save record to database.
654 | iCloudDatabase?.save(record) { record, error in
655 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
656 | // Pass info to caller.
657 | handler(record, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:699:17: warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
699 | completionHandler(newRecord, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
700 | } else if let record = record {
701 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:708:118: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
706 |
707 | // Return found record
708 | completionHandler(newRecord, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
709 | }
710 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:768:38: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
766 | // Attempt to nuke record
767 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
768 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
769 | // Pass info to caller.
770 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:804:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
802 | // Attempt to nuke record
803 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
804 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
805 | // Pass info to caller.
806 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:840:39: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
838 | } else if let record = record {
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
841 | let item = try ADSQLDecoder().decode(type, from: data)
842 | completionHandler(item, nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:841:62: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
841 | let item = try ADSQLDecoder().decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
842 | completionHandler(item, nil)
843 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:850:112: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
848 | } else {
849 | // Not found
850 | completionHandler(nil, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
851 | }
852 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:903:44: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
901 | switch recordResult {
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
904 | let item = try decoder.decode(type, from: data)
905 | rows.append(item)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:904:59: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
904 | let item = try decoder.decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
905 | rows.append(item)
906 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:908:29: warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
906 | case .failure(let error):
907 | // Encountered error, pass forward
908 | completionHandler(nil, error)
| |- warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
909 | }
910 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:896:36: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a nonisolated closure. nonisolated uses in closure may race against later nonisolated uses
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a caller isolation inheriting-isolated closure. caller isolation inheriting-isolated uses in closure may race against later nonisolated uses
197 | }
198 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[113/117] Compiling SwiftletData ADDataProviderError.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:676:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
674 | if result != SQLITE_OK {
675 | sqlite3_finalize(stmt)
676 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
677 | throw ADDataProviderError.failedToPrepareSQL(message: "\(error)")
678 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:719:36: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
717 | if flag != SQLITE_OK {
718 | sqlite3_finalize(stmt)
719 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
720 | let msg = "Parameters: \(params!), Index: \(ndx) Error: \(error)"
721 | throw ADDataProviderError.unableToBindParameter(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:745:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
743 | if res != SQLITE_OK && res != SQLITE_DONE {
744 | sqlite3_finalize(stmt)
745 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
746 | let msg = "\(error)"
747 | throw ADDataProviderError.failedToExecuteSQL(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:798:40: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
796 | // Get column name
797 | let name = sqlite3_column_name(stmt, index)
798 | columnNames.append(String(validatingUTF8:name!)!)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
799 | // Get column type
800 | columnTypes.append(getColumnType(index:index, stmt:stmt))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:844:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
842 | let buf = sqlite3_column_decltype(stmt, index)
843 | if buf != nil {
844 | var tmp = String(validatingUTF8:buf!)!.uppercased()
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
845 | // Remove bracketed section
846 | if let pos = tmp.range(of:"(") {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:916:27: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
914 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
915 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
916 | let txt = String(validatingUTF8:uptr)!
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
917 | let set = CharacterSet(charactersIn:"-:")
918 | if txt.rangeOfCharacter(from:set) != nil {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:938:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
936 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
937 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
938 | let txt = String(validatingUTF8:uptr)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
939 | return txt
940 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 | }
198 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:265:17: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
263 | if let error = error {
264 | // Unable to check status
265 | self?.cloudKitAccountStatus = .couldNotDetermine
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
266 | Log.error(subsystem: "ADiCloudProvider", category: "init", "Unable to determine the user's CloudKit account status: \(error)")
267 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:655:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
653 | // Attempt to save record to database.
654 | iCloudDatabase?.save(record) { record, error in
655 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
656 | // Pass info to caller.
657 | handler(record, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:699:17: warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
699 | completionHandler(newRecord, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
700 | } else if let record = record {
701 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:708:118: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
706 |
707 | // Return found record
708 | completionHandler(newRecord, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
709 | }
710 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:768:38: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
766 | // Attempt to nuke record
767 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
768 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
769 | // Pass info to caller.
770 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:804:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
802 | // Attempt to nuke record
803 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
804 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
805 | // Pass info to caller.
806 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:840:39: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
838 | } else if let record = record {
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
841 | let item = try ADSQLDecoder().decode(type, from: data)
842 | completionHandler(item, nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:841:62: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
841 | let item = try ADSQLDecoder().decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
842 | completionHandler(item, nil)
843 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:850:112: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
848 | } else {
849 | // Not found
850 | completionHandler(nil, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
851 | }
852 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:903:44: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
901 | switch recordResult {
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
904 | let item = try decoder.decode(type, from: data)
905 | rows.append(item)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:904:59: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
904 | let item = try decoder.decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
905 | rows.append(item)
906 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:908:29: warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
906 | case .failure(let error):
907 | // Encountered error, pass forward
908 | completionHandler(nil, error)
| |- warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
909 | }
910 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:896:36: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a nonisolated closure. nonisolated uses in closure may race against later nonisolated uses
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a caller isolation inheriting-isolated closure. caller isolation inheriting-isolated uses in closure may race against later nonisolated uses
197 | }
198 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[114/117] Compiling SwiftletData ADDataTableKeyType.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:676:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
674 | if result != SQLITE_OK {
675 | sqlite3_finalize(stmt)
676 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
677 | throw ADDataProviderError.failedToPrepareSQL(message: "\(error)")
678 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:719:36: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
717 | if flag != SQLITE_OK {
718 | sqlite3_finalize(stmt)
719 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
720 | let msg = "Parameters: \(params!), Index: \(ndx) Error: \(error)"
721 | throw ADDataProviderError.unableToBindParameter(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:745:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
743 | if res != SQLITE_OK && res != SQLITE_DONE {
744 | sqlite3_finalize(stmt)
745 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
746 | let msg = "\(error)"
747 | throw ADDataProviderError.failedToExecuteSQL(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:798:40: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
796 | // Get column name
797 | let name = sqlite3_column_name(stmt, index)
798 | columnNames.append(String(validatingUTF8:name!)!)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
799 | // Get column type
800 | columnTypes.append(getColumnType(index:index, stmt:stmt))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:844:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
842 | let buf = sqlite3_column_decltype(stmt, index)
843 | if buf != nil {
844 | var tmp = String(validatingUTF8:buf!)!.uppercased()
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
845 | // Remove bracketed section
846 | if let pos = tmp.range(of:"(") {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:916:27: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
914 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
915 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
916 | let txt = String(validatingUTF8:uptr)!
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
917 | let set = CharacterSet(charactersIn:"-:")
918 | if txt.rangeOfCharacter(from:set) != nil {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:938:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
936 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
937 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
938 | let txt = String(validatingUTF8:uptr)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
939 | return txt
940 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 | }
198 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:265:17: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
263 | if let error = error {
264 | // Unable to check status
265 | self?.cloudKitAccountStatus = .couldNotDetermine
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
266 | Log.error(subsystem: "ADiCloudProvider", category: "init", "Unable to determine the user's CloudKit account status: \(error)")
267 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:655:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
653 | // Attempt to save record to database.
654 | iCloudDatabase?.save(record) { record, error in
655 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
656 | // Pass info to caller.
657 | handler(record, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:699:17: warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
699 | completionHandler(newRecord, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
700 | } else if let record = record {
701 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:708:118: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
706 |
707 | // Return found record
708 | completionHandler(newRecord, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
709 | }
710 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:768:38: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
766 | // Attempt to nuke record
767 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
768 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
769 | // Pass info to caller.
770 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:804:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
802 | // Attempt to nuke record
803 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
804 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
805 | // Pass info to caller.
806 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:840:39: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
838 | } else if let record = record {
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
841 | let item = try ADSQLDecoder().decode(type, from: data)
842 | completionHandler(item, nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:841:62: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
841 | let item = try ADSQLDecoder().decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
842 | completionHandler(item, nil)
843 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:850:112: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
848 | } else {
849 | // Not found
850 | completionHandler(nil, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
851 | }
852 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:903:44: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
901 | switch recordResult {
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
904 | let item = try decoder.decode(type, from: data)
905 | rows.append(item)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:904:59: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
904 | let item = try decoder.decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
905 | rows.append(item)
906 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:908:29: warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
906 | case .failure(let error):
907 | // Encountered error, pass forward
908 | completionHandler(nil, error)
| |- warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
909 | }
910 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:896:36: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a nonisolated closure. nonisolated uses in closure may race against later nonisolated uses
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a caller isolation inheriting-isolated closure. caller isolation inheriting-isolated uses in closure may race against later nonisolated uses
197 | }
198 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[115/117] Compiling SwiftletData ADSQLExecutionError.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:676:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
674 | if result != SQLITE_OK {
675 | sqlite3_finalize(stmt)
676 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
677 | throw ADDataProviderError.failedToPrepareSQL(message: "\(error)")
678 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:719:36: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
717 | if flag != SQLITE_OK {
718 | sqlite3_finalize(stmt)
719 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
720 | let msg = "Parameters: \(params!), Index: \(ndx) Error: \(error)"
721 | throw ADDataProviderError.unableToBindParameter(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:745:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
743 | if res != SQLITE_OK && res != SQLITE_DONE {
744 | sqlite3_finalize(stmt)
745 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
746 | let msg = "\(error)"
747 | throw ADDataProviderError.failedToExecuteSQL(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:798:40: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
796 | // Get column name
797 | let name = sqlite3_column_name(stmt, index)
798 | columnNames.append(String(validatingUTF8:name!)!)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
799 | // Get column type
800 | columnTypes.append(getColumnType(index:index, stmt:stmt))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:844:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
842 | let buf = sqlite3_column_decltype(stmt, index)
843 | if buf != nil {
844 | var tmp = String(validatingUTF8:buf!)!.uppercased()
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
845 | // Remove bracketed section
846 | if let pos = tmp.range(of:"(") {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:916:27: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
914 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
915 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
916 | let txt = String(validatingUTF8:uptr)!
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
917 | let set = CharacterSet(charactersIn:"-:")
918 | if txt.rangeOfCharacter(from:set) != nil {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:938:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
936 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
937 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
938 | let txt = String(validatingUTF8:uptr)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
939 | return txt
940 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 | }
198 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:265:17: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
263 | if let error = error {
264 | // Unable to check status
265 | self?.cloudKitAccountStatus = .couldNotDetermine
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
266 | Log.error(subsystem: "ADiCloudProvider", category: "init", "Unable to determine the user's CloudKit account status: \(error)")
267 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:655:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
653 | // Attempt to save record to database.
654 | iCloudDatabase?.save(record) { record, error in
655 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
656 | // Pass info to caller.
657 | handler(record, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:699:17: warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
699 | completionHandler(newRecord, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
700 | } else if let record = record {
701 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:708:118: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
706 |
707 | // Return found record
708 | completionHandler(newRecord, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
709 | }
710 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:768:38: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
766 | // Attempt to nuke record
767 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
768 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
769 | // Pass info to caller.
770 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:804:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
802 | // Attempt to nuke record
803 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
804 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
805 | // Pass info to caller.
806 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:840:39: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
838 | } else if let record = record {
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
841 | let item = try ADSQLDecoder().decode(type, from: data)
842 | completionHandler(item, nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:841:62: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
841 | let item = try ADSQLDecoder().decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
842 | completionHandler(item, nil)
843 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:850:112: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
848 | } else {
849 | // Not found
850 | completionHandler(nil, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
851 | }
852 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:903:44: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
901 | switch recordResult {
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
904 | let item = try decoder.decode(type, from: data)
905 | rows.append(item)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:904:59: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
904 | let item = try decoder.decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
905 | rows.append(item)
906 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:908:29: warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
906 | case .failure(let error):
907 | // Encountered error, pass forward
908 | completionHandler(nil, error)
| |- warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
909 | }
910 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:896:36: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a nonisolated closure. nonisolated uses in closure may race against later nonisolated uses
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a caller isolation inheriting-isolated closure. caller isolation inheriting-isolated uses in closure may race against later nonisolated uses
197 | }
198 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[116/117] Compiling SwiftletData ADiCloudDatabaseType.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:676:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
674 | if result != SQLITE_OK {
675 | sqlite3_finalize(stmt)
676 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
677 | throw ADDataProviderError.failedToPrepareSQL(message: "\(error)")
678 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:719:36: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
717 | if flag != SQLITE_OK {
718 | sqlite3_finalize(stmt)
719 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
720 | let msg = "Parameters: \(params!), Index: \(ndx) Error: \(error)"
721 | throw ADDataProviderError.unableToBindParameter(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:745:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
743 | if res != SQLITE_OK && res != SQLITE_DONE {
744 | sqlite3_finalize(stmt)
745 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
746 | let msg = "\(error)"
747 | throw ADDataProviderError.failedToExecuteSQL(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:798:40: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
796 | // Get column name
797 | let name = sqlite3_column_name(stmt, index)
798 | columnNames.append(String(validatingUTF8:name!)!)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
799 | // Get column type
800 | columnTypes.append(getColumnType(index:index, stmt:stmt))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:844:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
842 | let buf = sqlite3_column_decltype(stmt, index)
843 | if buf != nil {
844 | var tmp = String(validatingUTF8:buf!)!.uppercased()
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
845 | // Remove bracketed section
846 | if let pos = tmp.range(of:"(") {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:916:27: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
914 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
915 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
916 | let txt = String(validatingUTF8:uptr)!
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
917 | let set = CharacterSet(charactersIn:"-:")
918 | if txt.rangeOfCharacter(from:set) != nil {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:938:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
936 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
937 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
938 | let txt = String(validatingUTF8:uptr)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
939 | return txt
940 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 | }
198 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:265:17: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
263 | if let error = error {
264 | // Unable to check status
265 | self?.cloudKitAccountStatus = .couldNotDetermine
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
266 | Log.error(subsystem: "ADiCloudProvider", category: "init", "Unable to determine the user's CloudKit account status: \(error)")
267 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:655:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
653 | // Attempt to save record to database.
654 | iCloudDatabase?.save(record) { record, error in
655 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
656 | // Pass info to caller.
657 | handler(record, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:699:17: warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
699 | completionHandler(newRecord, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
700 | } else if let record = record {
701 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:708:118: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
706 |
707 | // Return found record
708 | completionHandler(newRecord, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
709 | }
710 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:768:38: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
766 | // Attempt to nuke record
767 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
768 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
769 | // Pass info to caller.
770 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:804:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
802 | // Attempt to nuke record
803 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
804 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
805 | // Pass info to caller.
806 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:840:39: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
838 | } else if let record = record {
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
841 | let item = try ADSQLDecoder().decode(type, from: data)
842 | completionHandler(item, nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:841:62: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
841 | let item = try ADSQLDecoder().decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
842 | completionHandler(item, nil)
843 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:850:112: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
848 | } else {
849 | // Not found
850 | completionHandler(nil, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
851 | }
852 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:903:44: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
901 | switch recordResult {
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
904 | let item = try decoder.decode(type, from: data)
905 | rows.append(item)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:904:59: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
904 | let item = try decoder.decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
905 | rows.append(item)
906 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:908:29: warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
906 | case .failure(let error):
907 | // Encountered error, pass forward
908 | completionHandler(nil, error)
| |- warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
909 | }
910 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:896:36: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a nonisolated closure. nonisolated uses in closure may race against later nonisolated uses
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a caller isolation inheriting-isolated closure. caller isolation inheriting-isolated uses in closure may race against later nonisolated uses
197 | }
198 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[117/117] Compiling SwiftletData ADDataCrossReference.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:676:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
674 | if result != SQLITE_OK {
675 | sqlite3_finalize(stmt)
676 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
677 | throw ADDataProviderError.failedToPrepareSQL(message: "\(error)")
678 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:719:36: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
717 | if flag != SQLITE_OK {
718 | sqlite3_finalize(stmt)
719 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
720 | let msg = "Parameters: \(params!), Index: \(ndx) Error: \(error)"
721 | throw ADDataProviderError.unableToBindParameter(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:745:28: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
743 | if res != SQLITE_OK && res != SQLITE_DONE {
744 | sqlite3_finalize(stmt)
745 | if let error = String(validatingUTF8:sqlite3_errmsg(self.db)) {
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
746 | let msg = "\(error)"
747 | throw ADDataProviderError.failedToExecuteSQL(message: msg)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:798:40: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
796 | // Get column name
797 | let name = sqlite3_column_name(stmt, index)
798 | columnNames.append(String(validatingUTF8:name!)!)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
799 | // Get column type
800 | columnTypes.append(getColumnType(index:index, stmt:stmt))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:844:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
842 | let buf = sqlite3_column_decltype(stmt, index)
843 | if buf != nil {
844 | var tmp = String(validatingUTF8:buf!)!.uppercased()
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
845 | // Remove bracketed section
846 | if let pos = tmp.range(of:"(") {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:916:27: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
914 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
915 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
916 | let txt = String(validatingUTF8:uptr)!
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
917 | let set = CharacterSet(charactersIn:"-:")
918 | if txt.rangeOfCharacter(from:set) != nil {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADSQLiteProvider.swift:938:23: warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
936 | if let ptr = UnsafeRawPointer.init(sqlite3_column_text(stmt, index)) {
937 | let uptr = ptr.bindMemory(to:CChar.self, capacity:0)
938 | let txt = String(validatingUTF8:uptr)
| |- warning: 'init(validatingUTF8:)' is deprecated: replaced by 'String.init(validatingCString:)' [#DeprecatedDeclaration]
| `- note: use 'String.init(validatingCString:)' instead
939 | return txt
940 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- warning: capture of 'showMessage' with non-Sendable type '(String, String) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
197 | }
198 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:265:17: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
263 | if let error = error {
264 | // Unable to check status
265 | self?.cloudKitAccountStatus = .couldNotDetermine
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
266 | Log.error(subsystem: "ADiCloudProvider", category: "init", "Unable to determine the user's CloudKit account status: \(error)")
267 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:655:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
653 | // Attempt to save record to database.
654 | iCloudDatabase?.save(record) { record, error in
655 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordCompletionHandler?' (aka 'Optional<(Optional<CKRecord>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
656 | // Pass info to caller.
657 | handler(record, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:699:17: warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
697 |
698 | // Return found record
699 | completionHandler(newRecord, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(CKRecord, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
700 | } else if let record = record {
701 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:708:118: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
706 |
707 | // Return found record
708 | completionHandler(newRecord, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
709 | }
710 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:696:54: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
694 | if let err = error {
695 | // Build new CloudKit record
696 | let newRecord = CKRecord(recordType: baseType.tableName, recordID: recordKey)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:768:38: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
766 | // Attempt to nuke record
767 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
768 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
769 | // Pass info to caller.
770 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of 'baseType' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:773:126: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
771 | } else if let err = error {
772 | // Report error
773 | Log.error(subsystem: "ADiCloudProvider", category: "delete", "Unable to delete `\(cloudkitKey)` to \(baseType.tableName): \(err)")
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:804:30: warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
802 | // Attempt to nuke record
803 | iCloudDatabase?.delete(withRecordID: recordKey) { recordID, error in
804 | if let handler = completionHandler {
| |- warning: capture of 'completionHandler' with non-Sendable type 'ADiCloudProvider.CloudKitRecordIDCompletionHandler?' (aka 'Optional<(Optional<CKRecord.ID>, Optional<any Error>) -> ()>') in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
805 | // Pass info to caller.
806 | handler(recordID, error)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| |- warning: capture of 'completionHandler' with non-Sendable type '(T?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:840:39: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
838 | } else if let record = record {
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider?' in a '@Sendable' closure [#SendableClosureCaptures]
841 | let item = try ADSQLDecoder().decode(type, from: data)
842 | completionHandler(item, nil)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:841:62: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
839 | do {
840 | if let data = try self?.buildADRecord(from: record) {
841 | let item = try ADSQLDecoder().decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
842 | completionHandler(item, nil)
843 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:850:112: warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
848 | } else {
849 | // Not found
850 | completionHandler(nil, ADSQLExecutionError.noRowsReturned(message: "Record not found for key \(key)."))
| `- warning: capture of 'key' with non-Sendable type 'Any' in a '@Sendable' closure [#SendableClosureCaptures]
851 | }
852 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:837:17: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
835 | if let err = error {
836 | // Encountered error, pass forward
837 | completionHandler(nil, err)
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:903:44: warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
53 | - Remark: The `ADiCloudProvider` will automatically create any required iCloud Table Schemas from a class instance if one does not already exist. In addition, `ADiCloudProvider` contains routines to preregister or update the schema classes conforming to the `ADDataTable` protocol which will build or modify the database schemas as required.
54 | */
55 | open class ADiCloudProvider {
| `- note: class 'ADiCloudProvider' does not conform to the 'Sendable' protocol
56 |
57 | // MARK: - Type Aliases
:
901 | switch recordResult {
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
| `- warning: capture of 'self' with non-Sendable type 'ADiCloudProvider' in a '@Sendable' closure [#SendableClosureCaptures]
904 | let item = try decoder.decode(type, from: data)
905 | rows.append(item)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:904:59: warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
902 | case .success(let record):
903 | let data = try self.buildADRecord(from: record)
904 | let item = try decoder.decode(type, from: data)
| `- warning: capture of 'type' with non-Sendable type 'T.Type' in a '@Sendable' closure [#SendableClosureCaptures]
905 | rows.append(item)
906 | case .failure(let error):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:908:29: warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
906 | case .failure(let error):
907 | // Encountered error, pass forward
908 | completionHandler(nil, error)
| |- warning: capture of 'completionHandler' with non-Sendable type '([T]?, (any Error)?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
909 | }
910 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:896:36: warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-Sendable type 'T.Type' in an isolated closure [#SendableMetatypes]
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:150:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
148 | DispatchQueue.main.async {
149 | let title = "Unable to \(action)"
150 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a nonisolated closure. nonisolated uses in closure may race against later nonisolated uses
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:196:17: error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
194 | DispatchQueue.main.async {
195 | let title = "Unable to \(action)"
196 | showMessage(title, description)
| |- error: sending 'showMessage' risks causing data races [#SendingRisksDataRace]
| `- note: task-isolated 'showMessage' is captured by a caller isolation inheriting-isolated closure. caller isolation inheriting-isolated uses in closure may race against later nonisolated uses
197 | }
198 | }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
BUILD FAILURE 6.3 macosSpm