From 845c06692394ea828f24b0264c9a3958d4f6b577 Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 3 Nov 2017 17:46:19 -0700 Subject: [PATCH] Check for unused locals in commonjs modules (#19612) --- src/compiler/checker.ts | 2 +- .../reference/commonJsUnusedLocals.errors.txt | 9 +++++++++ .../baselines/reference/commonJsUnusedLocals.symbols | 9 +++++++++ tests/baselines/reference/commonJsUnusedLocals.types | 12 ++++++++++++ tests/cases/compiler/commonJsUnusedLocals.ts | 8 ++++++++ 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/commonJsUnusedLocals.errors.txt create mode 100644 tests/baselines/reference/commonJsUnusedLocals.symbols create mode 100644 tests/baselines/reference/commonJsUnusedLocals.types create mode 100644 tests/cases/compiler/commonJsUnusedLocals.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b598be408c1..e2e45b2ccb0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -23158,7 +23158,7 @@ namespace ts { checkDeferredNodes(); - if (isExternalModule(node)) { + if (isExternalOrCommonJsModule(node)) { registerForUnusedIdentifiersCheck(node); } diff --git a/tests/baselines/reference/commonJsUnusedLocals.errors.txt b/tests/baselines/reference/commonJsUnusedLocals.errors.txt new file mode 100644 index 00000000000..b8e2159d432 --- /dev/null +++ b/tests/baselines/reference/commonJsUnusedLocals.errors.txt @@ -0,0 +1,9 @@ +/a.js(1,7): error TS6133: 'x' is declared but its value is never read. + + +==== /a.js (1 errors) ==== + const x = 0; + ~ +!!! error TS6133: 'x' is declared but its value is never read. + exports.y = 1; + \ No newline at end of file diff --git a/tests/baselines/reference/commonJsUnusedLocals.symbols b/tests/baselines/reference/commonJsUnusedLocals.symbols new file mode 100644 index 00000000000..08155bc4d26 --- /dev/null +++ b/tests/baselines/reference/commonJsUnusedLocals.symbols @@ -0,0 +1,9 @@ +=== /a.js === +const x = 0; +>x : Symbol(x, Decl(a.js, 0, 5)) + +exports.y = 1; +>exports.y : Symbol(y, Decl(a.js, 0, 12)) +>exports : Symbol(y, Decl(a.js, 0, 12)) +>y : Symbol(y, Decl(a.js, 0, 12)) + diff --git a/tests/baselines/reference/commonJsUnusedLocals.types b/tests/baselines/reference/commonJsUnusedLocals.types new file mode 100644 index 00000000000..e792ad8e782 --- /dev/null +++ b/tests/baselines/reference/commonJsUnusedLocals.types @@ -0,0 +1,12 @@ +=== /a.js === +const x = 0; +>x : 0 +>0 : 0 + +exports.y = 1; +>exports.y = 1 : 1 +>exports.y : number +>exports : typeof "/a" +>y : number +>1 : 1 + diff --git a/tests/cases/compiler/commonJsUnusedLocals.ts b/tests/cases/compiler/commonJsUnusedLocals.ts new file mode 100644 index 00000000000..d1b51aa245b --- /dev/null +++ b/tests/cases/compiler/commonJsUnusedLocals.ts @@ -0,0 +1,8 @@ +// @noUnusedLocals: true +// @allowJs: true +// @checkJs: true +// @noEmit: true + +// @Filename: /a.js +const x = 0; +exports.y = 1;