mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[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:
@@ -4344,26 +4344,26 @@ ConstraintSystem::SolutionKind ConstraintSystem::simplifyConformsToConstraint(
|
||||
// conform -- they only need to contain the protocol, so check that
|
||||
// separately.
|
||||
switch (kind) {
|
||||
case ConstraintKind::SelfObjectOfProtocol:
|
||||
if (auto conformance =
|
||||
TC.containsProtocol(type, protocol, DC,
|
||||
(ConformanceCheckFlags::InExpression|
|
||||
ConformanceCheckFlags::SkipConditionalRequirements))) {
|
||||
return recordConformance(*conformance);
|
||||
case ConstraintKind::SelfObjectOfProtocol: {
|
||||
auto conformance = TC.containsProtocol(
|
||||
type, protocol, DC,
|
||||
(ConformanceCheckFlags::InExpression |
|
||||
ConformanceCheckFlags::SkipConditionalRequirements));
|
||||
if (!conformance.isInvalid()) {
|
||||
return recordConformance(conformance);
|
||||
}
|
||||
break;
|
||||
} break;
|
||||
case ConstraintKind::ConformsTo:
|
||||
case ConstraintKind::LiteralConformsTo: {
|
||||
// Check whether this type conforms to the protocol.
|
||||
if (auto conformance =
|
||||
TypeChecker::conformsToProtocol(
|
||||
type, protocol, DC,
|
||||
(ConformanceCheckFlags::InExpression|
|
||||
ConformanceCheckFlags::SkipConditionalRequirements))) {
|
||||
return recordConformance(*conformance);
|
||||
auto conformance = TypeChecker::conformsToProtocol(
|
||||
type, protocol, DC,
|
||||
(ConformanceCheckFlags::InExpression |
|
||||
ConformanceCheckFlags::SkipConditionalRequirements));
|
||||
if (!conformance.isInvalid()) {
|
||||
return recordConformance(conformance);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} break;
|
||||
|
||||
default:
|
||||
llvm_unreachable("bad constraint kind");
|
||||
|
||||
Reference in New Issue
Block a user