Merge pull request babel/eslint-plugin-babel#144 from babel/issue142
Fix bug with semi rule with class properties and omitLastInOneLineBlock option
This commit is contained in:
parent
ae68b5bf24
commit
562deb8f09
@ -83,11 +83,11 @@ const semiRuleWithClassProperty = ruleComposer.joinReports([
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!isSemicolon(lastToken)) {
|
if (!isSemicolon(lastToken)) {
|
||||||
if (!exceptOneLine || !isOneLinerBlock(node)) {
|
if (!exceptOneLine || !isOneLinerBlock(context, node)) {
|
||||||
report(context, node);
|
report(context, node);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (exceptOneLine && isOneLinerBlock(node)) {
|
if (exceptOneLine && isOneLinerBlock(context, node)) {
|
||||||
report(context, node, true);
|
report(context, node, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -103,10 +103,12 @@ ruleTester.run("semi", rule, {
|
|||||||
"class Foo { bar = 'example'; }",
|
"class Foo { bar = 'example'; }",
|
||||||
"class Foo { static bar = 'example'; }",
|
"class Foo { static bar = 'example'; }",
|
||||||
{ code: "async function foo() { for await (let thing of {}) { console.log(thing); } }", parserOptions: { ecmaVersion: 6 } },
|
{ code: "async function foo() { for await (let thing of {}) { console.log(thing); } }", parserOptions: { ecmaVersion: 6 } },
|
||||||
|
{ code: "class Foo { bar = () => {}; }", options: ["always", { omitLastInOneLineBlock: true }] },
|
||||||
|
|
||||||
// babel, "never"
|
// babel, "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 { static bar = 'example' }", options: ["never"] },
|
||||||
|
{ code: "class Foo { bar = () => {} }", options: ["never"] },
|
||||||
],
|
],
|
||||||
invalid: [
|
invalid: [
|
||||||
{ code: "import * as utils from './utils'", output: "import * as utils from './utils';", parserOptions: { sourceType: "module" }, errors: [{ message: "Missing semicolon.", type: "ImportDeclaration", column: 33 }] },
|
{ code: "import * as utils from './utils'", output: "import * as utils from './utils';", parserOptions: { sourceType: "module" }, errors: [{ message: "Missing semicolon.", type: "ImportDeclaration", column: 33 }] },
|
||||||
@ -184,9 +186,19 @@ ruleTester.run("semi", rule, {
|
|||||||
// babel
|
// babel
|
||||||
{ 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." }] },
|
{ code: "class Foo { static bar = 'example' }", errors: [{ message: "Missing semicolon." }] },
|
||||||
|
{
|
||||||
|
code: "class Foo { bar = () => {} }",
|
||||||
|
options: ["always", { omitLastInOneLineBlock: true }],
|
||||||
|
errors: [{ message: "Missing semicolon." }]
|
||||||
|
},
|
||||||
|
|
||||||
// babel, "never"
|
// babel, "never"
|
||||||
{ code: "class Foo { bar = 'example'; }", 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"], errors: [{ message: "Extra semicolon." }] }
|
{ code: "class Foo { static bar = 'example'; }", options: ["never"], errors: [{ message: "Extra semicolon." }] },
|
||||||
|
{
|
||||||
|
code: "class Foo { bar = () => {}; }",
|
||||||
|
options: ["never"],
|
||||||
|
errors: [{ message: "Extra semicolon." }]
|
||||||
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user