Build Information
Successful build of SwiftletData, reference main (926565), with Swift 6.2 for macOS (SPM) on 24 Jun 2025 01:22:38 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64Build Log
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
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
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:822:91: warning: capture of non-sendable type 'T.Type' in an isolated closure
820 | - completionHandler: The completion handler that gets called during the object load.
821 | */
822 | public func loadRow<T: ADDataTable>(ofType type: T.Type, forPrimaryKeyValue key: Any, completionHandler:@escaping (T?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
823 |
824 | // Ensure the database is open
/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
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:867:49: warning: capture of non-sendable type 'T.Type' in an isolated closure
865 | - Remark: Use `%@` for value objects such as strings, numbers, and dates. Use `%K` for the name of a field. This substitution variable indicates that the substituted string should be used to look up a field name. See: https://developer.apple.com/documentation/cloudkit/ckquery
866 | */
867 | public func loadRows<T: ADDataTable>(ofType type: T.Type, matchingQuery query: String, sortBy:String = "", sortAssending:Bool = true, withParameters parameters: [Any]? = nil, completionHandler:@escaping ([T]?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
868 |
869 | // Ensure the database is open
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[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
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
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:681:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
679 | */
680 | private func fetchOrCreateCKRecord<T: ADDataTable>(_ value: T, forPrimaryKeyValue key: Any, completionHandler:@escaping (CKRecord, Error?) -> Void) throws {
681 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
682 |
683 | // Ensure the database is open
/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
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
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:740:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
738 | */
739 | public func delete<T: ADDataTable>(_ value: T, completionHandler:CloudKitRecordIDCompletionHandler? = nil) throws {
740 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
741 |
742 | // Ensure the database is open
/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
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
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:822:91: warning: capture of non-sendable type 'T.Type' in an isolated closure
820 | - completionHandler: The completion handler that gets called during the object load.
821 | */
822 | public func loadRow<T: ADDataTable>(ofType type: T.Type, forPrimaryKeyValue key: Any, completionHandler:@escaping (T?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
823 |
824 | // Ensure the database is open
/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
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:867:49: warning: capture of non-sendable type 'T.Type' in an isolated closure
865 | - Remark: Use `%@` for value objects such as strings, numbers, and dates. Use `%K` for the name of a field. This substitution variable indicates that the substituted string should be used to look up a field name. See: https://developer.apple.com/documentation/cloudkit/ckquery
866 | */
867 | public func loadRows<T: ADDataTable>(ofType type: T.Type, matchingQuery query: String, sortBy:String = "", sortAssending:Bool = true, withParameters parameters: [Any]? = nil, completionHandler:@escaping ([T]?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
868 |
869 | // Ensure the database is open
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[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
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
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:681:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
679 | */
680 | private func fetchOrCreateCKRecord<T: ADDataTable>(_ value: T, forPrimaryKeyValue key: Any, completionHandler:@escaping (CKRecord, Error?) -> Void) throws {
681 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
682 |
683 | // Ensure the database is open
/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
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
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:740:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
738 | */
739 | public func delete<T: ADDataTable>(_ value: T, completionHandler:CloudKitRecordIDCompletionHandler? = nil) throws {
740 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
741 |
742 | // Ensure the database is open
/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
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
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:822:91: warning: capture of non-sendable type 'T.Type' in an isolated closure
820 | - completionHandler: The completion handler that gets called during the object load.
821 | */
822 | public func loadRow<T: ADDataTable>(ofType type: T.Type, forPrimaryKeyValue key: Any, completionHandler:@escaping (T?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
823 |
824 | // Ensure the database is open
/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
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:867:49: warning: capture of non-sendable type 'T.Type' in an isolated closure
865 | - Remark: Use `%@` for value objects such as strings, numbers, and dates. Use `%K` for the name of a field. This substitution variable indicates that the substituted string should be used to look up a field name. See: https://developer.apple.com/documentation/cloudkit/ckquery
866 | */
867 | public func loadRows<T: ADDataTable>(ofType type: T.Type, matchingQuery query: String, sortBy:String = "", sortAssending:Bool = true, withParameters parameters: [Any]? = nil, completionHandler:@escaping ([T]?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
868 |
869 | // Ensure the database is open
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[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
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
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:681:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
679 | */
680 | private func fetchOrCreateCKRecord<T: ADDataTable>(_ value: T, forPrimaryKeyValue key: Any, completionHandler:@escaping (CKRecord, Error?) -> Void) throws {
681 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
682 |
683 | // Ensure the database is open
/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
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
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:740:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
738 | */
739 | public func delete<T: ADDataTable>(_ value: T, completionHandler:CloudKitRecordIDCompletionHandler? = nil) throws {
740 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
741 |
742 | // Ensure the database is open
/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
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
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:822:91: warning: capture of non-sendable type 'T.Type' in an isolated closure
820 | - completionHandler: The completion handler that gets called during the object load.
821 | */
822 | public func loadRow<T: ADDataTable>(ofType type: T.Type, forPrimaryKeyValue key: Any, completionHandler:@escaping (T?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
823 |
824 | // Ensure the database is open
/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
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:867:49: warning: capture of non-sendable type 'T.Type' in an isolated closure
865 | - Remark: Use `%@` for value objects such as strings, numbers, and dates. Use `%K` for the name of a field. This substitution variable indicates that the substituted string should be used to look up a field name. See: https://developer.apple.com/documentation/cloudkit/ckquery
866 | */
867 | public func loadRows<T: ADDataTable>(ofType type: T.Type, matchingQuery query: String, sortBy:String = "", sortAssending:Bool = true, withParameters parameters: [Any]? = nil, completionHandler:@escaping ([T]?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
868 |
869 | // Ensure the database is open
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[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
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
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:681:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
679 | */
680 | private func fetchOrCreateCKRecord<T: ADDataTable>(_ value: T, forPrimaryKeyValue key: Any, completionHandler:@escaping (CKRecord, Error?) -> Void) throws {
681 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
682 |
683 | // Ensure the database is open
/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
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
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:740:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
738 | */
739 | public func delete<T: ADDataTable>(_ value: T, completionHandler:CloudKitRecordIDCompletionHandler? = nil) throws {
740 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
741 |
742 | // Ensure the database is open
/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
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
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:822:91: warning: capture of non-sendable type 'T.Type' in an isolated closure
820 | - completionHandler: The completion handler that gets called during the object load.
821 | */
822 | public func loadRow<T: ADDataTable>(ofType type: T.Type, forPrimaryKeyValue key: Any, completionHandler:@escaping (T?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
823 |
824 | // Ensure the database is open
/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
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:867:49: warning: capture of non-sendable type 'T.Type' in an isolated closure
865 | - Remark: Use `%@` for value objects such as strings, numbers, and dates. Use `%K` for the name of a field. This substitution variable indicates that the substituted string should be used to look up a field name. See: https://developer.apple.com/documentation/cloudkit/ckquery
866 | */
867 | public func loadRows<T: ADDataTable>(ofType type: T.Type, matchingQuery query: String, sortBy:String = "", sortAssending:Bool = true, withParameters parameters: [Any]? = nil, completionHandler:@escaping ([T]?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
868 |
869 | // Ensure the database is open
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[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
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
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:681:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
679 | */
680 | private func fetchOrCreateCKRecord<T: ADDataTable>(_ value: T, forPrimaryKeyValue key: Any, completionHandler:@escaping (CKRecord, Error?) -> Void) throws {
681 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
682 |
683 | // Ensure the database is open
/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
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
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:740:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
738 | */
739 | public func delete<T: ADDataTable>(_ value: T, completionHandler:CloudKitRecordIDCompletionHandler? = nil) throws {
740 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
741 |
742 | // Ensure the database is open
/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
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
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:822:91: warning: capture of non-sendable type 'T.Type' in an isolated closure
820 | - completionHandler: The completion handler that gets called during the object load.
821 | */
822 | public func loadRow<T: ADDataTable>(ofType type: T.Type, forPrimaryKeyValue key: Any, completionHandler:@escaping (T?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
823 |
824 | // Ensure the database is open
/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
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:867:49: warning: capture of non-sendable type 'T.Type' in an isolated closure
865 | - Remark: Use `%@` for value objects such as strings, numbers, and dates. Use `%K` for the name of a field. This substitution variable indicates that the substituted string should be used to look up a field name. See: https://developer.apple.com/documentation/cloudkit/ckquery
866 | */
867 | public func loadRows<T: ADDataTable>(ofType type: T.Type, matchingQuery query: String, sortBy:String = "", sortAssending:Bool = true, withParameters parameters: [Any]? = nil, completionHandler:@escaping ([T]?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
868 |
869 | // Ensure the database is open
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[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
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
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:681:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
679 | */
680 | private func fetchOrCreateCKRecord<T: ADDataTable>(_ value: T, forPrimaryKeyValue key: Any, completionHandler:@escaping (CKRecord, Error?) -> Void) throws {
681 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
682 |
683 | // Ensure the database is open
/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
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
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:740:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
738 | */
739 | public func delete<T: ADDataTable>(_ value: T, completionHandler:CloudKitRecordIDCompletionHandler? = nil) throws {
740 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
741 |
742 | // Ensure the database is open
/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
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
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:822:91: warning: capture of non-sendable type 'T.Type' in an isolated closure
820 | - completionHandler: The completion handler that gets called during the object load.
821 | */
822 | public func loadRow<T: ADDataTable>(ofType type: T.Type, forPrimaryKeyValue key: Any, completionHandler:@escaping (T?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
823 |
824 | // Ensure the database is open
/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
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:867:49: warning: capture of non-sendable type 'T.Type' in an isolated closure
865 | - Remark: Use `%@` for value objects such as strings, numbers, and dates. Use `%K` for the name of a field. This substitution variable indicates that the substituted string should be used to look up a field name. See: https://developer.apple.com/documentation/cloudkit/ckquery
866 | */
867 | public func loadRows<T: ADDataTable>(ofType type: T.Type, matchingQuery query: String, sortBy:String = "", sortAssending:Bool = true, withParameters parameters: [Any]? = nil, completionHandler:@escaping ([T]?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
868 |
869 | // Ensure the database is open
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[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
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
697 |
698 | // Return found record
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:681:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
679 | */
680 | private func fetchOrCreateCKRecord<T: ADDataTable>(_ value: T, forPrimaryKeyValue key: Any, completionHandler:@escaping (CKRecord, Error?) -> Void) throws {
681 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
682 |
683 | // Ensure the database is open
/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
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
774 | }
775 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:740:13: warning: capture of non-sendable type 'T.Type' in an isolated closure
738 | */
739 | public func delete<T: ADDataTable>(_ value: T, completionHandler:CloudKitRecordIDCompletionHandler? = nil) throws {
740 | let baseType = type(of: value)
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
741 |
742 | // Ensure the database is open
/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
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
838 | } else if let record = record {
839 | do {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:822:91: warning: capture of non-sendable type 'T.Type' in an isolated closure
820 | - completionHandler: The completion handler that gets called during the object load.
821 | */
822 | public func loadRow<T: ADDataTable>(ofType type: T.Type, forPrimaryKeyValue key: Any, completionHandler:@escaping (T?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
823 |
824 | // Ensure the database is open
/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
894 | case .success(let data):
895 | do {
896 | var rows:[T] = []
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
897 |
898 | // Process all rows
/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/SharedCode/ActionDataProviders/ADiCloudProvider.swift:867:49: warning: capture of non-sendable type 'T.Type' in an isolated closure
865 | - Remark: Use `%@` for value objects such as strings, numbers, and dates. Use `%K` for the name of a field. This substitution variable indicates that the substituted string should be used to look up a field name. See: https://developer.apple.com/documentation/cloudkit/ckquery
866 | */
867 | public func loadRows<T: ADDataTable>(ofType type: T.Type, matchingQuery query: String, sortBy:String = "", sortAssending:Bool = true, withParameters parameters: [Any]? = nil, completionHandler:@escaping ([T]?, Error?) -> Void) throws {
| `- warning: capture of non-sendable type 'T.Type' in an isolated closure
868 |
869 | // Ensure the database is open
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
Build complete! (15.83s)
Fetching https://github.com/Appracatappra/SwiftletUtilities.git
Fetching https://github.com/Appracatappra/LogManager
[1/84] Fetching logmanager
[80/596] Fetching logmanager, swiftletutilities
Fetched https://github.com/Appracatappra/SwiftletUtilities.git from cache (0.96s)
Fetched https://github.com/Appracatappra/LogManager from cache (0.96s)
Computing version for https://github.com/Appracatappra/LogManager
Computed https://github.com/Appracatappra/LogManager at 2.0.4 (1.38s)
Computing version for https://github.com/Appracatappra/SwiftletUtilities.git
Computed https://github.com/Appracatappra/SwiftletUtilities.git at 2.0.6 (0.39s)
Creating working copy for https://github.com/Appracatappra/SwiftletUtilities.git
Working copy of https://github.com/Appracatappra/SwiftletUtilities.git resolved at 2.0.6
Creating working copy for https://github.com/Appracatappra/LogManager
Working copy of https://github.com/Appracatappra/LogManager resolved at 2.0.4
Build complete.
{
"dependencies" : [
{
"identity" : "swiftletutilities",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Appracatappra/SwiftletUtilities.git"
},
{
"identity" : "logmanager",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Appracatappra/LogManager"
}
],
"manifest_display_name" : "SwiftletData",
"name" : "SwiftletData",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "18.0"
},
{
"name" : "macos",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "18.0"
},
{
"name" : "watchos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "SwiftletData",
"targets" : [
"SwiftletData"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftletDataTests",
"module_type" : "SwiftTarget",
"name" : "SwiftletDataTests",
"path" : "Tests/SwiftletDataTests",
"sources" : [
"SwiftletDataTests.swift"
],
"target_dependencies" : [
"SwiftletData"
],
"type" : "test"
},
{
"c99name" : "SwiftletData",
"module_type" : "SwiftTarget",
"name" : "SwiftletData",
"path" : "Sources/SwiftletData",
"product_dependencies" : [
"SwiftletUtilities",
"LogManager"
],
"product_memberships" : [
"SwiftletData"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/SwiftletData/Resources/PrivacyInfo.xcprivacy",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"SharedCode/ActionCodable/SPON/Decodable/ADSPONDecoder.swift",
"SharedCode/ActionCodable/SPON/Decodable/ADSPONKeyedDecodingContainer.swift",
"SharedCode/ActionCodable/SPON/Decodable/ADSPONSingleValueDecodingContainer.swift",
"SharedCode/ActionCodable/SPON/Decodable/ADSPONUnkeyedDecodingContainer.swift",
"SharedCode/ActionCodable/SPON/Encodable/ADSPONEncoder.swift",
"SharedCode/ActionCodable/SPON/Encodable/ADSPONKeyedEncodingContainer.swift",
"SharedCode/ActionCodable/SPON/Encodable/ADSPONReferencingEncoder.swift",
"SharedCode/ActionCodable/SPON/Encodable/ADSPONSingleValueEncodingContainer.swift",
"SharedCode/ActionCodable/SPON/Encodable/ADSPONUnkeyedEncodingContainer.swift",
"SharedCode/ActionCodable/SQLite/Decodable/ADSQLDecoder.swift",
"SharedCode/ActionCodable/SQLite/Decodable/ADSQLKeyedDecodingContainer.swift",
"SharedCode/ActionCodable/SQLite/Decodable/ADSQLSingleValueDecodingContainer.swift",
"SharedCode/ActionCodable/SQLite/Decodable/ADSQLUnkeyedDecodingContainer.swift",
"SharedCode/ActionCodable/SQLite/Encodable/ADSQLEncoder.swift",
"SharedCode/ActionCodable/SQLite/Encodable/ADSQLKeyedEncodingContainer.swift",
"SharedCode/ActionCodable/SQLite/Encodable/ADSQLReferencingEncoder.swift",
"SharedCode/ActionCodable/SQLite/Encodable/ADSQLSingleValueEncodingContainer.swift",
"SharedCode/ActionCodable/SQLite/Encodable/ADSQLUnkeyedEncodingContainer.swift",
"SharedCode/ActionCodable/SharedElements/ADDecodingStorage.swift",
"SharedCode/ActionCodable/SharedElements/ADEncodingStorage.swift",
"SharedCode/ActionCodable/SharedElements/ADInstanceArray.swift",
"SharedCode/ActionCodable/SharedElements/ADInstanceDictionary.swift",
"SharedCode/ActionCodable/SharedElements/ADKey.swift",
"SharedCode/ActionCodable/SharedElements/ADRecord.swift",
"SharedCode/ActionDataProviders/ADSPONProvider.swift",
"SharedCode/ActionDataProviders/ADSQLiteProvider.swift",
"SharedCode/ActionDataProviders/ADiCloudProvider.swift",
"SharedCode/ActionDataProviders/Enumerations/ADDataProviderError.swift",
"SharedCode/ActionDataProviders/Enumerations/ADDataTableKeyType.swift",
"SharedCode/ActionDataProviders/Enumerations/ADSQLExecutionError.swift",
"SharedCode/ActionDataProviders/Enumerations/ADiCloudDatabaseType.swift",
"SharedCode/ActionDataProviders/Protocols/ADDataCrossReference.swift",
"SharedCode/ActionDataProviders/Protocols/ADDataProvider.swift",
"SharedCode/ActionDataProviders/Protocols/ADDataTable.swift",
"SharedCode/ActionDataProviders/SharedElements/ADColumnSchema.swift",
"SharedCode/ActionDataProviders/SharedElements/ADCrossReference.swift",
"SharedCode/ActionDataProviders/SharedElements/ADDataStore.swift",
"SharedCode/ActionDataProviders/SharedElements/ADTableSchema.swift",
"SharedCode/ActionDataProviders/SharedElements/ADTableStore.swift",
"SharedCode/ActionDataProviders/SharedElements/ADUtilities.swift",
"SharedCode/ActionSQLParser/ADSQLParser.swift",
"SharedCode/ActionSQLParser/Enumerations/ADSQLColumnType.swift",
"SharedCode/ActionSQLParser/Enumerations/ADSQLConflictHandling.swift",
"SharedCode/ActionSQLParser/Enumerations/ADSQLFunction.swift",
"SharedCode/ActionSQLParser/Enumerations/ADSQLKeyword.swift",
"SharedCode/ActionSQLParser/Enumerations/ADSQLParseError.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLBetweenExpression.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLBinaryExpression.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLCaseExpression.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLExpressionBuilder.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLForeignKeyExpression.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLFunctionExpression.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLInExpression.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLLiteralExpression.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLUnaryExpression.swift",
"SharedCode/ActionSQLParser/Expressions/ADSQLWhenExpression.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLAlterTableInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLCreateIndexInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLCreateTableInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLCreateTriggerInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLCreateViewInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLDeleteInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLDropInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLInsertInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLSelectInstruction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLTransaction.swift",
"SharedCode/ActionSQLParser/Instructions/ADSQLUpdateInstruction.swift",
"SharedCode/ActionSQLParser/Protocols/ADSQLExpression.swift",
"SharedCode/ActionSQLParser/Protocols/ADSQLInstruction.swift",
"SharedCode/ActionSQLParser/SharedElements/ADSQLColumnConstraint.swift",
"SharedCode/ActionSQLParser/SharedElements/ADSQLColumnDefinition.swift",
"SharedCode/ActionSQLParser/SharedElements/ADSQLJoinClause.swift",
"SharedCode/ActionSQLParser/SharedElements/ADSQLOrderByClause.swift",
"SharedCode/ActionSQLParser/SharedElements/ADSQLParseQueue.swift",
"SharedCode/ActionSQLParser/SharedElements/ADSQLResultColumn.swift",
"SharedCode/ActionSQLParser/SharedElements/ADSQLSetClause.swift",
"SharedCode/ActionSQLParser/SharedElements/ADSQLTableConstraint.swift"
],
"type" : "library"
}
],
"tools_version" : "6.1"
}
Done.