Skip to content

Commit 7210673

Browse files
authored
Remove redundant code related to argument string completions (#55624)
1 parent 83434de commit 7210673

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

src/compiler/checker.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1831,23 +1831,21 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
18311831
typeHasCallOrConstructSignatures,
18321832
};
18331833

1834-
function getCandidateSignaturesForStringLiteralCompletions(call: CallLikeExpression, editingArgument: Node, checkMode = CheckMode.IsForStringLiteralArgumentCompletions) {
1834+
function getCandidateSignaturesForStringLiteralCompletions(call: CallLikeExpression, editingArgument: Node) {
18351835
const candidatesSet = new Set<Signature>();
18361836
const candidates: Signature[] = [];
18371837

1838-
if (checkMode & CheckMode.IsForStringLiteralArgumentCompletions) {
1839-
// first, get candidates when inference is blocked from the source node.
1840-
runWithInferenceBlockedFromSourceNode(editingArgument, () => getResolvedSignatureWorker(call, candidates, /*argumentCount*/ undefined, checkMode));
1841-
for (const candidate of candidates) {
1842-
candidatesSet.add(candidate);
1843-
}
1844-
1845-
// reset candidates for second pass
1846-
candidates.length = 0;
1838+
// first, get candidates when inference is blocked from the source node.
1839+
runWithInferenceBlockedFromSourceNode(editingArgument, () => getResolvedSignatureWorker(call, candidates, /*argumentCount*/ undefined, CheckMode.IsForStringLiteralArgumentCompletions));
1840+
for (const candidate of candidates) {
1841+
candidatesSet.add(candidate);
18471842
}
18481843

1844+
// reset candidates for second pass
1845+
candidates.length = 0;
1846+
18491847
// next, get candidates where the source node is considered for inference.
1850-
runWithoutResolvedSignatureCaching(editingArgument, () => getResolvedSignatureWorker(call, candidates, /*argumentCount*/ undefined, checkMode & ~CheckMode.IsForStringLiteralArgumentCompletions));
1848+
runWithoutResolvedSignatureCaching(editingArgument, () => getResolvedSignatureWorker(call, candidates, /*argumentCount*/ undefined, CheckMode.Normal));
18511849
for (const candidate of candidates) {
18521850
candidatesSet.add(candidate);
18531851
}

src/compiler/types.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {
22
BaseNodeFactory,
3-
CheckMode,
43
CreateSourceFileOptions,
54
EmitHelperFactory,
65
GetCanonicalFileName,
@@ -4992,7 +4991,7 @@ export interface TypeChecker {
49924991
*/
49934992
getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined;
49944993
/** @internal */ getResolvedSignatureForSignatureHelp(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined;
4995-
/** @internal */ getCandidateSignaturesForStringLiteralCompletions(call: CallLikeExpression, editingArgument: Node, checkMode?: CheckMode): Signature[];
4994+
/** @internal */ getCandidateSignaturesForStringLiteralCompletions(call: CallLikeExpression, editingArgument: Node): Signature[];
49964995
/** @internal */ getExpandedParameters(sig: Signature): readonly (readonly Symbol[])[];
49974996
/** @internal */ hasEffectiveRestParameter(sig: Signature): boolean;
49984997
/** @internal */ containsArgumentsReference(declaration: SignatureDeclaration): boolean;

src/services/stringCompletions.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
CaseClause,
88
changeExtension,
99
CharacterCodes,
10-
CheckMode,
1110
combinePaths,
1211
comparePaths,
1312
comparePatternKeys,
@@ -406,7 +405,7 @@ function getStringLiteralCompletionEntries(sourceFile: SourceFile, node: StringL
406405
// Get string literal completions from specialized signatures of the target
407406
// i.e. declare function f(a: 'A');
408407
// f("/*completion position*/")
409-
return argumentInfo && (getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker, CheckMode.Normal)) || fromContextualType(ContextFlags.None);
408+
return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType(ContextFlags.None);
410409
}
411410
// falls through (is `require("")` or `require(""` or `import("")`)
412411

@@ -496,11 +495,11 @@ function getAlreadyUsedTypesInStringLiteralUnion(union: UnionTypeNode, current:
496495
return mapDefined(union.types, type => type !== current && isLiteralTypeNode(type) && isStringLiteral(type.literal) ? type.literal.text : undefined);
497496
}
498497

499-
function getStringLiteralCompletionsFromSignature(call: CallLikeExpression, arg: StringLiteralLike, argumentInfo: SignatureHelp.ArgumentInfoForCompletions, checker: TypeChecker, checkMode = CheckMode.IsForStringLiteralArgumentCompletions): StringLiteralCompletionsFromTypes | undefined {
498+
function getStringLiteralCompletionsFromSignature(call: CallLikeExpression, arg: StringLiteralLike, argumentInfo: SignatureHelp.ArgumentInfoForCompletions, checker: TypeChecker): StringLiteralCompletionsFromTypes | undefined {
500499
let isNewIdentifier = false;
501500
const uniques = new Map<string, true>();
502501
const editingArgument = isJsxOpeningLikeElement(call) ? Debug.checkDefined(findAncestor(arg.parent, isJsxAttribute)) : arg;
503-
const candidates = checker.getCandidateSignaturesForStringLiteralCompletions(call, editingArgument, checkMode);
502+
const candidates = checker.getCandidateSignaturesForStringLiteralCompletions(call, editingArgument);
504503
const types = flatMap(candidates, candidate => {
505504
if (!signatureHasRestParameter(candidate) && argumentInfo.argumentCount > candidate.parameters.length) return;
506505
let type = candidate.getTypeParameterAtPosition(argumentInfo.argumentIndex);

0 commit comments

Comments
 (0)