diff --git a/.eslintrc b/.eslintrc index 914c0d76a7a..a3ed20a4ebe 100644 --- a/.eslintrc +++ b/.eslintrc @@ -107,7 +107,7 @@ "no-trailing-spaces": "error", "no-undef-init": "error", "no-unsafe-finally": "error", - "no-unused-expressions": "off", + "no-unused-expressions": "error", "no-unused-labels": "error", "no-var": "off", "object-shorthand": "error", diff --git a/src/compiler/factory.ts b/src/compiler/factory.ts index b30f40b912d..ec14260c6f5 100644 --- a/src/compiler/factory.ts +++ b/src/compiler/factory.ts @@ -2942,7 +2942,7 @@ namespace ts { node.declarationMapPath = declarationMapPath; node.declarationMapText = declarationMapTextOrBuildInfoPath; node.javascriptPath = javascriptPath; - node.declarationPath = declarationPath, + node.declarationPath = declarationPath; node.buildInfoPath = buildInfoPath; node.buildInfo = buildInfo; node.oldFileOfCurrentEmit = oldFileOfCurrentEmit; diff --git a/src/compiler/watch.ts b/src/compiler/watch.ts index 3ba2a5f5959..d8af9bade36 100644 --- a/src/compiler/watch.ts +++ b/src/compiler/watch.ts @@ -331,7 +331,9 @@ namespace ts { export function createProgramHost(system: System, createProgram: CreateProgram | undefined): ProgramHost { const getDefaultLibLocation = memoize(() => getDirectoryPath(normalizePath(system.getExecutingFilePath()))); let host: DirectoryStructureHost = system; - host; // tslint:disable-line no-unused-expression (TODO: `host` is unused!) + // TODO: `host` is unused! + // eslint-disable-next-line no-unused-expressions + host; return { useCaseSensitiveFileNames: () => system.useCaseSensitiveFileNames, getNewLine: () => system.newLine, diff --git a/src/services/refactors/generateGetAccessorAndSetAccessor.ts b/src/services/refactors/generateGetAccessorAndSetAccessor.ts index dbc73781871..4091599951a 100644 --- a/src/services/refactors/generateGetAccessorAndSetAccessor.ts +++ b/src/services/refactors/generateGetAccessorAndSetAccessor.ts @@ -214,11 +214,17 @@ namespace ts.refactor.generateGetAccessorAndSetAccessor { } function insertAccessor(changeTracker: textChanges.ChangeTracker, file: SourceFile, accessor: AccessorDeclaration, declaration: AcceptedDeclaration, container: ContainerDeclaration) { - isParameterPropertyDeclaration(declaration) - ? changeTracker.insertNodeAtClassStart(file, container, accessor) - : isPropertyAssignment(declaration) - ? changeTracker.insertNodeAfterComma(file, declaration, accessor) - : changeTracker.insertNodeAfter(file, declaration, accessor); + if (isParameterPropertyDeclaration(declaration)) { + changeTracker.insertNodeAtClassStart(file, container, accessor); + } + else { + if (isPropertyAssignment(declaration)) { + changeTracker.insertNodeAfterComma(file, declaration, accessor); + } + else { + changeTracker.insertNodeAfter(file, declaration, accessor); + } + } } function updateReadonlyPropertyInitializerStatementConstructor(changeTracker: textChanges.ChangeTracker, file: SourceFile, constructor: ConstructorDeclaration, fieldName: string, originalName: string) { diff --git a/src/testRunner/parallel/worker.ts b/src/testRunner/parallel/worker.ts index 7579242ffaa..2a53ccddffe 100644 --- a/src/testRunner/parallel/worker.ts +++ b/src/testRunner/parallel/worker.ts @@ -125,7 +125,10 @@ namespace Harness.Parallel.Worker { } function addTest(title: string | Mocha.Func | Mocha.AsyncFunc, fn: Mocha.Func | Mocha.AsyncFunc | undefined): Mocha.Test { - if (typeof title === "function") fn = title, title = fn.name; + if (typeof title === "function") { + fn = title; + title = fn.name; + } const test = new Test(title, suites[0].pending ? undefined : fn); suites[0].addTest(test); return test; @@ -297,4 +300,4 @@ namespace Harness.Parallel.Worker { process.on("message", processHostMessage); } -} \ No newline at end of file +} diff --git a/src/testRunner/unittests/services/languageService.ts b/src/testRunner/unittests/services/languageService.ts index d646f32383f..8f67c1406e5 100644 --- a/src/testRunner/unittests/services/languageService.ts +++ b/src/testRunner/unittests/services/languageService.ts @@ -40,7 +40,7 @@ export function Component(x: Config): any;` }, }); const definitions = languageService.getDefinitionAtPosition("foo.ts", 160); // 160 is the latter `vueTemplateHtml` position - expect(definitions).to.exist; // tslint:disable-line no-unused-expression + expect(definitions).to.exist; // eslint-disable-line no-unused-expressions }); }); } diff --git a/src/testRunner/unittests/services/preProcessFile.ts b/src/testRunner/unittests/services/preProcessFile.ts index 3e9d16672db..c0a47779837 100644 --- a/src/testRunner/unittests/services/preProcessFile.ts +++ b/src/testRunner/unittests/services/preProcessFile.ts @@ -44,7 +44,7 @@ describe("unittests:: services:: PreProcessFile:", () => { ambientExternalModules: undefined, isLibFile: false }); - }), + }); it("Do not return reference path because of invalid triple-slash syntax", () => { test("///" + "\n" + "///" + "\n" + "///" + "\n" + "///", @@ -58,7 +58,7 @@ describe("unittests:: services:: PreProcessFile:", () => { ambientExternalModules: undefined, isLibFile: false }); - }), + }); it("Do not return reference path of non-imports", () => { test("Quill.import('delta');", @@ -72,7 +72,7 @@ describe("unittests:: services:: PreProcessFile:", () => { ambientExternalModules: undefined, isLibFile: false }); - }), + }); it("Do not return reference path of nested non-imports", () => { test("a.b.import('c');", @@ -86,7 +86,7 @@ describe("unittests:: services:: PreProcessFile:", () => { ambientExternalModules: undefined, isLibFile: false }); - }), + }); it("Correctly return imported files", () => { test("import i1 = require(\"r1.ts\"); import i2 =require(\"r2.ts\"); import i3= require(\"r3.ts\"); import i4=require(\"r4.ts\"); import i5 = require (\"r5.ts\");", @@ -101,7 +101,7 @@ describe("unittests:: services:: PreProcessFile:", () => { ambientExternalModules: undefined, isLibFile: false }); - }), + }); it("Do not return imported files if readImportFiles argument is false", () => { test("import i1 = require(\"r1.ts\"); import i2 =require(\"r2.ts\"); import i3= require(\"r3.ts\"); import i4=require(\"r4.ts\"); import i5 = require (\"r5.ts\");", @@ -115,7 +115,7 @@ describe("unittests:: services:: PreProcessFile:", () => { ambientExternalModules: undefined, isLibFile: false }); - }), + }); it("Do not return import path because of invalid import syntax", () => { test("import i1 require(\"r1.ts\"); import = require(\"r2.ts\") import i3= require(\"r3.ts\"); import i5", @@ -129,7 +129,7 @@ describe("unittests:: services:: PreProcessFile:", () => { ambientExternalModules: undefined, isLibFile: false }); - }), + }); it("Correctly return referenced files and import files", () => { test("///" + "\n" + "///" + "\n" + "import i1 = require(\"r1.ts\"); import i2 =require(\"r2.ts\");", @@ -143,7 +143,7 @@ describe("unittests:: services:: PreProcessFile:", () => { ambientExternalModules: undefined, isLibFile: false }); - }), + }); it("Correctly return referenced files and import files even with some invalid syntax", () => { test("///" + "\n" + "///" + "\n" + "import i1 = require(\"r1.ts\"); import = require(\"r2.ts\"); import i2 = require(\"r3.ts\");", diff --git a/src/testRunner/unittests/tsserver/session.ts b/src/testRunner/unittests/tsserver/session.ts index cf84ffce6e8..cc70a910830 100644 --- a/src/testRunner/unittests/tsserver/session.ts +++ b/src/testRunner/unittests/tsserver/session.ts @@ -337,7 +337,7 @@ namespace ts.server { session.send = Session.prototype.send; assert(session.send); - expect(session.send(msg)).to.not.exist; // tslint:disable-line no-unused-expression + expect(session.send(msg)).to.not.exist; // eslint-disable-line no-unused-expressions expect(lastWrittenToHost).to.equal(resultMsg); }); });