Skip to content

Commit a91fb54

Browse files
starkwanggibfahn
authored andcommitted
tools: add fixer for no-let-in-for-declaration
PR-URL: #16642 Refs: #16636 Reviewed-By: Anatoli Papirovski <[email protected]> Reviewed-By: Gireesh Punathil <[email protected]> Reviewed-By: Tobias Nießen <[email protected]>
1 parent 5a1a567 commit a91fb54

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

‎test/parallel/test-eslint-no-let-in-for-declaration.js‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,17 @@ ruleTester.run('no-let-in-for-declaration', rule,{
2424
invalid: [
2525
{
2626
code: 'for (let foo = 1;);',
27+
output: 'for (var foo = 1;);',
2728
errors: [{ message }]
2829
},
2930
{
3031
code: 'for (let foo in bar);',
32+
output: 'for (var foo in bar);',
3133
errors: [{ message }]
3234
},
3335
{
3436
code: 'for (let foo of bar);',
37+
output: 'for (var foo of bar);',
3538
errors: [{ message }]
3639
}
3740
]

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

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
module.exports={
1616
create(context){
17-
17+
constsourceCode=context.getSourceCode();
1818
constmsg='Use of `let` as the loop variable in a for-loop is '+
1919
'not recommended. Please use `var` instead.';
2020

@@ -23,7 +23,12 @@ module.exports ={
2323
*/
2424
functiontestForLoop(node){
2525
if(node.init&&node.init.kind==='let'){
26-
context.report(node.init,msg);
26+
context.report({
27+
node: node.init,
28+
message: msg,
29+
fix: (fixer)=>
30+
fixer.replaceText(sourceCode.getFirstToken(node.init),'var')
31+
});
2732
}
2833
}
2934

@@ -33,7 +38,12 @@ module.exports ={
3338
*/
3439
functiontestForInOfLoop(node){
3540
if(node.left&&node.left.kind==='let'){
36-
context.report(node.left,msg);
41+
context.report({
42+
node: node.left,
43+
message: msg,
44+
fix: (fixer)=>
45+
fixer.replaceText(sourceCode.getFirstToken(node.left),'var')
46+
});
3747
}
3848
}
3949

0 commit comments

Comments
(0)