Sema: Record applied disjunctions in the trail

This commit is contained in:
Slava Pestov
2024-10-01 12:14:21 -04:00
parent 8799596bed
commit 8b4a58fb02
6 changed files with 66 additions and 12 deletions

View File

@@ -12823,7 +12823,7 @@ bool ConstraintSystem::simplifyAppliedOverloads(
auto *applicableFn = result->first;
auto *fnTypeVar = applicableFn->getSecondType()->castTo<TypeVariableType>();
auto argFnType = applicableFn->getFirstType()->castTo<FunctionType>();
AppliedDisjunctions[disjunction->getLocator()] = argFnType;
recordAppliedDisjunction(disjunction->getLocator(), argFnType);
return simplifyAppliedOverloadsImpl(disjunction, fnTypeVar, argFnType,
/*numOptionalUnwraps*/ result->second,
applicableFn->getLocator());
@@ -12843,7 +12843,7 @@ bool ConstraintSystem::simplifyAppliedOverloads(
if (!disjunction)
return false;
AppliedDisjunctions[disjunction->getLocator()] = argFnType;
recordAppliedDisjunction(disjunction->getLocator(), argFnType);
return simplifyAppliedOverloadsImpl(disjunction, fnTypeVar, argFnType,
numOptionalUnwraps, locator);
}