[6.0][Conformance] Always downgrade redundant conformances to marker protocols to a warning. #75426
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: Compiler versions <= 6.0 allowed redundant conformances to marker protocols within the same module. To diagnose attempts to change the un-availability of a conformance to
Sendable
, [6.0][ConformanceLookup] Don't allow skipping inherited unavailable conformances in favor of explicit available ones. #75223 made a change to not allow superseding marker protocol conformances, which inadvertently broke cases where a redundant conformance toCopyable
was written within a module.To avoid a source break, this change downgrades redundant conformances to marker protocols to warnings always. This code also isn't particularly harmful, because marker protocols don't have requirements, so there isn't the same risk of unexpected behavior as other redundant conformances. There's no particular need for this diagnostic to be an error.
Scope: Only impacts redundant conformances to marker protocols within the same module.
Issues: rdar://132346903
Original PRs: [Conformance] Always downgrade redundant conformances to marker protocols to a warning. #75425
Risk: Low; this change only opts more cases into the "downgrade to warning" path for redundant conformance diagnostics. Specifically, it replaces a check for
Sendable
to a check that the protocol is a marker protocol.Testing: Added a new test case.
Reviewers: @DougGregor