Add -verify-all-substitution-maps frontend flag

This commit is contained in:
Joe Groff
2020-03-11 15:23:34 -07:00
parent 23f0d8ccbc
commit d06b839c03
4 changed files with 17 additions and 3 deletions

View File

@@ -56,7 +56,12 @@ SubstitutionMap::SubstitutionMap(
GenericSignature genericSig,
ArrayRef<Type> replacementTypes,
ArrayRef<ProtocolConformanceRef> conformances)
: storage(Storage::get(genericSig, replacementTypes, conformances)) { }
: storage(Storage::get(genericSig, replacementTypes, conformances)) {
#ifndef NDEBUG
if (genericSig->getASTContext().LangOpts.VerifyAllSubstitutionMaps)
verify();
#endif
}
ArrayRef<Type> SubstitutionMap::getReplacementTypesBuffer() const {
return storage ? storage->getReplacementTypes() : ArrayRef<Type>();
@@ -476,7 +481,7 @@ SubstitutionMap SubstitutionMap::subst(TypeSubstitutionFn subs,
newConformances.push_back(
conformance.subst(substType, subs, conformances, options));
}
oldConformances = oldConformances.slice(1);
}