@@ -165,6 +165,13 @@ ConstraintLocator *Solution::getCalleeLocator(ConstraintLocator *locator,
165
165
});
166
166
}
167
167
168
+ ConstraintLocator *
169
+ Solution::getConstraintLocator (Expr *anchor,
170
+ ArrayRef<LocatorPathElt> path) const {
171
+ auto &cs = getConstraintSystem ();
172
+ return cs.getConstraintLocator (anchor, path);
173
+ }
174
+
168
175
// / Return the implicit access kind for a MemberRefExpr with the
169
176
// / specified base and member in the specified DeclContext.
170
177
static AccessSemantics
@@ -7325,7 +7332,8 @@ bool ConstraintSystem::applySolutionFixes(const Solution &solution) {
7325
7332
auto *primaryFix = fixes[0 ];
7326
7333
ArrayRef<ConstraintFix *> secondaryFixes{fixes.begin () + 1 , fixes.end ()};
7327
7334
7328
- auto diagnosed = primaryFix->coalesceAndDiagnose (secondaryFixes);
7335
+ auto diagnosed =
7336
+ primaryFix->coalesceAndDiagnose (solution, secondaryFixes);
7329
7337
if (primaryFix->isWarning ()) {
7330
7338
assert (diagnosed && " warnings should always be diagnosed" );
7331
7339
(void )diagnosed;
@@ -7700,13 +7708,13 @@ ProtocolConformanceRef Solution::resolveConformance(
7700
7708
return ProtocolConformanceRef::forInvalid ();
7701
7709
}
7702
7710
7703
- Type Solution::getType (const Expr *expr ) const {
7704
- auto result = nodeTypes.find (expr );
7711
+ Type Solution::getType (TypedNode node ) const {
7712
+ auto result = nodeTypes.find (node );
7705
7713
if (result != nodeTypes.end ())
7706
7714
return result->second ;
7707
7715
7708
7716
auto &cs = getConstraintSystem ();
7709
- return cs.getType (expr );
7717
+ return cs.getType (node );
7710
7718
}
7711
7719
7712
7720
void Solution::setExprTypes (Expr *expr) const {
0 commit comments