[ConstraintSystem] Use new ConformanceRequirement to record checked conformances and conditional requirements

This commit is contained in:
Pavel Yaskevich
2021-01-06 11:01:35 -08:00
parent dbfeb5eea1
commit 4917d4314b
4 changed files with 39 additions and 37 deletions

View File

@@ -5180,15 +5180,15 @@ static Optional<Requirement> getRequirement(ConstraintSystem &cs,
if (reqLoc->isConditionalRequirement()) {
auto path = reqLocator->getPath();
auto *typeReqLoc =
auto *conformanceLoc =
cs.getConstraintLocator(reqLocator->getAnchor(), path.drop_back());
auto conformances = cs.getCheckedConformances();
auto result = llvm::find_if(
conformances,
[&typeReqLoc](
[&conformanceLoc](
const std::pair<ConstraintLocator *, ProtocolConformanceRef>
&conformance) { return conformance.first == typeReqLoc; });
&conformance) { return conformance.first == conformanceLoc; });
assert(result != conformances.end());
auto conformance = result->second;