Skip to content

Commit da01e7b

Browse files
authored
no-for-loop: Use generator function instead of return array (#748)
1 parent 2002093 commit da01e7b

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

rules/no-for-loop.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ const create = context => {
345345
const shouldFix = !someVariablesLeakOutOfTheLoop(node, [indexVariable, elementVariable].filter(Boolean), forScope);
346346

347347
if (shouldFix) {
348-
problem.fix = fixer => {
348+
problem.fix = function * (fixer) {
349349
const shouldGenerateIndex = isIndexVariableUsedElsewhereInTheLoopBody(indexVariable, bodyScope, arrayIdentifierName);
350350

351351
const index = indexIdentifierName;
@@ -372,24 +372,24 @@ const create = context => {
372372
`${declarationType} [${index}, ${declarationElement}] of ${array}.entries()` :
373373
`${declarationType} ${declarationElement} of ${array}`;
374374

375-
return [
376-
fixer.replaceTextRange([
377-
node.init.range[0],
378-
node.update.range[1]
379-
], replacement),
380-
...arrayReferences.map(reference => {
381-
if (reference === elementReference) {
382-
return;
383-
}
384-
385-
return fixer.replaceText(reference.identifier.parent, element);
386-
}),
387-
elementNode && (
388-
removeDeclaration ?
389-
fixer.removeRange(getRemovalRange(elementNode, sourceCode)) :
390-
fixer.replaceText(elementNode.init, element)
391-
)
392-
].filter(Boolean);
375+
yield fixer.replaceTextRange([
376+
node.init.range[0],
377+
node.update.range[1]
378+
], replacement);
379+
380+
for (const reference of arrayReferences) {
381+
if (reference !== elementReference) {
382+
yield fixer.replaceText(reference.identifier.parent, element);
383+
}
384+
}
385+
386+
if (elementNode) {
387+
if (removeDeclaration) {
388+
yield fixer.removeRange(getRemovalRange(elementNode, sourceCode));
389+
} else {
390+
yield fixer.replaceText(elementNode.init, element);
391+
}
392+
}
393393
};
394394
}
395395

0 commit comments

Comments
 (0)