diff --git a/eslint/babel-eslint-plugin/src/rules/semi.js b/eslint/babel-eslint-plugin/src/rules/semi.js index 1668a32f8e..07e41f9174 100644 --- a/eslint/babel-eslint-plugin/src/rules/semi.js +++ b/eslint/babel-eslint-plugin/src/rules/semi.js @@ -79,7 +79,7 @@ function report(context, node, missing) { export default ruleComposer.joinReports([ rule, context => ({ - ClassProperty(node) { + "ClassProperty, ClassPrivateProperty"(node) { const options = context.options[1]; const exceptOneLine = options && options.omitLastInOneLineBlock === true; const sourceCode = context.getSourceCode(); diff --git a/eslint/babel-eslint-plugin/test/rules/semi.js b/eslint/babel-eslint-plugin/test/rules/semi.js index 815aeb0074..cb0e8b85c3 100644 --- a/eslint/babel-eslint-plugin/test/rules/semi.js +++ b/eslint/babel-eslint-plugin/test/rules/semi.js @@ -6,6 +6,7 @@ const ruleTester = new RuleTester(); ruleTester.run("semi", rule, { valid: [ "class Foo { bar = 'example'; }", + "class Foo { #bar = 'example'; }", "class Foo { static bar = 'example'; }", { code: "class Foo { bar = () => {}; }", @@ -14,6 +15,7 @@ ruleTester.run("semi", rule, { // never { code: "class Foo { bar = 'example' }", options: ["never"] }, + { code: "class Foo { #bar = 'example' }", options: ["never"] }, { code: "class Foo { static bar = 'example' }", options: ["never"] }, { code: "class Foo { bar = () => {} }", options: ["never"] }, ], @@ -22,6 +24,10 @@ ruleTester.run("semi", rule, { code: "class Foo { bar = 'example' }", errors: [{ message: "Missing semicolon." }], }, + { + code: "class Foo { #bar = 'example' }", + errors: [{ message: "Missing semicolon." }], + }, { code: "class Foo { static bar = 'example' }", errors: [{ message: "Missing semicolon." }], @@ -38,6 +44,11 @@ ruleTester.run("semi", rule, { options: ["never"], errors: [{ message: "Extra semicolon." }], }, + { + code: "class Foo { #bar = 'example'; }", + options: ["never"], + errors: [{ message: "Extra semicolon." }], + }, { code: "class Foo { static bar = 'example'; }", options: ["never"],