[CloudKit] Update bindings up to Xcode 27.0 Beta 3 - #26115
Conversation
Bind CKShareParticipant.isEqual: as a documented nullable override that preserves NSObject named-argument, nullability, and editor-browsing behavior while exposing CloudKit person-identity equality semantics. Add the shared xtro nullability exception required by the audited non-null native declaration, and remove the resolved CloudKit todo files for every supported platform. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7277e70c-5def-4db5-b4aa-2cafcf40c2e8
There was a problem hiding this comment.
Pull request overview
Updates the CloudKit bindings to align with Xcode 27.0 Beta 3 by explicitly binding CKShareParticipant.isEqual: with the desired nullability contract, documenting CloudKit’s person-identity equality semantics, and cleaning up xtro artifacts accordingly.
Changes:
- Added an
isEqual:binding override onCKShareParticipantwith[NullAllowed]to preserve expectedNSObject.IsEqualnull handling while documenting CloudKit-specific equality semantics. - Updated xtro ignore rules to accept the intentional nullability exception for the
IsEqualoverride. - Removed the now-resolved CloudKit xtro
.todofiles across iOS/tvOS/macOS/Mac Catalyst.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/xtro-sharpie/api-annotations-dotnet/tvOS-CloudKit.todo | Removed resolved xtro todo entry for CKShareParticipant::isEqual:. |
| tests/xtro-sharpie/api-annotations-dotnet/macOS-CloudKit.todo | Removed resolved xtro todo entry for CKShareParticipant::isEqual:. |
| tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CloudKit.todo | Removed resolved xtro todo entry for CKShareParticipant::isEqual:. |
| tests/xtro-sharpie/api-annotations-dotnet/iOS-CloudKit.todo | Removed resolved xtro todo entry for CKShareParticipant::isEqual:. |
| tests/xtro-sharpie/api-annotations-dotnet/common-CloudKit.ignore | Added an ignore entry for the intentional [NullAllowed] on CKShareParticipant.IsEqual. |
| src/cloudkit.cs | Added the CKShareParticipant.IsEqual binding override and new XML documentation describing CloudKit’s equality semantics. |
| /// <para>Equality is based on person identity rather than structural equality. Participants with different roles, | ||
| /// acceptance statuses, permissions, or other properties may compare equal.</para> | ||
| /// </remarks> | ||
| [EditorBrowsable (EditorBrowsableState.Never)] |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
🚀 [CI Build #af60a89] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 191 tests passed 🎉 Tests counts✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. [attempt 2] Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
Summary
CKShareParticipant.isEqual:as a nullable managed override.NSObject.IsEqualcontract.Validation
make worldSanity check passed)The full Mac Catalyst constructor fixture still hits the known unrelated TCC privacy abort while constructing
CoreLocationUI.CLLocationButtonin an unsigned desktop run.