@@ -149,7 +149,8 @@ static void tryEmitContainmentFixits(InFlightDiagnostic &&diag,
149149}
150150
151151// / MARK: conformance checking
152- static bool checkInvertibleConformanceCommon (ProtocolConformance *conformance,
152+ static bool checkInvertibleConformanceCommon (DeclContext *dc,
153+ ProtocolConformance *conformance,
153154 InvertibleProtocolKind ip) {
154155 const auto kp = getKnownProtocolKind (ip);
155156 auto *proto = conformance->getProtocol ();
@@ -170,7 +171,7 @@ static bool checkInvertibleConformanceCommon(ProtocolConformance *conformance,
170171 // written in an extension, then we do not raise an error.
171172 auto inverseMarking = nom->hasInverseMarking (ip);
172173 if (inverseMarking.isAnyExplicit ()) {
173- if (conformance-> getDeclContext () == nom) {
174+ if (dc == nom) {
174175 ctx.Diags .diagnose (inverseMarking.getLoc (),
175176 diag::inverse_but_also_conforms,
176177 nom, getProtocolName (kp));
@@ -260,20 +261,21 @@ static bool checkInvertibleConformanceCommon(ProtocolConformance *conformance,
260261 // This nominal cannot conform to IP if it contains storage that does not
261262 // conform to IP.
262263 bool lacksMatchingStorage =
263- LacksMatchingStorage (nom, conformance->getDeclContext (),
264- ip, /* diagnose=*/ true ).visit ();
264+ LacksMatchingStorage (nom, dc, ip, /* diagnose=*/ true ).visit ();
265265 conforms &= !lacksMatchingStorage;
266266
267267 return conforms;
268268}
269269
270- bool swift::checkEscapableConformance (ProtocolConformance *conformance) {
271- return checkInvertibleConformanceCommon (conformance,
270+ bool swift::checkEscapableConformance (DeclContext *dc,
271+ ProtocolConformance *conformance) {
272+ return checkInvertibleConformanceCommon (dc, conformance,
272273 InvertibleProtocolKind::Escapable);
273274}
274275
275- bool swift::checkCopyableConformance (ProtocolConformance *conformance) {
276- return checkInvertibleConformanceCommon (conformance,
276+ bool swift::checkCopyableConformance (DeclContext *dc,
277+ ProtocolConformance *conformance) {
278+ return checkInvertibleConformanceCommon (dc, conformance,
277279 InvertibleProtocolKind::Copyable);
278280}
279281
0 commit comments