From 2f396c855b2e24cdea55d3a1e478cf7e42c2b1a1 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Mon, 22 Jan 2018 09:22:29 -0800 Subject: [PATCH] Add semicolon to unused class member list Turns out SemicolonClassElement is a specific kind for semicolons inside a class. Having one of them with --noUnusedLocals on would crash the compiler after the assert added in #21013. --- src/compiler/checker.ts | 1 + .../reference/unusedSemicolonsInClasses.js | 13 +++++++++++++ .../reference/unusedSemicolonsInClasses.symbols | 7 +++++++ .../reference/unusedSemicolonsInClasses.types | 7 +++++++ tests/cases/compiler/unusedSemicolonsInClasses.ts | 4 ++++ .../TypeScript-Node-Starter/TypeScript-Node-Starter | 2 +- 6 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/unusedSemicolonsInClasses.js create mode 100644 tests/baselines/reference/unusedSemicolonsInClasses.symbols create mode 100644 tests/baselines/reference/unusedSemicolonsInClasses.types create mode 100644 tests/cases/compiler/unusedSemicolonsInClasses.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 405fd11f13820..677cf2272912d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -21028,6 +21028,7 @@ namespace ts { } break; case SyntaxKind.IndexSignature: + case SyntaxKind.SemicolonClassElement: // Can't be private break; default: diff --git a/tests/baselines/reference/unusedSemicolonsInClasses.js b/tests/baselines/reference/unusedSemicolonsInClasses.js new file mode 100644 index 0000000000000..f7dff926cad68 --- /dev/null +++ b/tests/baselines/reference/unusedSemicolonsInClasses.js @@ -0,0 +1,13 @@ +//// [unusedSemicolonsInClasses.ts] +class Unused { + ; +} + + +//// [unusedSemicolonsInClasses.js] +var Unused = /** @class */ (function () { + function Unused() { + } + ; + return Unused; +}()); diff --git a/tests/baselines/reference/unusedSemicolonsInClasses.symbols b/tests/baselines/reference/unusedSemicolonsInClasses.symbols new file mode 100644 index 0000000000000..70e3b85ba8cac --- /dev/null +++ b/tests/baselines/reference/unusedSemicolonsInClasses.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/unusedSemicolonsInClasses.ts === +class Unused { +>Unused : Symbol(Unused, Decl(unusedSemicolonsInClasses.ts, 0, 0)) + + ; +} + diff --git a/tests/baselines/reference/unusedSemicolonsInClasses.types b/tests/baselines/reference/unusedSemicolonsInClasses.types new file mode 100644 index 0000000000000..27bbe265e6aac --- /dev/null +++ b/tests/baselines/reference/unusedSemicolonsInClasses.types @@ -0,0 +1,7 @@ +=== tests/cases/compiler/unusedSemicolonsInClasses.ts === +class Unused { +>Unused : Unused + + ; +} + diff --git a/tests/cases/compiler/unusedSemicolonsInClasses.ts b/tests/cases/compiler/unusedSemicolonsInClasses.ts new file mode 100644 index 0000000000000..5cd62690ba9d7 --- /dev/null +++ b/tests/cases/compiler/unusedSemicolonsInClasses.ts @@ -0,0 +1,4 @@ +// @noUnusedLocals: true +class Unused { + ; +} diff --git a/tests/cases/user/TypeScript-Node-Starter/TypeScript-Node-Starter b/tests/cases/user/TypeScript-Node-Starter/TypeScript-Node-Starter index 40bdb4eadabc9..ed149eb0c787b 160000 --- a/tests/cases/user/TypeScript-Node-Starter/TypeScript-Node-Starter +++ b/tests/cases/user/TypeScript-Node-Starter/TypeScript-Node-Starter @@ -1 +1 @@ -Subproject commit 40bdb4eadabc9fbed7d83e3f26817a931c0763b6 +Subproject commit ed149eb0c787b1195a95b44105822c64bb6eb636