Skip to content

Commit cd0556d

Browse files
committed
Stop re-creating list of entry names
1 parent 8d06692 commit cd0556d

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/services/completions.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -539,23 +539,25 @@ namespace ts.Completions {
539539
);
540540

541541
if (keywordFilters !== KeywordCompletionFilters.None) {
542-
const entryNames = new Set(entries.map(e => e.name));
543542
for (const keywordEntry of getKeywordCompletions(keywordFilters, !insideJsDocTagTypeExpression && isSourceFileJS(sourceFile))) {
544-
if (isTypeOnlyLocation && isTypeKeyword(stringToToken(keywordEntry.name)!) || !entryNames.has(keywordEntry.name)) {
543+
if (isTypeOnlyLocation && isTypeKeyword(stringToToken(keywordEntry.name)!) || !uniqueNames.has(keywordEntry.name)) {
544+
uniqueNames.add(keywordEntry.name)
545545
insertSorted(entries, keywordEntry, compareCompletionEntries, /*allowDuplicates*/ true);
546546
}
547547
}
548548
}
549549

550-
const entryNames = new Set(entries.map(e => e.name));
551550
for (const keywordEntry of getContextualKeywords(contextToken, position)) {
552-
if (!entryNames.has(keywordEntry.name)) {
551+
if (!uniqueNames.has(keywordEntry.name)) {
552+
uniqueNames.add(keywordEntry.name)
553553
insertSorted(entries, keywordEntry, compareCompletionEntries, /*allowDuplicates*/ true);
554554
}
555555
}
556556

557557
for (const literal of literals) {
558-
insertSorted(entries, createCompletionEntryForLiteral(sourceFile, preferences, literal), compareCompletionEntries, /*allowDuplicates*/ true);
558+
const literalEntry = createCompletionEntryForLiteral(sourceFile, preferences, literal);
559+
uniqueNames.add(literalEntry.name)
560+
insertSorted(entries, literalEntry, compareCompletionEntries, /*allowDuplicates*/ true);
559561
}
560562

561563
if (!isChecked) {

0 commit comments

Comments
 (0)