Minor cleanup for label completions (#20502)

This commit is contained in:
Andy 2017-12-06 08:34:54 -08:00 committed by GitHub
parent 8dca431733
commit 06aeab8f31
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -40,8 +40,9 @@ namespace ts.Completions {
}
const contextToken = findPrecedingToken(position, sourceFile);
if (isInBreakOrContinue(contextToken)) {
return getLabelCompletionAtPosition(contextToken);
if (contextToken && isBreakOrContinueStatement(contextToken.parent)
&& (contextToken.kind === SyntaxKind.BreakKeyword || contextToken.kind === SyntaxKind.ContinueKeyword || contextToken.kind === SyntaxKind.Identifier)) {
return getLabelCompletionAtPosition(contextToken.parent);
}
const completionData = getCompletionData(typeChecker, log, sourceFile, position, allSourceFiles, options, compilerOptions.target);
@ -228,13 +229,8 @@ namespace ts.Completions {
return uniques;
}
function isInBreakOrContinue(contextToken: Node): boolean {
return contextToken && isBreakOrContinueStatement(contextToken.parent) &&
(contextToken.kind === SyntaxKind.BreakKeyword || contextToken.kind === SyntaxKind.ContinueKeyword || contextToken.kind === SyntaxKind.Identifier);
}
function getLabelCompletionAtPosition(contextToken: Node): CompletionInfo | undefined {
const entries = getLabelStatementCompletions(contextToken.parent);
function getLabelCompletionAtPosition(node: BreakOrContinueStatement): CompletionInfo | undefined {
const entries = getLabelStatementCompletions(node);
if (entries.length) {
return { isGlobalCompletion: false, isMemberCompletion: false, isNewIdentifierLocation: false, entries };
}