@@ -90,15 +90,14 @@ namespace {
90
90
ArrayRef<Term> lhsSubstitutions;
91
91
ArrayRef<Term> rhsSubstitutions;
92
92
RewriteContext &ctx;
93
- SmallVectorImpl<std::pair<MutableTerm, MutableTerm> > &inducedRules;
93
+ SmallVectorImpl<InducedRule > &inducedRules;
94
94
bool debug;
95
95
96
96
public:
97
97
ConcreteTypeMatcher (ArrayRef<Term> lhsSubstitutions,
98
98
ArrayRef<Term> rhsSubstitutions,
99
99
RewriteContext &ctx,
100
- SmallVectorImpl<std::pair<MutableTerm,
101
- MutableTerm>> &inducedRules,
100
+ SmallVectorImpl<InducedRule> &inducedRules,
102
101
bool debug)
103
102
: lhsSubstitutions(lhsSubstitutions),
104
103
rhsSubstitutions (rhsSubstitutions),
@@ -205,7 +204,7 @@ namespace {
205
204
// / Returns true if a conflict was detected.
206
205
static bool unifyConcreteTypes (
207
206
Symbol lhs, Symbol rhs, RewriteContext &ctx,
208
- SmallVectorImpl<std::pair<MutableTerm, MutableTerm> > &inducedRules,
207
+ SmallVectorImpl<InducedRule > &inducedRules,
209
208
bool debug) {
210
209
auto lhsType = lhs.getConcreteType ();
211
210
auto rhsType = rhs.getConcreteType ();
@@ -253,7 +252,7 @@ static bool unifyConcreteTypes(
253
252
// / that gets recorded in the property map.
254
253
static Symbol unifySuperclasses (
255
254
Symbol lhs, Symbol rhs, RewriteContext &ctx,
256
- SmallVectorImpl<std::pair<MutableTerm, MutableTerm> > &inducedRules,
255
+ SmallVectorImpl<InducedRule > &inducedRules,
257
256
bool debug) {
258
257
if (debug) {
259
258
llvm::dbgs () << " % Unifying " << lhs << " with " << rhs << " \n " ;
@@ -310,7 +309,7 @@ static Symbol unifySuperclasses(
310
309
311
310
void PropertyBag::addProperty (
312
311
Symbol property, unsigned ruleID, RewriteContext &ctx,
313
- SmallVectorImpl<std::pair<MutableTerm, MutableTerm> > &inducedRules,
312
+ SmallVectorImpl<InducedRule > &inducedRules,
314
313
bool debug) {
315
314
316
315
switch (property.getKind ()) {
@@ -395,7 +394,7 @@ void PropertyMap::computeConcreteTypeInDomainMap() {
395
394
}
396
395
397
396
void PropertyMap::concretizeNestedTypesFromConcreteParents (
398
- SmallVectorImpl<std::pair<MutableTerm, MutableTerm> > &inducedRules) const {
397
+ SmallVectorImpl<InducedRule > &inducedRules) const {
399
398
for (const auto &props : Entries) {
400
399
if (props->getConformsTo ().empty ())
401
400
continue ;
@@ -478,7 +477,7 @@ void PropertyMap::concretizeNestedTypesFromConcreteParent(
478
477
CanType concreteType, ArrayRef<Term> substitutions,
479
478
ArrayRef<const ProtocolDecl *> conformsTo,
480
479
llvm::TinyPtrVector<ProtocolConformance *> &conformances,
481
- SmallVectorImpl<std::pair<MutableTerm, MutableTerm> > &inducedRules) const {
480
+ SmallVectorImpl<InducedRule > &inducedRules) const {
482
481
assert (requirementKind == RequirementKind::SameType ||
483
482
requirementKind == RequirementKind::Superclass);
484
483
0 commit comments