[6.0][Conformance] Always downgrade redundant conformances to marker protocols to a warning.#75426
Merged
hborla merged 2 commits intoswiftlang:release/6.0from Jul 24, 2024
Merged
Conversation
…cols to a warning. Previous compiler versions allowed this, so we should stage the change in as a warning. This was already a warning across modules, so this change only impacts redundant conformances to marker protocols within a module. 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. (cherry picked from commit 5eb16ad)
Member
Author
|
@swift-ci please test |
DougGregor
approved these changes
Jul 23, 2024
(cherry picked from commit 286bdeb)
Member
Author
|
@swift-ci please test |
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: 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 toCopyablewas 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
Sendableto a check that the protocol is a marker protocol.Testing: Added a new test case.
Reviewers: @DougGregor