From ca2f54f609ee46bf68503accfddb5b4ca31755d8 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 19 Jan 2021 16:57:26 +0800 Subject: [PATCH] Refactor: replace `isSameNode` with `hasSameRange` (#1036) --- rules/utils/has-same-range.js | 7 +++++++ ...ssignment-pattern-shorthand-property-identifier.js | 9 +++++++-- rules/utils/is-same-node.js | 11 ----------- rules/utils/is-shadowed.js | 4 +--- rules/utils/is-shorthand-property-identifier.js | 9 +++++++-- 5 files changed, 22 insertions(+), 18 deletions(-) create mode 100644 rules/utils/has-same-range.js delete mode 100644 rules/utils/is-same-node.js diff --git a/rules/utils/has-same-range.js b/rules/utils/has-same-range.js new file mode 100644 index 0000000000..60ab57d6b8 --- /dev/null +++ b/rules/utils/has-same-range.js @@ -0,0 +1,7 @@ +'use strict'; + +module.exports = (node1, node2) => + node1 && + node2 && + node1.range[0] === node2.range[0] && + node1.range[1] === node2.range[1]; diff --git a/rules/utils/is-assignment-pattern-shorthand-property-identifier.js b/rules/utils/is-assignment-pattern-shorthand-property-identifier.js index c819b9a77d..286ebab114 100644 --- a/rules/utils/is-assignment-pattern-shorthand-property-identifier.js +++ b/rules/utils/is-assignment-pattern-shorthand-property-identifier.js @@ -1,11 +1,16 @@ 'use strict'; -const isSameNode = require('./is-same-node'); +const hasSameRange = require('./has-same-range'); module.exports = identifier => identifier.parent.type === 'AssignmentPattern' && identifier.parent.left === identifier && identifier.parent.parent.type === 'Property' && - isSameNode(identifier, identifier.parent.parent.key) && + ( + identifier === identifier.parent.parent.key || + // In `babel-eslint` parent.key is not reference of identifier, #444 + // issue https://github.com/babel/babel-eslint/issues/809 + hasSameRange(identifier, identifier.parent.parent.key) + ) && identifier.parent.parent.value === identifier.parent && identifier.parent.parent.shorthand; diff --git a/rules/utils/is-same-node.js b/rules/utils/is-same-node.js deleted file mode 100644 index 8ea393f215..0000000000 --- a/rules/utils/is-same-node.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -module.exports = (node1, node2) => - node1 && - node2 && - ( - node1 === node2 || - // In `babel-eslint` parent.key is not reference of identifier, #444 - // issue https://github.com/babel/babel-eslint/issues/809 - (node1.range[0] === node2.range[0] && node1.range[1] === node2.range[1]) - ); diff --git a/rules/utils/is-shadowed.js b/rules/utils/is-shadowed.js index 0aee1f5df2..1f18566b37 100644 --- a/rules/utils/is-shadowed.js +++ b/rules/utils/is-shadowed.js @@ -1,7 +1,5 @@ 'use strict'; -const isSameNode = require('./is-same-node'); - /** * Finds the eslint-scope reference in the given scope. * @param {Object} scope The scope to search. @@ -10,7 +8,7 @@ const isSameNode = require('./is-same-node'); */ function findReference(scope, node) { const references = scope.references - .filter(reference => isSameNode(reference.identifier, node)); + .filter(reference => reference.identifier === node); if (references.length === 1) { return references[0]; diff --git a/rules/utils/is-shorthand-property-identifier.js b/rules/utils/is-shorthand-property-identifier.js index 8763494d8b..7c9140a71a 100644 --- a/rules/utils/is-shorthand-property-identifier.js +++ b/rules/utils/is-shorthand-property-identifier.js @@ -1,8 +1,13 @@ 'use strict'; -const isSameNode = require('./is-same-node'); +const hasSameRange = require('./has-same-range'); module.exports = identifier => identifier.parent.type === 'Property' && identifier.parent.shorthand && - isSameNode(identifier, identifier.parent.key); + ( + identifier === identifier.parent.key || + // In `babel-eslint` parent.key is not reference of identifier, #444 + // issue https://github.com/babel/babel-eslint/issues/809 + hasSameRange(identifier, identifier.parent.key) + );