Skip to content

Commit ea89962

Browse files
authored
Replace .range with sourceCode.getRange() (#2553)
1 parent d963ccd commit ea89962

37 files changed

+127
-102
lines changed

rules/consistent-existence-index-check.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,12 @@ const create = context => ({
9696
token => token.type === 'Punctuator' && token.value === operator,
9797
);
9898

99+
const [start] = sourceCode.getRange(operatorToken);
100+
const [, end] = sourceCode.getRange(right);
101+
99102
yield {
100103
node: binaryExpression,
101-
loc: toLocation([operatorToken.range[0], right.range[1]], sourceCode),
104+
loc: toLocation([start, end], sourceCode),
102105
messageId: MESSAGE_ID,
103106
data: {
104107
...replacement,

rules/custom-error-definition.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ function * customErrorDefinition(context, node) {
7777
};
7878
}
7979

80-
const {body, range} = node.body;
80+
const {sourceCode} = context;
81+
const {body} = node.body;
82+
const range = sourceCode.getRange(node.body);
8183
const constructor = body.find(x => x.kind === 'constructor');
8284

8385
if (!constructor) {
@@ -118,16 +120,15 @@ function * customErrorDefinition(context, node) {
118120
* fix(fixer) {
119121
if (superExpression.expression.arguments.length === 0) {
120122
const rhs = expression.expression.right;
121-
yield fixer.insertTextAfterRange([
122-
superExpression.range[0],
123-
superExpression.range[0] + 6,
124-
], rhs.raw || rhs.name);
123+
const [start] = sourceCode.getRange(superExpression);
124+
yield fixer.insertTextAfterRange([start, start + 6], rhs.raw || rhs.name);
125125
}
126126

127-
yield fixer.removeRange([
128-
messageExpressionIndex === 0 ? constructorBodyNode.range[0] : constructorBody[messageExpressionIndex - 1].range[1],
129-
expression.range[1],
130-
]);
127+
const start = messageExpressionIndex === 0
128+
? sourceCode.getRange(constructorBodyNode)[0]
129+
: sourceCode.getRange(constructorBody[messageExpressionIndex - 1])[1];
130+
const [, end] = sourceCode.getRange(expression);
131+
yield fixer.removeRange([start, end]);
131132
},
132133
};
133134
}

rules/empty-brace-spaces.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ const getProblem = (node, context) => {
1212
: isOpeningBraceToken;
1313
const openingBrace = sourceCode.getFirstToken(node, {filter});
1414
const closingBrace = sourceCode.getLastToken(node);
15-
const [, start] = openingBrace.range;
16-
const [end] = closingBrace.range;
15+
const [, start] = sourceCode.getRange(openingBrace);
16+
const [end] = sourceCode.getRange(closingBrace);
1717
const textBetween = sourceCode.text.slice(start, end);
1818

1919
if (!/^\s+$/.test(textBetween)) {

rules/fix/remove-argument.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,20 @@ export default function removeArgument(fixer, node, sourceCode) {
88
const firstToken = parentheses[0] || node;
99
const lastToken = parentheses.at(-1) || node;
1010

11-
let [start] = firstToken.range;
12-
let [, end] = lastToken.range;
11+
let [start] = sourceCode.getRange(firstToken);
12+
let [, end] = sourceCode.getRange(lastToken);
1313

1414
if (index !== 0) {
15-
start = sourceCode.getTokenBefore(firstToken).range[0];
15+
const commaToken = sourceCode.getTokenBefore(firstToken);
16+
[start] = sourceCode.getRange(commaToken);
1617
}
1718

1819
// If the removed argument is the only argument, the trailing comma must be removed too
1920
/* c8 ignore start */
2021
if (callExpression.arguments.length === 1) {
2122
const tokenAfter = sourceCode.getTokenBefore(lastToken);
2223
if (isCommaToken(tokenAfter)) {
23-
end = tokenAfter[1];
24+
[, end] = sourceCode.getRange(tokenAfter);
2425
}
2526
}
2627
/* c8 ignore end */

rules/fix/remove-member-expression-property.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ import {getParenthesizedRange} from '../utils/parentheses.js';
22

33
export default function removeMemberExpressionProperty(fixer, memberExpression, sourceCode) {
44
const [, start] = getParenthesizedRange(memberExpression.object, sourceCode);
5-
const [, end] = memberExpression.range;
5+
const [, end] = sourceCode.getRange(memberExpression);
66
return fixer.removeRange([start, end]);
77
}

rules/fix/remove-method-call.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default function * removeMethodCall(fixer, callExpression, sourceCode) {
1111
// `(( (( foo )).bar ))()`
1212
// ^^
1313
const [, start] = getParenthesizedRange(memberExpression, sourceCode);
14-
const [, end] = callExpression.range;
14+
const [, end] = sourceCode.getRange(callExpression);
1515

1616
yield fixer.removeRange([start, end]);
1717
}

rules/fix/remove-specifier.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ export default function * removeSpecifier(specifier, fixer, sourceCode, keepDecl
1717

1818
const hasDefaultImport = specifiers.some(node => node.type === 'ImportDefaultSpecifier');
1919
const startToken = sourceCode.getTokenBefore(specifier, hasDefaultImport ? isCommaToken : isOpeningBraceToken);
20+
const [start] = sourceCode.getRange(startToken);
21+
const [end] = sourceCode.getRange(fromToken);
2022
const tokenBefore = sourceCode.getTokenBefore(startToken);
23+
const shouldInsertSpace = sourceCode.getRange(tokenBefore)[1] === start;
2124

22-
yield fixer.replaceTextRange(
23-
[startToken.range[0], fromToken.range[0]],
24-
tokenBefore.range[1] === startToken.range[0] ? ' ' : '',
25-
);
25+
yield fixer.replaceTextRange([start, end], shouldInsertSpace ? ' ' : '');
2626
return;
2727
}
2828
// Fallthrough

rules/fix/replace-node-or-token-and-spaces-before.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export default function * replaceNodeOrTokenAndSpacesBefore(nodeOrToken, replace
77
yield * replaceNodeOrTokenAndSpacesBefore(token, '', fixer, sourceCode, tokenStore);
88
}
99

10-
let [start, end] = nodeOrToken.range;
10+
let [start, end] = sourceCode.getRange(nodeOrToken);
1111

1212
const textBefore = sourceCode.text.slice(0, start);
1313
const [trailingSpaces] = textBefore.match(/\s*$/);

rules/no-anonymous-default-export.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,20 @@ function addName(fixer, node, name, sourceCode) {
6464
node,
6565
isOpeningParenToken,
6666
);
67+
const characterBefore = sourceCode.text.charAt(sourceCode.getRange(openingParenthesisToken)[0] - 1);
6768
return fixer.insertTextBefore(
6869
openingParenthesisToken,
69-
`${sourceCode.text.charAt(openingParenthesisToken.range[0] - 1) === ' ' ? '' : ' '}${name} `,
70+
`${characterBefore === ' ' ? '' : ' '}${name} `,
7071
);
7172
}
7273

7374
case 'ArrowFunctionExpression': {
7475
const [exportDeclarationStart, exportDeclarationEnd]
75-
= node.parent.type === 'ExportDefaultDeclaration'
76-
? node.parent.range
77-
: node.parent.parent.range;
76+
= sourceCode.getRange(
77+
node.parent.type === 'ExportDefaultDeclaration'
78+
? node.parent
79+
: node.parent.parent,
80+
);
7881
const [arrowFunctionStart, arrowFunctionEnd] = getParenthesizedRange(node, sourceCode);
7982

8083
let textBefore = sourceCode.text.slice(exportDeclarationStart, arrowFunctionStart);

rules/no-array-for-each.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ function getFixFunction(callExpression, functionInfo, context) {
120120
};
121121

122122
const getForOfLoopHeadRange = () => {
123-
const [start] = callExpression.range;
123+
const [start] = sourceCode.getRange(callExpression);
124124
const [end] = getParenthesizedRange(callback.body, sourceCode);
125125
return [start, end];
126126
};
@@ -262,7 +262,7 @@ function getFixFunction(callExpression, functionInfo, context) {
262262
}
263263

264264
// Prevent possible variable conflicts
265-
yield * extendFixRange(fixer, callExpression.parent.range);
265+
yield * extendFixRange(fixer, sourceCode.getRange(callExpression.parent));
266266
};
267267
}
268268

@@ -290,9 +290,10 @@ function isFunctionParametersSafeToFix(callbackFunction, {sourceCode, scope, cal
290290
}
291291

292292
const variableName = definition.name.name;
293-
const [callExpressionStart, callExpressionEnd] = callExpression.range;
293+
const [callExpressionStart, callExpressionEnd] = sourceCode.getRange(callExpression);
294294
for (const identifier of allIdentifiers) {
295-
const {name, range: [start, end]} = identifier;
295+
const {name} = identifier;
296+
const [start, end] = sourceCode.getRange(identifier);
296297
if (
297298
name !== variableName
298299
|| start < callExpressionStart

0 commit comments

Comments
 (0)