Skip to content

Commit 6150894

Browse files
authored
Merge pull request #9191 from slavapestov/substitution-map-assertion
AST: Check invariants in GenericSignature::getSubstitutionMap(SubstitionList)
2 parents a7b8184 + 504343c commit 6150894

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

lib/AST/GenericSignature.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -390,9 +390,15 @@ GenericSignature::getSubstitutionMap(SubstitutionList subs) const {
390390
if (auto paramTy = dyn_cast<GenericTypeParamType>(canTy))
391391
result.addSubstitution(paramTy,
392392
sub.getReplacement());
393-
assert(reqts.size() == sub.getConformances().size());
394-
for (auto conformance : sub.getConformances())
395-
result.addConformance(canTy, conformance);
393+
394+
auto conformances = sub.getConformances();
395+
assert(reqts.size() == conformances.size());
396+
397+
for (unsigned i = 0, e = conformances.size(); i < e; i++) {
398+
assert(reqts[i].getSecondType()->getAnyNominal() ==
399+
conformances[i].getRequirement());
400+
result.addConformance(canTy, conformances[i]);
401+
}
396402

397403
return false;
398404
});

0 commit comments

Comments
 (0)