Revert [6.0][ConformanceLookup] Don't allow skipping inherited unavailable conformances in favor of explicit available ones. #75479
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: [6.0][ConformanceLookup] Don't allow skipping inherited unavailable conformances in favor of explicit available ones. #75223 exposed a crash in region analysis, presumably because it changed which
Sendable
conformance is found when there is an inherited, unavailable conformance toSendable
. I suspect the nuanced behavior of@_nonSendable
played a role. Instead of changing the behavior of@_nonSendable
, which I tried not to do in the original PR, I'm reverting this change for 6.0. This change can be landed later, because it only introduces warnings.This impact is programmers will miss out on redundant
Sendable
conformance warnings, and observe unexpected behavior for code that declares both an unavailable conformance and an available conformance toSendable
(which is already the case in Swift 5.10).Note that I did not revert [6.0][Concurrency] Don't warn about re-stating inherited unavailable conformances to
Sendable
. #75360. It should not have any impact.Scope: Only impacts redundant conformances to
Sendable
where at least one of the conformances is unavailable.Issues: rdar://132347404
Original PRs: N/A, this revert is for
release/6.0
only.Risk: Low; this change restores the behavior before [6.0][ConformanceLookup] Don't allow skipping inherited unavailable conformances in favor of explicit available ones. #75223 and [6.0][Conformance] Always downgrade redundant conformances to marker protocols to a warning. #75426.
Testing: N/A
Reviewers: N/A