@@ -2072,10 +2072,9 @@ diagnoseMatch(ModuleDecl *module, NormalProtocolConformance *conformance,
2072
2072
(unsigned )match.MissingRequirement ->getKind ());
2073
2073
break ;
2074
2074
2075
- case MatchKind::ThrowsConflict: {
2075
+ case MatchKind::ThrowsConflict:
2076
2076
diags.diagnose (match.Witness , diag::protocol_witness_throws_conflict);
2077
2077
break ;
2078
- }
2079
2078
2080
2079
case MatchKind::OptionalityConflict: {
2081
2080
auto &adjustments = match.OptionalAdjustments ;
@@ -2146,24 +2145,20 @@ diagnoseMatch(ModuleDecl *module, NormalProtocolConformance *conformance,
2146
2145
}
2147
2146
break ;
2148
2147
}
2149
- case MatchKind::MutatingConflict: {
2148
+ case MatchKind::MutatingConflict:
2150
2149
diags.diagnose (match.Witness ,
2151
2150
diag::protocol_witness_mutation_modifier_conflict,
2152
2151
SelfAccessKind::Mutating);
2153
2152
break ;
2154
- }
2155
- case MatchKind::NonMutatingConflict: {
2156
- diags.diagnose (match.Witness ,
2157
- diag::protocol_witness_mutation_modifier_conflict,
2158
- SelfAccessKind::NonMutating);
2153
+ case MatchKind::NonMutatingConflict:
2154
+ // Don't bother about this, because a non-mutating witness can satisfy
2155
+ // a mutating requirement.
2159
2156
break ;
2160
- }
2161
- case MatchKind::ConsumingConflict: {
2157
+ case MatchKind::ConsumingConflict:
2162
2158
diags.diagnose (match.Witness ,
2163
2159
diag::protocol_witness_mutation_modifier_conflict,
2164
2160
SelfAccessKind::Consuming);
2165
2161
break ;
2166
- }
2167
2162
case MatchKind::RethrowsConflict: {
2168
2163
auto witness = match.Witness ;
2169
2164
auto diag =
0 commit comments