RequirementMachine: Factor out TypeDifference::getOriginalSubstitution()

This commit is contained in:
Slava Pestov
2022-02-04 04:10:05 -05:00
parent 60db9174e6
commit 9ee702026f
4 changed files with 13 additions and 8 deletions

View File

@@ -404,7 +404,7 @@ void PropertyMap::processTypeDifference(const TypeDifference &difference,
for (const auto &pair : difference.SameTypes) {
// Both sides are type parameters; add a same-type requirement.
MutableTerm lhsTerm(difference.LHS.getSubstitutions()[pair.first]);
auto lhsTerm = difference.getOriginalSubstitution(pair.first);
MutableTerm rhsTerm(pair.second);
if (debug) {
@@ -419,7 +419,7 @@ void PropertyMap::processTypeDifference(const TypeDifference &difference,
for (const auto &pair : difference.ConcreteTypes) {
// A type parameter is equated with a concrete type; add a concrete
// type requirement.
MutableTerm rhsTerm(difference.LHS.getSubstitutions()[pair.first]);
auto rhsTerm = difference.getOriginalSubstitution(pair.first);
MutableTerm lhsTerm(rhsTerm);
lhsTerm.add(pair.second);