[NFC] Fold The Tri-State In Optional<ProtocolConformanceRef>

ProtocolConformanceRef already has an invalid state.  Drop all of the
uses of Optional<ProtocolConformanceRef> and just use
ProtocolConformanceRef::forInvalid() to represent it.  Mechanically
translate all of the callers and callsites to use this new
representation.
This commit is contained in:
Robert Widmann
2019-10-29 15:11:15 -07:00
parent 9565300f1b
commit 3e1a61f425
81 changed files with 882 additions and 896 deletions

View File

@@ -74,7 +74,7 @@ static SubstitutionMap lookupBridgeToObjCProtocolSubs(SILModule &mod,
CanType target) {
auto bridgedProto =
mod.getASTContext().getProtocol(KnownProtocolKind::ObjectiveCBridgeable);
auto conf = *mod.getSwiftModule()->lookupConformance(target, bridgedProto);
auto conf = mod.getSwiftModule()->lookupConformance(target, bridgedProto);
return SubstitutionMap::getProtocolSubstitutions(conf.getRequirement(),
target, conf);
}
@@ -483,7 +483,7 @@ findBridgeToObjCFunc(SILOptFunctionBuilder &functionBuilder,
mod.getASTContext().getProtocol(KnownProtocolKind::ObjectiveCBridgeable);
auto conf = mod.getSwiftModule()->lookupConformance(sourceType, bridgedProto);
assert(conf && "_ObjectiveCBridgeable conformance should exist");
assert(!conf.isInvalid() && "_ObjectiveCBridgeable conformance should exist");
(void)conf;
// Generate code to invoke _bridgeToObjectiveC
@@ -1522,12 +1522,12 @@ static bool optimizeStaticallyKnownProtocolConformance(
// everything is completely static (`X<Int>() as? P`), in which case a
// valid conformance will be returned.
auto Conformance = SM->conformsToProtocol(SourceType, Proto);
if (!Conformance)
if (Conformance.isInvalid())
return false;
SILBuilderWithScope B(Inst);
SmallVector<ProtocolConformanceRef, 1> NewConformances;
NewConformances.push_back(Conformance.getValue());
NewConformances.push_back(Conformance);
ArrayRef<ProtocolConformanceRef> Conformances =
Ctx.AllocateCopy(NewConformances);