diff --git a/lib/rules/no-extra-parens.js b/lib/rules/no-extra-parens.js index e70353576bb..a5488c3c1c6 100644 --- a/lib/rules/no-extra-parens.js +++ b/lib/rules/no-extra-parens.js @@ -702,8 +702,7 @@ module.exports = { } if (node.body.type === "ConditionalExpression" && - IGNORE_ARROW_CONDITIONALS && - !isParenthesisedTwice(node.body) + IGNORE_ARROW_CONDITIONALS ) { return; } diff --git a/tests/lib/rules/no-extra-parens.js b/tests/lib/rules/no-extra-parens.js index 46de155fbb0..2766a135590 100644 --- a/tests/lib/rules/no-extra-parens.js +++ b/tests/lib/rules/no-extra-parens.js @@ -244,12 +244,19 @@ ruleTester.run("no-extra-parens", rule, { // "functions" enables reports for function nodes only { code: "(0)", options: ["functions"] }, + { code: "((0))", options: ["functions"] }, { code: "a + (b * c)", options: ["functions"] }, + { code: "a + ((b * c))", options: ["functions"] }, { code: "(a)(b)", options: ["functions"] }, + { code: "((a))(b)", options: ["functions"] }, { code: "a, (b = c)", options: ["functions"] }, + { code: "a, ((b = c))", options: ["functions"] }, { code: "for(a in (0));", options: ["functions"] }, + { code: "for(a in ((0)));", options: ["functions"] }, { code: "var a = (b = c)", options: ["functions"] }, + { code: "var a = ((b = c))", options: ["functions"] }, { code: "_ => (a = 0)", options: ["functions"] }, + { code: "_ => ((a = 0))", options: ["functions"] }, // ["all", { conditionalAssign: false }] enables extra parens around conditional assignments { code: "while ((foo = bar())) {}", options: ["all", { conditionalAssign: false }] }, @@ -257,6 +264,8 @@ ruleTester.run("no-extra-parens", rule, { { code: "do; while ((foo = bar()))", options: ["all", { conditionalAssign: false }] }, { code: "for (;(a = b););", options: ["all", { conditionalAssign: false }] }, { code: "var a = ((b = c)) ? foo : bar;", options: ["all", { conditionalAssign: false }] }, + { code: "while (((foo = bar()))) {}", options: ["all", { conditionalAssign: false }] }, + { code: "var a = (((b = c))) ? foo : bar;", options: ["all", { conditionalAssign: false }] }, // ["all", { nestedBinaryExpressions: false }] enables extra parens around conditional assignments { code: "a + (b * c)", options: ["all", { nestedBinaryExpressions: false }] }, @@ -369,6 +378,7 @@ ruleTester.run("no-extra-parens", rule, { // ["all", { ignoreJSX: "all" }] { code: "const Component = (
)", options: ["all", { ignoreJSX: "all" }] }, + { code: "const Component = (())", options: ["all", { ignoreJSX: "all" }] }, { code: [ "const Component = (<>", @@ -377,6 +387,14 @@ ruleTester.run("no-extra-parens", rule, { ].join("\n"), options: ["all", { ignoreJSX: "all" }] }, + { + code: [ + "const Component = ((<>", + " ", + ">));" + ].join("\n"), + options: ["all", { ignoreJSX: "all" }] + }, { code: [ "const Component = (