[6.0][Concurrency] Don't warn about re-stating inherited unavailable conformances to Sendable
.
#75360
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 Sendable
conformances and don't re-state the conformance so that the programmer is aware that they're responsible for upholding the promises ofSendable
without the compiler's help. This checking was completely skipped for inherited, unavailableSendable
conformances 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 Sendable
conformance: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