From 30a592820c930cda9624211dddea9f57ab63b2ff Mon Sep 17 00:00:00 2001 From: Toru Nagashima Date: Wed, 18 Oct 2017 14:32:47 +0900 Subject: [PATCH] Fix: `no-useless-rest-spread` crashed (fixes #17) --- lib/rules/no-useless-rest-spread.js | 3 ++- tests/lib/rules/no-useless-rest-spread.js | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/rules/no-useless-rest-spread.js b/lib/rules/no-useless-rest-spread.js index fd84cf4..f0445f7 100644 --- a/lib/rules/no-useless-rest-spread.js +++ b/lib/rules/no-useless-rest-spread.js @@ -115,8 +115,9 @@ module.exports = { const parentType = node.parent.type const argumentType = node.argument.type const isArray = argumentType.startsWith("Array") + const isObject = !isArray && argumentType.startsWith("Object") const isRedundant = ( - argumentType === parentType || + ((isArray || isObject) && argumentType === parentType) || (isArray && FUNC_TYPE.test(parentType)) ) diff --git a/tests/lib/rules/no-useless-rest-spread.js b/tests/lib/rules/no-useless-rest-spread.js index 1101fae..947edf0 100644 --- a/tests/lib/rules/no-useless-rest-spread.js +++ b/tests/lib/rules/no-useless-rest-spread.js @@ -35,6 +35,7 @@ ruleTester.run("no-useless-rest-spread", rule, { "foo(...{a}, ...{b})", "let list = [...{a}]", "let obj = {...[a]}", + "f(...g())", ], invalid: [ {