From bb68ebb921bd77abee3fea7e521aa7aa776e90f6 Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Sun, 17 Nov 2019 20:51:04 -0800 Subject: [PATCH] Removed CancelToken and its use in parser. It's not used, so it's just overhead. --- server/src/common/cancelToken.ts | 30 ------------------------------ server/src/common/timing.ts | 4 ---- server/src/parser/parser.ts | 21 +++------------------ server/src/tests/parser.test.ts | 3 ++- 4 files changed, 5 insertions(+), 53 deletions(-) delete mode 100644 server/src/common/cancelToken.ts diff --git a/server/src/common/cancelToken.ts b/server/src/common/cancelToken.ts deleted file mode 100644 index 4c19e27f8..000000000 --- a/server/src/common/cancelToken.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* -* cancelToken.ts -* Copyright (c) Microsoft Corporation. -* Licensed under the MIT license. -* Author: Eric Traut -* -* A simple class that allows a caller to cancel an async operation. -* The async operation needs to cooperatively check for cancellation. -*/ - -export class CancelError extends Error { -} - -export class CancelToken { - private _isCanceled = false; - - cancel(): void { - this._isCanceled = true; - } - - isCanceled(): boolean { - return this._isCanceled; - } - - throwIfCanceled(): void { - if (this._isCanceled) { - throw new CancelError(); - } - } -} diff --git a/server/src/common/timing.ts b/server/src/common/timing.ts index dcf2e45d3..b69468d71 100644 --- a/server/src/common/timing.ts +++ b/server/src/common/timing.ts @@ -17,10 +17,6 @@ export class Duration { this._startTime = Date.now(); } - restart() { - this._startTime = Date.now(); - } - getDurationInMilliseconds() { const curTime = Date.now(); return curTime - this._startTime; diff --git a/server/src/parser/parser.ts b/server/src/parser/parser.ts index 6d063978b..9364e3f68 100644 --- a/server/src/parser/parser.ts +++ b/server/src/parser/parser.ts @@ -13,7 +13,6 @@ import * as assert from 'assert'; -import { CancelToken } from '../common/cancelToken'; import { Diagnostic } from '../common/diagnostic'; import { DiagnosticSink } from '../common/diagnosticSink'; import { convertOffsetsToRange, convertPositionToOffset } from '../common/positionUtils'; @@ -86,7 +85,6 @@ export class Parser { private _tokenizerOutput?: TokenizerOutput; private _tokenIndex = 0; private _parseOptions: ParseOptions = new ParseOptions(); - private _cancelToken?: CancelToken; private _diagSink: DiagnosticSink = new DiagnosticSink(); private _isInLoop = false; private _isInFinally = false; @@ -96,11 +94,11 @@ export class Parser { private _containsWildcardImport = false; parseSourceFile(fileContents: string, parseOptions: ParseOptions, - diagSink: DiagnosticSink, cancelToken?: CancelToken): ParseResults { + diagSink: DiagnosticSink): ParseResults { timingStats.tokenizeFileTime.timeOperation(() => { this._startNewParse(fileContents, 0, fileContents.length, - parseOptions, diagSink, cancelToken); + parseOptions, diagSink); }); const moduleNode = ModuleNode.create({ start: 0, length: fileContents.length }); @@ -124,8 +122,6 @@ export class Parser { statement.parent = moduleNode; moduleNode.statements.push(statement); } - - this._checkCancel(); } } }); @@ -164,20 +160,15 @@ export class Parser { } private _startNewParse(fileContents: string, textOffset: number, textLength: number, - parseOptions: ParseOptions, diagSink: DiagnosticSink, cancelToken?: CancelToken) { + parseOptions: ParseOptions, diagSink: DiagnosticSink) { this._fileContents = fileContents; this._parseOptions = parseOptions; - this._cancelToken = cancelToken; this._diagSink = diagSink; - this._checkCancel(); - // Tokenize the file contents. const tokenizer = new Tokenizer(); this._tokenizerOutput = tokenizer.tokenize(fileContents, textOffset, textLength); this._tokenIndex = 0; - - this._checkCancel(); } // stmt: simple_stmt | compound_stmt @@ -2837,12 +2828,6 @@ export class Parser { return false; } - private _checkCancel() { - if (this._cancelToken) { - this._cancelToken.throwIfCanceled(); - } - } - private _getNextToken(): Token { const token = this._tokenizerOutput!.tokens.getItemAt(this._tokenIndex); if (!this._atEof()) { diff --git a/server/src/tests/parser.test.ts b/server/src/tests/parser.test.ts index 5df3554ba..0ed77456a 100644 --- a/server/src/tests/parser.test.ts +++ b/server/src/tests/parser.test.ts @@ -4,7 +4,8 @@ * Licensed under the MIT license. * Author: Eric Traut * -* Unit tests for Python parser. +* Unit tests for Python parser. These are very basic because +* the parser gets lots of exercise in the type checker tests. */ import * as assert from 'assert';