[6.0][Concurrency] Don't warn about re-stating inherited unavailable conformances to Sendable.#75360
Merged
hborla merged 1 commit intoswiftlang:release/6.0from Jul 19, 2024
Conversation
…rmances to `Sendable`. The unavailability check was not using the root conformance, which is where the extension declaration with the unavailability attribute is for inherited conformances, leading to bogus warnings about re-stating unchecked conformances to `Sendable`. (cherry picked from commit 69b2435)
Member
Author
|
@swift-ci please test |
DougGregor
approved these changes
Jul 19, 2024
ktoso
approved these changes
Jul 19, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation: The compiler warns on classes that inherit
@unchecked Sendableconformances and don't re-state the conformance so that the programmer is aware that they're responsible for upholding the promises ofSendablewithout the compiler's help. This checking was completely skipped for inherited, unavailableSendableconformances until [6.0][ConformanceLookup] Don't allow skipping inherited unavailable conformances in favor of explicit available ones. #75223. This exposed a bug where the unavailable check was not done on the root conformance, which lead to bogus warnings that subclasses must restate the@unchecked Sendableconformance:The fix is to look for unavailable attributes on the root conformance's decl context.
Scope: Only impacts inherited, unavailable conformances to
Sendable.Issues: rdar://132059160
Original PRs: [Concurrency] Don't warn about re-stating inherited unavailable conformances to
Sendable. #75359Risk: Low; this change effectively replaces a
conformance->getDeclContext()argument withconformance->getRootConformance()->getDeclContext(), and the only effect is skipping warnings.Testing: Added a new test exercising the lack of warning.
Reviewers: TBD