Skip to content
This repository was archived by the owner on Jan 19, 2019. It is now read-only.

Commit 02ca2e6

Browse files
committed
Fix: make no-unused-vars not reporting enum members
1 parent 491ebca commit 02ca2e6

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

analyze-scope.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,11 @@ class Referencer extends OriginalReferencer {
498498
const scope = this.currentScope();
499499

500500
scope.__define(id, new Definition("EnumMemberName", id, node));
501+
502+
// Set `eslintUsed` flag to the defined variable because the enum member is obviously exported.
503+
const variable = scope.set.get(id.name);
504+
variable.eslintUsed = true;
505+
501506
if (initializer) {
502507
scope.__referencing(
503508
id,

tests/lib/__snapshots__/scope-analysis.js.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2441,7 +2441,7 @@ Object {
24412441
"type": "EnumMemberName",
24422442
},
24432443
],
2444-
"eslintUsed": undefined,
2444+
"eslintUsed": true,
24452445
"identifiers": Array [
24462446
Object {
24472447
"name": "A",
@@ -2488,7 +2488,7 @@ Object {
24882488
"type": "EnumMemberName",
24892489
},
24902490
],
2491-
"eslintUsed": undefined,
2491+
"eslintUsed": true,
24922492
"identifiers": Array [
24932493
Object {
24942494
"name": "B",
@@ -2535,7 +2535,7 @@ Object {
25352535
"type": "EnumMemberName",
25362536
},
25372537
],
2538-
"eslintUsed": undefined,
2538+
"eslintUsed": true,
25392539
"identifiers": Array [
25402540
Object {
25412541
"name": "C",
@@ -2790,7 +2790,7 @@ Object {
27902790
"type": "EnumMemberName",
27912791
},
27922792
],
2793-
"eslintUsed": undefined,
2793+
"eslintUsed": true,
27942794
"identifiers": Array [
27952795
Object {
27962796
"name": "BAR",

tests/lib/scope-analysis.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,4 +370,22 @@ function test(file: Blob) {
370370

371371
expect(messages).toStrictEqual([]);
372372
});
373+
374+
test("https://github.com/eslint/typescript-eslint-parser/issues/553", () => {
375+
const code = `
376+
enum Foo {
377+
BAR = 'bar'
378+
}
379+
Foo
380+
`;
381+
const config = {
382+
parser: "typescript-eslint-parser",
383+
rules: {
384+
"no-unused-vars": "error"
385+
}
386+
};
387+
const messages = linter.verify(code, config, { filename: "issue.ts" });
388+
389+
expect(messages).toStrictEqual([]);
390+
});
373391
});

0 commit comments

Comments
 (0)