From 97fb0fd55f28d9c599f14ad8487b85367bdf7da2 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Mon, 22 Jan 2018 12:59:53 -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 + tests/baselines/reference/unusedSemicolonInClass.js | 13 +++++++++++++ .../reference/unusedSemicolonInClass.symbols | 7 +++++++ .../reference/unusedSemicolonInClass.types | 7 +++++++ tests/cases/compiler/unusedSemicolonInClass.ts | 4 ++++ 5 files changed, 32 insertions(+) create mode 100644 tests/baselines/reference/unusedSemicolonInClass.js create mode 100644 tests/baselines/reference/unusedSemicolonInClass.symbols create mode 100644 tests/baselines/reference/unusedSemicolonInClass.types create mode 100644 tests/cases/compiler/unusedSemicolonInClass.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 14631fa69cb31..f418dbabcb844 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -21030,6 +21030,7 @@ namespace ts { } break; case SyntaxKind.IndexSignature: + case SyntaxKind.SemicolonClassElement: // Can't be private break; default: diff --git a/tests/baselines/reference/unusedSemicolonInClass.js b/tests/baselines/reference/unusedSemicolonInClass.js new file mode 100644 index 0000000000000..c33f799fec439 --- /dev/null +++ b/tests/baselines/reference/unusedSemicolonInClass.js @@ -0,0 +1,13 @@ +//// [unusedSemicolonInClass.ts] +class Unused { + ; +} + + +//// [unusedSemicolonInClass.js] +var Unused = /** @class */ (function () { + function Unused() { + } + ; + return Unused; +}()); diff --git a/tests/baselines/reference/unusedSemicolonInClass.symbols b/tests/baselines/reference/unusedSemicolonInClass.symbols new file mode 100644 index 0000000000000..0e1832d1f3a6b --- /dev/null +++ b/tests/baselines/reference/unusedSemicolonInClass.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/unusedSemicolonInClass.ts === +class Unused { +>Unused : Symbol(Unused, Decl(unusedSemicolonInClass.ts, 0, 0)) + + ; +} + diff --git a/tests/baselines/reference/unusedSemicolonInClass.types b/tests/baselines/reference/unusedSemicolonInClass.types new file mode 100644 index 0000000000000..118259662f4ee --- /dev/null +++ b/tests/baselines/reference/unusedSemicolonInClass.types @@ -0,0 +1,7 @@ +=== tests/cases/compiler/unusedSemicolonInClass.ts === +class Unused { +>Unused : Unused + + ; +} + diff --git a/tests/cases/compiler/unusedSemicolonInClass.ts b/tests/cases/compiler/unusedSemicolonInClass.ts new file mode 100644 index 0000000000000..5cd62690ba9d7 --- /dev/null +++ b/tests/cases/compiler/unusedSemicolonInClass.ts @@ -0,0 +1,4 @@ +// @noUnusedLocals: true +class Unused { + ; +}