Skip to content

Commit 2fa24a7

Browse files
committed
Throw when cancellation is requested
1 parent cfee41e commit 2fa24a7

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

src/compiler/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,6 +1174,7 @@ module ts {
11741174

11751175
export interface CancellationToken {
11761176
isCancellationRequested(): boolean;
1177+
throwIfCancellationRequested?(): void;
11771178
}
11781179

11791180
export interface CompilerHost {

src/services/services.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3487,7 +3487,7 @@ module ts {
34873487
var sourceFile = getSourceFile(fileName);
34883488
var node = getNodeAtPosition(sourceFile, position);
34893489

3490-
return SignatureHelp.getSignatureHelpItems(sourceFile, position, node, typeInfoResolver);
3490+
return SignatureHelp.getSignatureHelpItems(sourceFile, position, node, typeInfoResolver, cancellationToken);
34913491
}
34923492

34933493
function getSignatureHelpCurrentArgumentState(fileName: string, position: number, applicableSpanStart: number): SignatureHelpState {

src/services/signatureHelp.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,15 +333,18 @@ module ts.SignatureHelp {
333333
//}
334334
var emptyArray: any[] = [];
335335

336-
export function getSignatureHelpItems(sourceFile: SourceFile, position: number, startingNode: Node, typeInfoResolver: TypeChecker): SignatureHelpItems {
336+
export function getSignatureHelpItems(sourceFile: SourceFile, position: number, startingNode: Node, typeInfoResolver: TypeChecker, cancellationToken: CancellationToken): SignatureHelpItems {
337337
// Decide whether to show signature help
338338
var argumentList = getContainingArgumentList(startingNode);
339+
cancellationToken.throwIfCancellationRequested();
339340

340341
// Semantic filtering of signature help
341342
if (argumentList) {
342343
var call = <CallExpression>argumentList.parent;
343344
var candidates = <Signature[]>[];
344345
var resolvedSignature = typeInfoResolver.getResolvedSignature(call, candidates);
346+
cancellationToken.throwIfCancellationRequested();
347+
345348
return candidates.length
346349
? createSignatureHelpItems(candidates, resolvedSignature, argumentList)
347350
: undefined;

0 commit comments

Comments
 (0)