From 96ba20f096d61bccc20cddbcbbba1806c82c0723 Mon Sep 17 00:00:00 2001 From: Lyle Underwood Date: Thu, 18 Jul 2019 19:35:55 +0200 Subject: [PATCH] fix: ignore arrow functions with predicates in arrow-parens --- src/rules/arrowParens.js | 6 ++++++ tests/rules/assertions/arrowParens.js | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/rules/arrowParens.js b/src/rules/arrowParens.js index b7ad295b..449b00a0 100644 --- a/src/rules/arrowParens.js +++ b/src/rules/arrowParens.js @@ -50,6 +50,12 @@ export default { return; } + // Similarly, a predicate always requires parens just like a return type + // does, and therefore this case can also be safely ignored. + if (node.predicate) { + return; + } + // "as-needed", { "requireForBlockBody": true }: x => x if ( requireForBlockBody && diff --git a/tests/rules/assertions/arrowParens.js b/tests/rules/assertions/arrowParens.js index 435778fb..338c4644 100644 --- a/tests/rules/assertions/arrowParens.js +++ b/tests/rules/assertions/arrowParens.js @@ -331,6 +331,8 @@ export default { {code: '(a: T) => { return a; }', options: ['always', {requireForBlockBody: true}]}, {code: '(a: T) => { return a; }', + options: ['as-needed', {requireForBlockBody: true}]}, + {code: '(a): %checks => typeof a === "number"', options: ['as-needed', {requireForBlockBody: true}]} ]