Avoid adding duplicate completion from contextual keyword (#26947)

This commit is contained in:
Andy
2018-09-07 12:18:03 -07:00
committed by GitHub
parent f8b6a8fc8d
commit b1430e5e2c
2 changed files with 13 additions and 6 deletions

View File

@@ -144,7 +144,14 @@ namespace ts.Completions {
getCompletionEntriesFromSymbols(symbols, entries, location, sourceFile, typeChecker, compilerOptions.target!, log, completionKind, preferences, propertyAccessToConvert, isJsxInitializer, recommendedCompletion, symbolToOriginInfoMap);
}
addRange(entries, getKeywordCompletions(keywordFilters));
if (keywordFilters !== KeywordCompletionFilters.None) {
const entryNames = arrayToSet(entries, e => e.name);
for (const keywordEntry of getKeywordCompletions(keywordFilters)) {
if (!entryNames.has(keywordEntry.name)) {
entries.push(keywordEntry);
}
}
}
for (const literal of literals) {
entries.push(createCompletionEntryForLiteral(literal));
@@ -180,7 +187,7 @@ namespace ts.Completions {
return;
}
const realName = unescapeLeadingUnderscores(name);
if (addToSeen(uniqueNames, realName) && isIdentifierText(realName, target) && !isStringANonContextualKeyword(realName)) {
if (addToSeen(uniqueNames, realName) && isIdentifierText(realName, target)) {
entries.push({
name: realName,
kind: ScriptElementKind.warning,