Re-try a failingConstraint during salvage now that attemptFixes is turned on. This enables better missing conforms-to diagnoses.

This commit is contained in:
gregomni
2018-10-13 20:03:58 -07:00
parent 0178cb1958
commit b7df1ca1df
13 changed files with 55 additions and 30 deletions

View File

@@ -2045,6 +2045,9 @@ bool ConstraintSystem::salvage(SmallVectorImpl<Solution> &viable, Expr *expr) {
SolverState state(expr, *this, FreeTypeVariableBinding::Disallow);
state.recordFixes = true;
if (failedConstraint && simplifyConstraint(*failedConstraint) == SolutionKind::Solved)
failedConstraint = nullptr;
// Solve the system.
solve(viable);