-
Notifications
You must be signed in to change notification settings - Fork 554
[Foundation] Fix nullability in NSMutableSet. #24419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Foundation] Fix nullability in NSMutableSet. #24419
Conversation
This is file 31 of 47 files with nullability disabled in Foundation. Changes: * Enabled nullable reference types * Removed 'To be added' placeholder comments * Added comprehensive XML documentation for constructors and operators * Made operator parameters nullable to match actual usage patterns * Made subtraction operator return type nullable since it returns null for empty/null first operand * Added see cref attributes for better documentation * Add extensive tests. Contributes towards #17285.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request enables nullable reference types for NSMutableSet as part of a broader effort to enable nullability across the Foundation namespace. The changes improve code safety by making null handling explicit in operator overloads and replace placeholder documentation with comprehensive XML comments.
Key Changes:
- Enabled nullable reference types by adding
#nullable enabledirective and adding proper nullable annotations - Replaced "To be added" placeholder documentation with detailed XML documentation for constructors and operators
- Made operator parameters and return types nullable with appropriate
NotNullIfNotNullattributes - Added 17 comprehensive unit tests covering all null and empty set scenarios for both addition and subtraction operators
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/Foundation/NSMutableSet.cs | Enabled nullable reference types, added XML documentation for constructors and operators, made operator signatures nullable-aware |
| tests/monotouch-test/Foundation/NSMutableSetTest.cs | Added 17 new unit tests covering edge cases for + and - operators including null, empty, and overlapping set scenarios |
| tests/cecil-tests/Documentation.KnownFailures.txt | Removed documentation failure entries for the two operators now that they have proper XML documentation |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…ullability-31-nsmutableset
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…ullability-31-nsmutableset
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ [CI Build #43d0c96] Build passed (Build packages) ✅Pipeline on Agent |
✅ [CI Build #43d0c96] Build passed (Build macOS tests) ✅Pipeline on Agent |
💻 [CI Build #43d0c96] Tests on macOS X64 - Mac Sonoma (14) passed 💻✅ All tests on macOS X64 - Mac Sonoma (14) passed. Pipeline on Agent |
💻 [CI Build #43d0c96] Tests on macOS M1 - Mac Monterey (12) passed 💻✅ All tests on macOS M1 - Mac Monterey (12) passed. Pipeline on Agent |
💻 [CI Build #43d0c96] Tests on macOS arm64 - Mac Sequoia (15) passed 💻✅ All tests on macOS arm64 - Mac Sequoia (15) passed. Pipeline on Agent |
💻 [CI Build #43d0c96] Tests on macOS M1 - Mac Ventura (13) passed 💻✅ All tests on macOS M1 - Mac Ventura (13) passed. Pipeline on Agent |
✅ [PR Build #43d0c96] Build passed (Detect API changes) ✅Pipeline on Agent |
✅ 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 |
💻 [CI Build #43d0c96] Tests on macOS arm64 - Mac Tahoe (26) passed 💻✅ All tests on macOS arm64 - Mac Tahoe (26) passed. Pipeline on Agent |
🚀 [CI Build #43d0c96] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 117 tests passed 🎉 Tests counts✅ cecil: All 1 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
This is file 31 of 47 files with nullability disabled in Foundation.
Changes:
Contributes towards #17285.