@@ -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