Skip to content

Commit f7a1e39

Browse files
cjihrigMylesBorins
authored andcommitted
tools: simplify no-let-in-for-declaration rule
PR-URL: #17572 Reviewed-By: Anatoli Papirovski <[email protected]>
1 parent e157e1c commit f7a1e39

File tree

1 file changed

+14
-32
lines changed

1 file changed

+14
-32
lines changed

tools/eslint-rules/no-let-in-for-declaration.js

+14-32
Original file line numberDiff line numberDiff line change
@@ -11,46 +11,28 @@
1111
//------------------------------------------------------------------------------
1212
// Rule Definition
1313
//------------------------------------------------------------------------------
14+
const message = 'Use of `let` as the loop variable in a for-loop is ' +
15+
'not recommended. Please use `var` instead.';
16+
const forSelector = 'ForStatement[init.kind="let"]';
17+
const forInOfSelector = 'ForOfStatement[left.kind="let"],' +
18+
'ForInStatement[left.kind="let"]';
1419

1520
module.exports = {
1621
create(context) {
1722
const sourceCode = context.getSourceCode();
18-
const msg = 'Use of `let` as the loop variable in a for-loop is ' +
19-
'not recommended. Please use `var` instead.';
20-
21-
/**
22-
* Report function to test if the for-loop is declared using `let`.
23-
*/
24-
function testForLoop(node) {
25-
if (node.init && node.init.kind === 'let') {
26-
context.report({
27-
node: node.init,
28-
message: msg,
29-
fix: (fixer) =>
30-
fixer.replaceText(sourceCode.getFirstToken(node.init), 'var')
31-
});
32-
}
33-
}
3423

35-
/**
36-
* Report function to test if the for-in or for-of loop
37-
* is declared using `let`.
38-
*/
39-
function testForInOfLoop(node) {
40-
if (node.left && node.left.kind === 'let') {
41-
context.report({
42-
node: node.left,
43-
message: msg,
44-
fix: (fixer) =>
45-
fixer.replaceText(sourceCode.getFirstToken(node.left), 'var')
46-
});
47-
}
24+
function report(node) {
25+
context.report({
26+
node,
27+
message,
28+
fix: (fixer) =>
29+
fixer.replaceText(sourceCode.getFirstToken(node), 'var')
30+
});
4831
}
4932

5033
return {
51-
'ForStatement': testForLoop,
52-
'ForInStatement': testForInOfLoop,
53-
'ForOfStatement': testForInOfLoop
34+
[forSelector]: (node) => report(node.init),
35+
[forInOfSelector]: (node) => report(node.left),
5436
};
5537
}
5638
};

0 commit comments

Comments
 (0)