From 8b41a1ba2735e307e4c6236987cd8106d44c0828 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Mon, 10 Aug 2020 16:00:38 -0700 Subject: [PATCH] Suppress lint errors --- src/compiler/binder.ts | 3 +++ src/compiler/builder.ts | 1 + src/compiler/checker.ts | 6 ++++++ src/compiler/core.ts | 2 ++ src/compiler/emitter.ts | 1 + src/compiler/parser.ts | 3 +++ src/compiler/utilities.ts | 2 ++ src/harness/compiler.ts | 2 ++ src/harness/fourslash.ts | 1 + src/harness/harness.ts | 2 ++ src/services/refactors/extractSymbol.ts | 2 ++ src/tsserver/server.ts | 5 +++++ 12 files changed, 30 insertions(+) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 7cb321a95fa..29f24daf569 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -143,6 +143,7 @@ namespace ts { let symbolCount = 0; + // tslint:disable-next-line callable-types let Symbol: { new (flags: SymbolFlags, name: __String): Symbol }; // tslint:disable-line variable-name let classifiableNames: UnderscoreEscapedMap; @@ -2754,7 +2755,9 @@ namespace ts { // If this is a property-parameter, then also declare the property symbol into the // containing class. + // tslint:disable-next-line no-unnecessary-type-assertion if (isParameterPropertyDeclaration(node)) { + // tslint:disable-next-line no-unnecessary-type-assertion const classDeclaration = node.parent.parent; declareSymbol(classDeclaration.symbol.members!, classDeclaration.symbol, node, SymbolFlags.Property | (node.questionToken ? SymbolFlags.Optional : SymbolFlags.None), SymbolFlags.PropertyExcludes); } diff --git a/src/compiler/builder.ts b/src/compiler/builder.ts index 637e77c545f..e2a9c885a1e 100644 --- a/src/compiler/builder.ts +++ b/src/compiler/builder.ts @@ -76,6 +76,7 @@ namespace ts { if (useOldState) { // Verify the sanity of old state if (!oldState!.currentChangedFilePath) { + // tslint:disable-next-line no-unnecessary-type-assertion Debug.assert(!oldState!.affectedFiles && (!oldState!.currentAffectedFilesSignatures || !oldState!.currentAffectedFilesSignatures!.size), "Cannot reuse if only few affected files of currentChangedFile were iterated"); } if (canCopySemanticDiagnostics) { diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 656df41bb94..98020ac798a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -9476,6 +9476,7 @@ namespace ts { break; } } + // tslint:disable-next-line no-unnecessary-type-assertion return links.resolvedType!; // TODO: GH#18217 } @@ -25414,7 +25415,9 @@ namespace ts { if (node.kind === SyntaxKind.VariableDeclaration || node.kind === SyntaxKind.BindingElement) { checkVarDeclaredNamesNotShadowed(node); } + // tslint:disable-next-line no-unnecessary-type-assertion checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + // tslint:disable-next-line no-unnecessary-type-assertion checkCollisionWithGlobalPromiseInGeneratedCode(node, node.name); } } @@ -30047,9 +30050,11 @@ namespace ts { node.kind === SyntaxKind.FunctionExpression || node.kind === SyntaxKind.MethodDeclaration); if (node.flags & NodeFlags.Ambient) { + // tslint:disable-next-line no-unnecessary-type-assertion return grammarErrorOnNode(node.asteriskToken!, Diagnostics.Generators_are_not_allowed_in_an_ambient_context); } if (!node.body) { + // tslint:disable-next-line no-unnecessary-type-assertion return grammarErrorOnNode(node.asteriskToken!, Diagnostics.An_overload_signature_cannot_be_declared_as_a_generator); } } @@ -30090,6 +30095,7 @@ namespace ts { // Modifiers are never allowed on properties except for 'async' on a method declaration if (prop.modifiers) { + // tslint:disable-next-line no-unnecessary-type-assertion for (const mod of prop.modifiers!) { // TODO: GH#19955 if (mod.kind !== SyntaxKind.AsyncKeyword || prop.kind !== SyntaxKind.MethodDeclaration) { grammarErrorOnNode(mod, Diagnostics._0_modifier_cannot_be_used_here, getTextOfNode(mod)); diff --git a/src/compiler/core.ts b/src/compiler/core.ts index 17b1ec79f03..8125ec38995 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -112,12 +112,14 @@ namespace ts { } // The global Map object. This may not be available, so we must test for it. + // tslint:disable-next-line callable-types declare const Map: { new (): Map } | undefined; // Internet Explorer's Map doesn't support iteration, so don't use it. // tslint:disable-next-line no-in-operator variable-name export const MapCtr = typeof Map !== "undefined" && "entries" in Map.prototype ? Map : shimMap(); // Keep the class inside a function so it doesn't get compiled if it's not used. + // tslint:disable-next-line callable-types function shimMap(): { new (): Map } { class MapIterator { diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 15b6540900f..c0e0e38b1f9 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -246,6 +246,7 @@ namespace ts { // Explicitly do not passthru either `inline` option }); if (emitOnlyDtsFiles && declarationTransform.transformed[0].kind === SyntaxKind.SourceFile) { + // tslint:disable-next-line no-unnecessary-type-assertion const sourceFile = declarationTransform.transformed[0] as SourceFile; exportedModulesFromDeclarationEmit = sourceFile.exportedModulesFromDeclarationEmit; } diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 3e98b6cbdbc..b7195622db9 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -7774,12 +7774,15 @@ namespace ts { context.hasNoDefaultLib = true; } else if (arg!.arguments.types) { + // tslint:disable-next-line no-unnecessary-type-assertion typeReferenceDirectives.push({ pos: arg!.arguments.types!.pos, end: arg!.arguments.types!.end, fileName: arg!.arguments.types!.value }); } else if (arg!.arguments.lib) { + // tslint:disable-next-line no-unnecessary-type-assertion libReferenceDirectives.push({ pos: arg!.arguments.lib!.pos, end: arg!.arguments.lib!.end, fileName: arg!.arguments.lib!.value }); } else if (arg!.arguments.path) { + // tslint:disable-next-line no-unnecessary-type-assertion referencedFiles.push({ pos: arg!.arguments.path!.pos, end: arg!.arguments.path!.end, fileName: arg!.arguments.path!.value }); } else { diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 30fd1ca1784..8f89c8e5979 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -3488,10 +3488,12 @@ namespace ts { } if (member.kind === SyntaxKind.GetAccessor && !getAccessor) { + // tslint:disable-next-line no-unnecessary-type-assertion getAccessor = member; } if (member.kind === SyntaxKind.SetAccessor && !setAccessor) { + // tslint:disable-next-line no-unnecessary-type-assertion setAccessor = member; } } diff --git a/src/harness/compiler.ts b/src/harness/compiler.ts index 532a2d65578..0fecb19bd32 100644 --- a/src/harness/compiler.ts +++ b/src/harness/compiler.ts @@ -183,7 +183,9 @@ namespace compiler { } public getSourceMapRecord(): string | undefined { + // tslint:disable-next-line no-unnecessary-type-assertion if (this.result!.sourceMaps && this.result!.sourceMaps!.length > 0) { + // tslint:disable-next-line no-unnecessary-type-assertion return Harness.SourceMapRecorder.getSourceMapRecord(this.result!.sourceMaps!, this.program!, Array.from(this.js.values()).filter(d => !ts.fileExtensionIs(d.file, ts.Extension.Json)), Array.from(this.dts.values())); } } diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index b79a154c555..234b7b1e93d 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -600,6 +600,7 @@ namespace FourSlash { throw new Error("Expected exactly one output from emit of " + this.activeFile.fileName); } + // tslint:disable-next-line function-constructor const evaluation = new Function(`${emit.outputFiles[0].text};\r\nreturn (${expr});`)(); if (evaluation !== value) { this.raiseError(`Expected evaluation of expression "${expr}" to equal "${value}", but got "${evaluation}"`); diff --git a/src/harness/harness.ts b/src/harness/harness.ts index fc275529258..2cd3f574ff1 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -28,10 +28,12 @@ var assert: typeof _chai.assert = _chai.assert; }; } +// tslint:disable-next-line function-constructor var global: NodeJS.Global = Function("return this").call(undefined); declare var window: {}; declare var XMLHttpRequest: { + // tslint:disable-next-line callable-types new(): XMLHttpRequest; }; interface XMLHttpRequest { diff --git a/src/services/refactors/extractSymbol.ts b/src/services/refactors/extractSymbol.ts index c1915a66431..eed6b4ac79c 100644 --- a/src/services/refactors/extractSymbol.ts +++ b/src/services/refactors/extractSymbol.ts @@ -450,6 +450,7 @@ namespace ts.refactor.extractSymbol { rangeFacts |= RangeFacts.UsesThis; break; case SyntaxKind.LabeledStatement: + // tslint:disable-next-line one-line { const label = (node).label; (seenLabels || (seenLabels = [])).push(label.escapedText); @@ -459,6 +460,7 @@ namespace ts.refactor.extractSymbol { } case SyntaxKind.BreakStatement: case SyntaxKind.ContinueStatement: + // tslint:disable-next-line one-line { const label = (node).label; if (label) { diff --git a/src/tsserver/server.ts b/src/tsserver/server.ts index 66574ceaac1..56e438e80fc 100644 --- a/src/tsserver/server.ts +++ b/src/tsserver/server.ts @@ -389,6 +389,7 @@ namespace ts.server { this.inspectValuePromise = undefined; break; case EventInitializationFailed: + // tslint:disable-next-line one-line { const body: protocol.TypesInstallerInitializationFailedEventBody = { message: response.message @@ -398,6 +399,7 @@ namespace ts.server { break; } case EventBeginInstallTypes: + // tslint:disable-next-line one-line { const body: protocol.BeginInstallTypesEventBody = { eventId: response.eventId, @@ -408,6 +410,7 @@ namespace ts.server { break; } case EventEndInstallTypes: + // tslint:disable-next-line one-line { if (this.telemetryEnabled) { const body: protocol.TypingsInstalledTelemetryEventBody = { @@ -432,11 +435,13 @@ namespace ts.server { break; } case ActionInvalidate: + // tslint:disable-next-line one-line { this.projectService.updateTypingsForProject(response); break; } case ActionSet: + // tslint:disable-next-line one-line { if (this.activeRequestCount > 0) { this.activeRequestCount--;