tools: add fixer for no-let-in-for-declaration

PR-URL: https://github.com/nodejs/node/pull/16642
Refs: https://github.com/nodejs/node/issues/16636
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
This commit is contained in:
Weijia Wang authored and Anatoli Papirovski committed 2017-11-04 10:56:36 -04:00
1 parent 92f86632d5
commit 04ffa36e23
2 files changed
+16 -3

No files matched your search

@@ -24,14 +24,17 @@ ruleTester.run('no-let-in-for-declaration', rule, {
invalid: [
{
code: 'for (let foo = 1;;);',
output: 'for (var foo = 1;;);',
errors: [{ message }]
},
{
code: 'for (let foo in bar);',
output: 'for (var foo in bar);',
errors: [{ message }]
},
{
code: 'for (let foo of bar);',
output: 'for (var foo of bar);',
errors: [{ message }]
}
]
@@ -14,7 +14,7 @@
module.exports = {
create(context) {
const sourceCode = context.getSourceCode();
const msg = 'Use of `let` as the loop variable in a for-loop is ' +
'not recommended. Please use `var` instead.';
@@ -23,7 +23,12 @@ module.exports = {
*/
function testForLoop(node) {
if (node.init && node.init.kind === 'let') {
context.report(node.init, msg);
context.report({
node: node.init,
message: msg,
fix: (fixer) =>
fixer.replaceText(sourceCode.getFirstToken(node.init), 'var')
});
}
}
@@ -33,7 +38,12 @@ module.exports = {
*/
function testForInOfLoop(node) {
if (node.left && node.left.kind === 'let') {
context.report(node.left, msg);
context.report({
node: node.left,
message: msg,
fix: (fixer) =>
fixer.replaceText(sourceCode.getFirstToken(node.left), 'var')
});
}
}