From 7140c91245fb5a3818f46ffdb33664396bee84d4 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 7 Dec 2018 11:49:06 -0800 Subject: [PATCH] Never return undefined for cachedResponse.execute --- .../src/features/baseCodeLensProvider.ts | 2 +- .../src/features/documentSymbol.ts | 2 +- .../src/tsServer/cachedResponse.ts | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts b/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts index f48531d6767..18573c0e55e 100644 --- a/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts +++ b/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts @@ -54,7 +54,7 @@ export abstract class TypeScriptBaseCodeLensProvider implements vscode.CodeLensP } const response = await this.cachedResponse.execute(document, () => this.client.execute('navtree', { file: filepath }, token)); - if (!response || response.type !== 'response') { + if (response.type !== 'response') { return []; } diff --git a/extensions/typescript-language-features/src/features/documentSymbol.ts b/extensions/typescript-language-features/src/features/documentSymbol.ts index a08ebe0a773..787366befd4 100644 --- a/extensions/typescript-language-features/src/features/documentSymbol.ts +++ b/extensions/typescript-language-features/src/features/documentSymbol.ts @@ -43,7 +43,7 @@ class TypeScriptDocumentSymbolProvider implements vscode.DocumentSymbolProvider const args: Proto.FileRequestArgs = { file }; const response = await this.cachedResponse.execute(resource, () => this.client.execute('navtree', args, token)); - if (!response || response.type !== 'response' || !response.body) { + if (response.type !== 'response' || !response.body) { return undefined; } diff --git a/extensions/typescript-language-features/src/tsServer/cachedResponse.ts b/extensions/typescript-language-features/src/tsServer/cachedResponse.ts index d86856b8366..6f8f8102626 100644 --- a/extensions/typescript-language-features/src/tsServer/cachedResponse.ts +++ b/extensions/typescript-language-features/src/tsServer/cachedResponse.ts @@ -12,8 +12,11 @@ export class CachedResponse { private version: number = -1; private document: string = ''; - public execute(document: vscode.TextDocument, f: () => Promise>) { - if (this.matches(document)) { + public execute( + document: vscode.TextDocument, + f: () => Promise> + ): Promise> { + if (this.response && this.matches(document)) { return this.response; } return this.update(document, f());