[ConstraintSystem] Add a locator path element for the pattern of a pack expansion.

This commit is contained in:
Holly Borla
2022-11-15 21:32:30 -08:00
parent 9eccfbd3ca
commit 72d87b5ca5
5 changed files with 27 additions and 6 deletions

View File

@@ -2918,10 +2918,12 @@ namespace {
CS.setType(binding, type);
}
auto elementResultType = CS.getType(expr->getPatternExpr());
auto patternTy = CS.createTypeVariable(CS.getConstraintLocator(expr),
auto *patternLoc =
CS.getConstraintLocator(expr, ConstraintLocator::PackExpansionPattern);
auto patternTy = CS.createTypeVariable(patternLoc,
TVO_CanBindToPack |
TVO_CanBindToHole);
auto elementResultType = CS.getType(expr->getPatternExpr());
CS.addConstraint(ConstraintKind::PackElementOf, elementResultType,
patternTy, CS.getConstraintLocator(expr));