[CodeCompletion] Store ignored arguments as Expr * instead of ConstraintLocators

This avoids the construction of `ConstraintLocator`s.
This commit is contained in:
Alex Hoppen
2022-03-18 08:30:03 +01:00
parent a8cec01c6f
commit 82fc059018
4 changed files with 36 additions and 23 deletions

View File

@@ -788,8 +788,7 @@ namespace {
CS(cs) {}
std::pair<bool, Expr *> walkToExprPre(Expr *expr) override {
if (CS.isArgumentIgnoredForCodeCompletion(
CS.getConstraintLocator(expr))) {
if (CS.isArgumentIgnoredForCodeCompletion(expr)) {
return {false, expr};
}
@@ -3648,8 +3647,7 @@ namespace {
std::pair<bool, Expr *> walkToExprPre(Expr *expr) override {
auto &CS = CG.getConstraintSystem();
if (CS.isArgumentIgnoredForCodeCompletion(
CS.getConstraintLocator(expr))) {
if (CS.isArgumentIgnoredForCodeCompletion(expr)) {
CG.setTypeForArgumentIgnoredForCompletion(expr);
return {false, expr};
}
@@ -3724,8 +3722,7 @@ namespace {
SmallVector<Expr *, 2> ignoredArgs;
getArgumentsAfterCodeCompletionToken(expr, CS, ignoredArgs);
for (auto ignoredArg : ignoredArgs) {
CS.markArgumentIgnoredForCodeCompletion(
CS.getConstraintLocator(ignoredArg));
CS.markArgumentIgnoredForCodeCompletion(ignoredArg);
}
}