From 3b87b49ea8d62c2f4f3bee7494500b5ad44fcbc1 Mon Sep 17 00:00:00 2001 From: YeonJuan Date: Mon, 20 Dec 2021 11:31:09 +0900 Subject: [PATCH] fix(eslint-plugin): handle method overloading in `semi` (#4318) --- packages/eslint-plugin/src/rules/semi.ts | 2 +- .../eslint-plugin/tests/rules/semi.test.ts | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/src/rules/semi.ts b/packages/eslint-plugin/src/rules/semi.ts index 647d2c21b3e..a923310915c 100644 --- a/packages/eslint-plugin/src/rules/semi.ts +++ b/packages/eslint-plugin/src/rules/semi.ts @@ -53,11 +53,11 @@ export default util.createRule({ const nodesToCheck = [ AST_NODE_TYPES.PropertyDefinition, AST_NODE_TYPES.TSAbstractPropertyDefinition, - AST_NODE_TYPES.TSAbstractMethodDefinition, AST_NODE_TYPES.TSDeclareFunction, AST_NODE_TYPES.TSExportAssignment, AST_NODE_TYPES.TSImportEqualsDeclaration, AST_NODE_TYPES.TSTypeAliasDeclaration, + AST_NODE_TYPES.TSEmptyBodyFunctionExpression, ].reduce((acc, node) => { acc[node as string] = checkForSemicolon; return acc; diff --git a/packages/eslint-plugin/tests/rules/semi.test.ts b/packages/eslint-plugin/tests/rules/semi.test.ts index d32e557eb58..48c68a2f059 100644 --- a/packages/eslint-plugin/tests/rules/semi.test.ts +++ b/packages/eslint-plugin/tests/rules/semi.test.ts @@ -302,7 +302,46 @@ class PanCamera extends FreeCamera { options: ['always', { omitLastInOneLineBlock: true }], errors: [extraSemicolon], }, + { + code: ` + class A { + method(): void + method(arg?: any): void { + + } + } + `, + output: ` + class A { + method(): void; + method(arg?: any): void { + } + } + `, + options: ['always'], + errors: [missingSemicolon], + }, + { + code: ` + class A { + method(): void; + method(arg?: any): void { + + } + } + `, + output: ` + class A { + method(): void + method(arg?: any): void { + + } + } + `, + options: ['never'], + errors: [extraSemicolon], + }, { code: ` import a from "a"