From 25d6c311de3dadad7efce85d2c40ad0cc51ec841 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 24 May 2022 19:49:04 +0800 Subject: [PATCH 1/6] Add failed tests --- test/no-array-for-each.mjs | 28 ++ test/snapshots/no-array-for-each.mjs.md | 334 ++++++++++++++++++---- test/snapshots/no-array-for-each.mjs.snap | Bin 10745 -> 11203 bytes 3 files changed, 314 insertions(+), 48 deletions(-) diff --git a/test/no-array-for-each.mjs b/test/no-array-for-each.mjs index 450cc960d1..94bd77955f 100644 --- a/test/no-array-for-each.mjs +++ b/test/no-array-for-each.mjs @@ -367,6 +367,34 @@ test.snapshot({ element ++; }) `, + outdent` + foo.forEach(element => { + ({element} = foo); + }) + `, + outdent` + foo.forEach(element => { + [element] = foo; + }) + `, + outdent` + foo.forEach(element => { + let a; + ({a = element} = foo); + }) + `, + outdent` + foo.forEach(element => { + let a; + ({element = a} = foo); + }) + `, + outdent` + foo.forEach(element => { + let a; + ({element: a} = foo); + }) + `, outdent` foo.forEach(element => { const a = -- element; diff --git a/test/snapshots/no-array-for-each.mjs.md b/test/snapshots/no-array-for-each.mjs.md index 714f5dd1b6..8bbabf1b12 100644 --- a/test/snapshots/no-array-for-each.mjs.md +++ b/test/snapshots/no-array-for-each.mjs.md @@ -3239,6 +3239,244 @@ Generated by [AVA](https://avajs.dev). ` ## Invalid #182 + 1 | foo.forEach(element => { + 2 | ({element} = foo); + 3 | }) + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | ({element} = foo);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({element} = foo);␊ + 3 | })␊ + ` + +## Invalid #183 + 1 | foo?.forEach(element => { + 2 | ({element} = foo); + 3 | }) + +> Output + + `␊ + 1 | if (foo) for (const element of foo) {␊ + 2 | ({element} = foo);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo?.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({element} = foo);␊ + 3 | })␊ + ` + +## Invalid #184 + 1 | foo.forEach(element => { + 2 | [element] = foo; + 3 | }) + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [element] = foo;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [element] = foo;␊ + 3 | })␊ + ` + +## Invalid #185 + 1 | foo?.forEach(element => { + 2 | [element] = foo; + 3 | }) + +> Output + + `␊ + 1 | if (foo) for (const element of foo) {␊ + 2 | [element] = foo;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo?.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [element] = foo;␊ + 3 | })␊ + ` + +## Invalid #186 + 1 | foo.forEach(element => { + 2 | let a; + 3 | ({a = element} = foo); + 4 | }) + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | let a;␊ + 3 | ({a = element} = foo);␊ + 4 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | let a;␊ + 3 | ({a = element} = foo);␊ + 4 | })␊ + ` + +## Invalid #187 + 1 | foo?.forEach(element => { + 2 | let a; + 3 | ({a = element} = foo); + 4 | }) + +> Output + + `␊ + 1 | if (foo) for (const element of foo) {␊ + 2 | let a;␊ + 3 | ({a = element} = foo);␊ + 4 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo?.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | let a;␊ + 3 | ({a = element} = foo);␊ + 4 | })␊ + ` + +## Invalid #188 + 1 | foo.forEach(element => { + 2 | let a; + 3 | ({element = a} = foo); + 4 | }) + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | let a;␊ + 3 | ({element = a} = foo);␊ + 4 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | let a;␊ + 3 | ({element = a} = foo);␊ + 4 | })␊ + ` + +## Invalid #189 + 1 | foo?.forEach(element => { + 2 | let a; + 3 | ({element = a} = foo); + 4 | }) + +> Output + + `␊ + 1 | if (foo) for (const element of foo) {␊ + 2 | let a;␊ + 3 | ({element = a} = foo);␊ + 4 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo?.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | let a;␊ + 3 | ({element = a} = foo);␊ + 4 | })␊ + ` + +## Invalid #190 + 1 | foo.forEach(element => { + 2 | let a; + 3 | ({element: a} = foo); + 4 | }) + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | let a;␊ + 3 | ({element: a} = foo);␊ + 4 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | let a;␊ + 3 | ({element: a} = foo);␊ + 4 | })␊ + ` + +## Invalid #191 + 1 | foo?.forEach(element => { + 2 | let a; + 3 | ({element: a} = foo); + 4 | }) + +> Output + + `␊ + 1 | if (foo) for (const element of foo) {␊ + 2 | let a;␊ + 3 | ({element: a} = foo);␊ + 4 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo?.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | let a;␊ + 3 | ({element: a} = foo);␊ + 4 | })␊ + ` + +## Invalid #192 1 | foo.forEach(element => { 2 | const a = -- element; 3 | }) @@ -3260,7 +3498,7 @@ Generated by [AVA](https://avajs.dev). 3 | })␊ ` -## Invalid #183 +## Invalid #193 1 | foo?.forEach(element => { 2 | const a = -- element; 3 | }) @@ -3282,7 +3520,7 @@ Generated by [AVA](https://avajs.dev). 3 | })␊ ` -## Invalid #184 +## Invalid #194 1 | foo.forEach((element, index) => { 2 | index ++; 3 | element = 2 @@ -3307,7 +3545,7 @@ Generated by [AVA](https://avajs.dev). 4 | });␊ ` -## Invalid #185 +## Invalid #195 1 | foo?.forEach((element, index) => { 2 | index ++; 3 | element = 2 @@ -3332,7 +3570,7 @@ Generated by [AVA](https://avajs.dev). 4 | });␊ ` -## Invalid #186 +## Invalid #196 1 | foo.forEach((element, index) => { 2 | element >>>= 2; 3 | }); @@ -3354,7 +3592,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #187 +## Invalid #197 1 | foo?.forEach((element, index) => { 2 | element >>>= 2; 3 | }); @@ -3376,7 +3614,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #188 +## Invalid #198 1 | foo.forEach((element, index) => { 2 | const a = element = 1; 3 | }); @@ -3398,7 +3636,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #189 +## Invalid #199 1 | foo?.forEach((element, index) => { 2 | const a = element = 1; 3 | }); @@ -3420,7 +3658,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #190 +## Invalid #200 1 | foo.forEach((element, index) => { 2 | let a; 3 | a >>>= element; @@ -3445,7 +3683,7 @@ Generated by [AVA](https://avajs.dev). 4 | });␊ ` -## Invalid #191 +## Invalid #201 1 | foo?.forEach((element, index) => { 2 | let a; 3 | a >>>= element; @@ -3470,7 +3708,7 @@ Generated by [AVA](https://avajs.dev). 4 | });␊ ` -## Invalid #192 +## Invalid #202 1 | foo.forEach(({property}) => {bar(property)}) > Output @@ -3486,7 +3724,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #193 +## Invalid #203 1 | foo?.forEach(({property}) => {bar(property)}) > Output @@ -3502,7 +3740,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #194 +## Invalid #204 1 | foo.forEach(({foo: {foo: [property]}}) => {bar(property, index)}) > Output @@ -3518,7 +3756,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #195 +## Invalid #205 1 | foo?.forEach(({foo: {foo: [property]}}) => {bar(property, index)}) > Output @@ -3534,7 +3772,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #196 +## Invalid #206 1 | foo.forEach((element, {bar: {bar: [index]}}) => {bar(element, index)}) > Output @@ -3550,7 +3788,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #197 +## Invalid #207 1 | foo?.forEach((element, {bar: {bar: [index]}}) => {bar(element, index)}) > Output @@ -3566,7 +3804,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #198 +## Invalid #208 1 | foo.forEach((element = elementDefaultValue, index = indexDefaultValue) => {}) > Output @@ -3582,7 +3820,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #199 +## Invalid #209 1 | foo?.forEach((element = elementDefaultValue, index = indexDefaultValue) => {}) > Output @@ -3598,7 +3836,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #200 +## Invalid #210 1 | foo.forEach(({}) => {}) > Output @@ -3614,7 +3852,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #201 +## Invalid #211 1 | foo?.forEach(({}) => {}) > Output @@ -3630,7 +3868,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #202 +## Invalid #212 1 | foo.forEach(function foo({a, b, c, d}) {}) > Output @@ -3646,7 +3884,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #203 +## Invalid #213 1 | foo?.forEach(function foo({a, b, c, d}) {}) > Output @@ -3662,7 +3900,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #204 +## Invalid #214 1 | foo.forEach(function foo({a, b, c, d, foo}) {}) > Error 1/1 @@ -3672,7 +3910,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #205 +## Invalid #215 1 | foo?.forEach(function foo({a, b, c, d, foo}) {}) > Error 1/1 @@ -3682,7 +3920,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #206 +## Invalid #216 1 | foo.forEach(({foo: property}) => {bar(property)}) > Output @@ -3698,7 +3936,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #207 +## Invalid #217 1 | foo?.forEach(({foo: property}) => {bar(property)}) > Output @@ -3714,7 +3952,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #208 +## Invalid #218 1 | foo.forEach(({[foo]: property}) => {bar(property)}) > Output @@ -3730,7 +3968,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #209 +## Invalid #219 1 | foo?.forEach(({[foo]: property}) => {bar(property)}) > Output @@ -3746,7 +3984,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #210 +## Invalid #220 1 | foo.forEach(({element}, index) => { 2 | element &&= 2; 3 | }); @@ -3768,7 +4006,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #211 +## Invalid #221 1 | foo?.forEach(({element}, index) => { 2 | element &&= 2; 3 | }); @@ -3790,7 +4028,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #212 +## Invalid #222 1 | foo.forEach(_ => { 2 | if (true) return {}; 3 | }) @@ -3812,7 +4050,7 @@ Generated by [AVA](https://avajs.dev). 3 | })␊ ` -## Invalid #213 +## Invalid #223 1 | foo?.forEach(_ => { 2 | if (true) return {}; 3 | }) @@ -3834,7 +4072,7 @@ Generated by [AVA](https://avajs.dev). 3 | })␊ ` -## Invalid #214 +## Invalid #224 1 | foo.forEach(_ => { 2 | if (true); 3 | else return {}; @@ -3859,7 +4097,7 @@ Generated by [AVA](https://avajs.dev). 4 | })␊ ` -## Invalid #215 +## Invalid #225 1 | foo?.forEach(_ => { 2 | if (true); 3 | else return {}; @@ -3884,7 +4122,7 @@ Generated by [AVA](https://avajs.dev). 4 | })␊ ` -## Invalid #216 +## Invalid #226 1 | if (true) {} else[foo].forEach((element) => {}) > Output @@ -3900,7 +4138,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #217 +## Invalid #227 1 | if (true) {} else[foo]?.forEach((element) => {}) > Output @@ -3916,7 +4154,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #218 +## Invalid #228 1 | const a = () => (( foo.forEach(element => bar(element)) )) > Output @@ -3932,7 +4170,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #219 +## Invalid #229 1 | const a = () => (( foo?.forEach(element => bar(element)) )) > Output @@ -3948,7 +4186,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #220 +## Invalid #230 1 | const a = () => (( foo.forEach(element => bar(element)) )); > Output @@ -3964,7 +4202,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #221 +## Invalid #231 1 | const a = () => (( foo?.forEach(element => bar(element)) )); > Output @@ -3980,7 +4218,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #222 +## Invalid #232 1 | const a = () => foo.forEach(element => bar(element)) > Output @@ -3996,7 +4234,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #223 +## Invalid #233 1 | const a = () => foo?.forEach(element => bar(element)) > Output @@ -4012,7 +4250,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #224 +## Invalid #234 1 | const a = () => foo.forEach(element => bar(element)); > Output @@ -4028,7 +4266,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #225 +## Invalid #235 1 | const a = () => foo?.forEach(element => bar(element)); > Output @@ -4044,7 +4282,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #226 +## Invalid #236 1 | const a = () => void foo.forEach(element => bar(element)); > Error 1/1 @@ -4054,7 +4292,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #227 +## Invalid #237 1 | const a = () => void foo?.forEach(element => bar(element)); > Error 1/1 @@ -4064,7 +4302,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #228 +## Invalid #238 1 | 1?.forEach((a, b) => call(a, b)) > Output @@ -4080,7 +4318,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #229 +## Invalid #239 1 | array.forEach((arrayInArray) => arrayInArray.forEach(element => bar(element))); > Output @@ -4103,7 +4341,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #230 +## Invalid #240 1 | array.forEach((arrayInArray) => arrayInArray?.forEach(element => bar(element))); > Output diff --git a/test/snapshots/no-array-for-each.mjs.snap b/test/snapshots/no-array-for-each.mjs.snap index 022e5555db979e7900fd67272c0c05cee17e9eff..9c6c9f8e5057fba9d1fb5d55277654fa1fc434fd 100644 GIT binary patch literal 11203 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 literal 10745 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 Date: Tue, 24 May 2022 20:14:33 +0800 Subject: [PATCH 2/6] Fix --- rules/no-array-for-each.js | 31 +++++++++++++++------- test/snapshots/no-array-for-each.mjs.md | 4 +-- test/snapshots/no-array-for-each.mjs.snap | Bin 11203 -> 11212 bytes 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/rules/no-array-for-each.js b/rules/no-array-for-each.js index be0a55e2cd..dbdddb985b 100644 --- a/rules/no-array-for-each.js +++ b/rules/no-array-for-each.js @@ -317,18 +317,31 @@ function isFunctionParametersSafeToFix(callbackFunction, {context, scope, callEx return true; } +// TODO[@fisker]: Merge this function with `./utils/is-left-hand-side.js` +function isAssignmentLeftHandSide(node) { + const {parent} = node; + switch (parent.type) { + case 'AssignmentExpression': + return parent.left === node; + case 'UpdateExpression': + return parent.argument === node; + case 'ObjectProperty': + return parent.value === node && isAssignmentLeftHandSide(parent); + case 'ArrayPattern': + return parent.elements.includes(node) && isAssignmentLeftHandSide(parent); + case 'AssignmentPattern': + return parent.left === node && isAssignmentLeftHandSide(parent); + } + + return false; +} + function isFunctionParameterVariableReassigned(callbackFunction, context) { return context.getDeclaredVariables(callbackFunction) .filter(variable => variable.defs[0].type === 'Parameter') - .some(variable => { - const {references} = variable; - return references.some(reference => { - const node = reference.identifier; - const {parent} = node; - return parent.type === 'UpdateExpression' - || (parent.type === 'AssignmentExpression' && parent.left === node); - }); - }); + .some(variable => + variable.references.some(reference => isAssignmentLeftHandSide(reference.identifier)) + ); } function isFixable(callExpression, {scope, functionInfo, allIdentifiers, context}) { diff --git a/test/snapshots/no-array-for-each.mjs.md b/test/snapshots/no-array-for-each.mjs.md index 8bbabf1b12..e0ed7aa875 100644 --- a/test/snapshots/no-array-for-each.mjs.md +++ b/test/snapshots/no-array-for-each.mjs.md @@ -3290,7 +3290,7 @@ Generated by [AVA](https://avajs.dev). > Output `␊ - 1 | for (const element of foo) {␊ + 1 | for (let element of foo) {␊ 2 | [element] = foo;␊ 3 | }␊ ` @@ -3312,7 +3312,7 @@ Generated by [AVA](https://avajs.dev). > Output `␊ - 1 | if (foo) for (const element of foo) {␊ + 1 | if (foo) for (let element of foo) {␊ 2 | [element] = foo;␊ 3 | }␊ ` diff --git a/test/snapshots/no-array-for-each.mjs.snap b/test/snapshots/no-array-for-each.mjs.snap index 9c6c9f8e5057fba9d1fb5d55277654fa1fc434fd..4ba86d0a31779a8697416a9ba5afb7459dbf3dc4 100644 GIT binary patch literal 11212 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 From e1bf66b33dd1bdd1e3b42bffc4b876f7e50b1612 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 24 May 2022 20:28:11 +0800 Subject: [PATCH 3/6] Fix --- rules/no-array-for-each.js | 10 ++++++---- test/snapshots/no-array-for-each.mjs.md | 8 ++++---- test/snapshots/no-array-for-each.mjs.snap | Bin 11212 -> 11219 bytes 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/rules/no-array-for-each.js b/rules/no-array-for-each.js index dbdddb985b..e4a8aed601 100644 --- a/rules/no-array-for-each.js +++ b/rules/no-array-for-each.js @@ -317,7 +317,7 @@ function isFunctionParametersSafeToFix(callbackFunction, {context, scope, callEx return true; } -// TODO[@fisker]: Merge this function with `./utils/is-left-hand-side.js` +// TODO[@fisker]: Improve `./utils/is-left-hand-side.js` with similar logic function isAssignmentLeftHandSide(node) { const {parent} = node; switch (parent.type) { @@ -325,12 +325,14 @@ function isAssignmentLeftHandSide(node) { return parent.left === node; case 'UpdateExpression': return parent.argument === node; - case 'ObjectProperty': + case 'Property': return parent.value === node && isAssignmentLeftHandSide(parent); - case 'ArrayPattern': - return parent.elements.includes(node) && isAssignmentLeftHandSide(parent); case 'AssignmentPattern': return parent.left === node && isAssignmentLeftHandSide(parent); + case 'ArrayPattern': + return parent.elements.includes(node) && isAssignmentLeftHandSide(parent); + case 'ObjectPattern': + return parent.properties.includes(node) && isAssignmentLeftHandSide(parent); } return false; diff --git a/test/snapshots/no-array-for-each.mjs.md b/test/snapshots/no-array-for-each.mjs.md index e0ed7aa875..996ccca1b8 100644 --- a/test/snapshots/no-array-for-each.mjs.md +++ b/test/snapshots/no-array-for-each.mjs.md @@ -3246,7 +3246,7 @@ Generated by [AVA](https://avajs.dev). > Output `␊ - 1 | for (const element of foo) {␊ + 1 | for (let element of foo) {␊ 2 | ({element} = foo);␊ 3 | }␊ ` @@ -3268,7 +3268,7 @@ Generated by [AVA](https://avajs.dev). > Output `␊ - 1 | if (foo) for (const element of foo) {␊ + 1 | if (foo) for (let element of foo) {␊ 2 | ({element} = foo);␊ 3 | }␊ ` @@ -3385,7 +3385,7 @@ Generated by [AVA](https://avajs.dev). > Output `␊ - 1 | for (const element of foo) {␊ + 1 | for (let element of foo) {␊ 2 | let a;␊ 3 | ({element = a} = foo);␊ 4 | }␊ @@ -3410,7 +3410,7 @@ Generated by [AVA](https://avajs.dev). > Output `␊ - 1 | if (foo) for (const element of foo) {␊ + 1 | if (foo) for (let element of foo) {␊ 2 | let a;␊ 3 | ({element = a} = foo);␊ 4 | }␊ diff --git a/test/snapshots/no-array-for-each.mjs.snap b/test/snapshots/no-array-for-each.mjs.snap index 4ba86d0a31779a8697416a9ba5afb7459dbf3dc4..39f0b04a647e434e37fd1893ca688d9ba05234da 100644 GIT binary patch literal 11219 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 qLG#u$Xz7*nD`)#Tb_z5;hN$l0GE^GTu Date: Tue, 24 May 2022 20:41:30 +0800 Subject: [PATCH 4/6] More tests --- rules/no-array-for-each.js | 1 + test/no-array-for-each.mjs | 77 +- test/snapshots/no-array-for-each.mjs.md | 820 ++++++++++++++-------- test/snapshots/no-array-for-each.mjs.snap | Bin 11219 -> 11761 bytes 4 files changed, 584 insertions(+), 314 deletions(-) diff --git a/rules/no-array-for-each.js b/rules/no-array-for-each.js index e4a8aed601..b5cc809e1f 100644 --- a/rules/no-array-for-each.js +++ b/rules/no-array-for-each.js @@ -320,6 +320,7 @@ function isFunctionParametersSafeToFix(callbackFunction, {context, scope, callEx // TODO[@fisker]: Improve `./utils/is-left-hand-side.js` with similar logic function isAssignmentLeftHandSide(node) { const {parent} = node; + switch (parent.type) { case 'AssignmentExpression': return parent.left === node; diff --git a/test/no-array-for-each.mjs b/test/no-array-for-each.mjs index 94bd77955f..a6b4bc867b 100644 --- a/test/no-array-for-each.mjs +++ b/test/no-array-for-each.mjs @@ -367,34 +367,6 @@ test.snapshot({ element ++; }) `, - outdent` - foo.forEach(element => { - ({element} = foo); - }) - `, - outdent` - foo.forEach(element => { - [element] = foo; - }) - `, - outdent` - foo.forEach(element => { - let a; - ({a = element} = foo); - }) - `, - outdent` - foo.forEach(element => { - let a; - ({element = a} = foo); - }) - `, - outdent` - foo.forEach(element => { - let a; - ({element: a} = foo); - }) - `, outdent` foo.forEach(element => { const a = -- element; @@ -469,6 +441,55 @@ test.snapshot({ // Arrow function body 'array.forEach((arrayInArray) => arrayInArray.forEach(element => bar(element)));', 'array.forEach((arrayInArray) => arrayInArray?.forEach(element => bar(element)));', + + // Destructuring assign + ...[ + '({element} = bar)', + '({element = a} = bar)', + '({a = element} = bar)', + '[element] = bar', + '[element = a] = bar', + '[a = element] = bar', + '({deep: {element}} = bar)', + '({deep: {element = a}} = bar)', + '({deep: {a = element}} = bar)', + '({deep: [element]} = bar)', + '({deep: [element = a]} = bar)', + '({deep: [a = element]} = bar)', + '[{element}] = bar', + '[{element = a}] = bar', + '[{a = element}] = bar', + '[[element]] = bar', + '[[element = a]] = bar', + '[[a = element]] = bar', + ].map(code => outdent` + foo.forEach(element => { + ${code}; + }); + `), + outdent` + foo.forEach(element => { + [ + bar = ((element) => { + [element] = array; + })(element) + ] = baz; + }); + `, + outdent` + foo.forEach(element => { + [ + bar = ((element = array) => element)(element) + ] = baz; + }); + `, + outdent` + foo.forEach(element => { + [ + bar = (([element] = array) => element)(element) + ] = baz; + }); + `, ], }); diff --git a/test/snapshots/no-array-for-each.mjs.md b/test/snapshots/no-array-for-each.mjs.md index 996ccca1b8..22607c13bc 100644 --- a/test/snapshots/no-array-for-each.mjs.md +++ b/test/snapshots/no-array-for-each.mjs.md @@ -3239,244 +3239,6 @@ Generated by [AVA](https://avajs.dev). ` ## Invalid #182 - 1 | foo.forEach(element => { - 2 | ({element} = foo); - 3 | }) - -> Output - - `␊ - 1 | for (let element of foo) {␊ - 2 | ({element} = foo);␊ - 3 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | ({element} = foo);␊ - 3 | })␊ - ` - -## Invalid #183 - 1 | foo?.forEach(element => { - 2 | ({element} = foo); - 3 | }) - -> Output - - `␊ - 1 | if (foo) for (let element of foo) {␊ - 2 | ({element} = foo);␊ - 3 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo?.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | ({element} = foo);␊ - 3 | })␊ - ` - -## Invalid #184 - 1 | foo.forEach(element => { - 2 | [element] = foo; - 3 | }) - -> Output - - `␊ - 1 | for (let element of foo) {␊ - 2 | [element] = foo;␊ - 3 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | [element] = foo;␊ - 3 | })␊ - ` - -## Invalid #185 - 1 | foo?.forEach(element => { - 2 | [element] = foo; - 3 | }) - -> Output - - `␊ - 1 | if (foo) for (let element of foo) {␊ - 2 | [element] = foo;␊ - 3 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo?.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | [element] = foo;␊ - 3 | })␊ - ` - -## Invalid #186 - 1 | foo.forEach(element => { - 2 | let a; - 3 | ({a = element} = foo); - 4 | }) - -> Output - - `␊ - 1 | for (const element of foo) {␊ - 2 | let a;␊ - 3 | ({a = element} = foo);␊ - 4 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | let a;␊ - 3 | ({a = element} = foo);␊ - 4 | })␊ - ` - -## Invalid #187 - 1 | foo?.forEach(element => { - 2 | let a; - 3 | ({a = element} = foo); - 4 | }) - -> Output - - `␊ - 1 | if (foo) for (const element of foo) {␊ - 2 | let a;␊ - 3 | ({a = element} = foo);␊ - 4 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo?.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | let a;␊ - 3 | ({a = element} = foo);␊ - 4 | })␊ - ` - -## Invalid #188 - 1 | foo.forEach(element => { - 2 | let a; - 3 | ({element = a} = foo); - 4 | }) - -> Output - - `␊ - 1 | for (let element of foo) {␊ - 2 | let a;␊ - 3 | ({element = a} = foo);␊ - 4 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | let a;␊ - 3 | ({element = a} = foo);␊ - 4 | })␊ - ` - -## Invalid #189 - 1 | foo?.forEach(element => { - 2 | let a; - 3 | ({element = a} = foo); - 4 | }) - -> Output - - `␊ - 1 | if (foo) for (let element of foo) {␊ - 2 | let a;␊ - 3 | ({element = a} = foo);␊ - 4 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo?.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | let a;␊ - 3 | ({element = a} = foo);␊ - 4 | })␊ - ` - -## Invalid #190 - 1 | foo.forEach(element => { - 2 | let a; - 3 | ({element: a} = foo); - 4 | }) - -> Output - - `␊ - 1 | for (const element of foo) {␊ - 2 | let a;␊ - 3 | ({element: a} = foo);␊ - 4 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | let a;␊ - 3 | ({element: a} = foo);␊ - 4 | })␊ - ` - -## Invalid #191 - 1 | foo?.forEach(element => { - 2 | let a; - 3 | ({element: a} = foo); - 4 | }) - -> Output - - `␊ - 1 | if (foo) for (const element of foo) {␊ - 2 | let a;␊ - 3 | ({element: a} = foo);␊ - 4 | }␊ - ` - -> Error 1/1 - - `␊ - > 1 | foo?.forEach(element => {␊ - | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ - 2 | let a;␊ - 3 | ({element: a} = foo);␊ - 4 | })␊ - ` - -## Invalid #192 1 | foo.forEach(element => { 2 | const a = -- element; 3 | }) @@ -3498,7 +3260,7 @@ Generated by [AVA](https://avajs.dev). 3 | })␊ ` -## Invalid #193 +## Invalid #183 1 | foo?.forEach(element => { 2 | const a = -- element; 3 | }) @@ -3520,7 +3282,7 @@ Generated by [AVA](https://avajs.dev). 3 | })␊ ` -## Invalid #194 +## Invalid #184 1 | foo.forEach((element, index) => { 2 | index ++; 3 | element = 2 @@ -3545,7 +3307,7 @@ Generated by [AVA](https://avajs.dev). 4 | });␊ ` -## Invalid #195 +## Invalid #185 1 | foo?.forEach((element, index) => { 2 | index ++; 3 | element = 2 @@ -3570,7 +3332,7 @@ Generated by [AVA](https://avajs.dev). 4 | });␊ ` -## Invalid #196 +## Invalid #186 1 | foo.forEach((element, index) => { 2 | element >>>= 2; 3 | }); @@ -3592,7 +3354,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #197 +## Invalid #187 1 | foo?.forEach((element, index) => { 2 | element >>>= 2; 3 | }); @@ -3614,7 +3376,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #198 +## Invalid #188 1 | foo.forEach((element, index) => { 2 | const a = element = 1; 3 | }); @@ -3636,7 +3398,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #199 +## Invalid #189 1 | foo?.forEach((element, index) => { 2 | const a = element = 1; 3 | }); @@ -3658,7 +3420,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #200 +## Invalid #190 1 | foo.forEach((element, index) => { 2 | let a; 3 | a >>>= element; @@ -3683,7 +3445,7 @@ Generated by [AVA](https://avajs.dev). 4 | });␊ ` -## Invalid #201 +## Invalid #191 1 | foo?.forEach((element, index) => { 2 | let a; 3 | a >>>= element; @@ -3708,7 +3470,7 @@ Generated by [AVA](https://avajs.dev). 4 | });␊ ` -## Invalid #202 +## Invalid #192 1 | foo.forEach(({property}) => {bar(property)}) > Output @@ -3724,7 +3486,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #203 +## Invalid #193 1 | foo?.forEach(({property}) => {bar(property)}) > Output @@ -3740,7 +3502,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #204 +## Invalid #194 1 | foo.forEach(({foo: {foo: [property]}}) => {bar(property, index)}) > Output @@ -3756,7 +3518,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #205 +## Invalid #195 1 | foo?.forEach(({foo: {foo: [property]}}) => {bar(property, index)}) > Output @@ -3772,7 +3534,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #206 +## Invalid #196 1 | foo.forEach((element, {bar: {bar: [index]}}) => {bar(element, index)}) > Output @@ -3788,7 +3550,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #207 +## Invalid #197 1 | foo?.forEach((element, {bar: {bar: [index]}}) => {bar(element, index)}) > Output @@ -3804,7 +3566,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #208 +## Invalid #198 1 | foo.forEach((element = elementDefaultValue, index = indexDefaultValue) => {}) > Output @@ -3820,7 +3582,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #209 +## Invalid #199 1 | foo?.forEach((element = elementDefaultValue, index = indexDefaultValue) => {}) > Output @@ -3836,7 +3598,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #210 +## Invalid #200 1 | foo.forEach(({}) => {}) > Output @@ -3852,7 +3614,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #211 +## Invalid #201 1 | foo?.forEach(({}) => {}) > Output @@ -3868,7 +3630,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #212 +## Invalid #202 1 | foo.forEach(function foo({a, b, c, d}) {}) > Output @@ -3884,7 +3646,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #213 +## Invalid #203 1 | foo?.forEach(function foo({a, b, c, d}) {}) > Output @@ -3900,7 +3662,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #214 +## Invalid #204 1 | foo.forEach(function foo({a, b, c, d, foo}) {}) > Error 1/1 @@ -3910,7 +3672,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #215 +## Invalid #205 1 | foo?.forEach(function foo({a, b, c, d, foo}) {}) > Error 1/1 @@ -3920,7 +3682,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #216 +## Invalid #206 1 | foo.forEach(({foo: property}) => {bar(property)}) > Output @@ -3936,7 +3698,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #217 +## Invalid #207 1 | foo?.forEach(({foo: property}) => {bar(property)}) > Output @@ -3952,7 +3714,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #218 +## Invalid #208 1 | foo.forEach(({[foo]: property}) => {bar(property)}) > Output @@ -3968,7 +3730,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #219 +## Invalid #209 1 | foo?.forEach(({[foo]: property}) => {bar(property)}) > Output @@ -3984,7 +3746,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #220 +## Invalid #210 1 | foo.forEach(({element}, index) => { 2 | element &&= 2; 3 | }); @@ -4006,7 +3768,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #221 +## Invalid #211 1 | foo?.forEach(({element}, index) => { 2 | element &&= 2; 3 | }); @@ -4028,7 +3790,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #222 +## Invalid #212 1 | foo.forEach(_ => { 2 | if (true) return {}; 3 | }) @@ -4050,7 +3812,7 @@ Generated by [AVA](https://avajs.dev). 3 | })␊ ` -## Invalid #223 +## Invalid #213 1 | foo?.forEach(_ => { 2 | if (true) return {}; 3 | }) @@ -4072,7 +3834,7 @@ Generated by [AVA](https://avajs.dev). 3 | })␊ ` -## Invalid #224 +## Invalid #214 1 | foo.forEach(_ => { 2 | if (true); 3 | else return {}; @@ -4097,7 +3859,7 @@ Generated by [AVA](https://avajs.dev). 4 | })␊ ` -## Invalid #225 +## Invalid #215 1 | foo?.forEach(_ => { 2 | if (true); 3 | else return {}; @@ -4122,7 +3884,7 @@ Generated by [AVA](https://avajs.dev). 4 | })␊ ` -## Invalid #226 +## Invalid #216 1 | if (true) {} else[foo].forEach((element) => {}) > Output @@ -4138,7 +3900,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #227 +## Invalid #217 1 | if (true) {} else[foo]?.forEach((element) => {}) > Output @@ -4154,7 +3916,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #228 +## Invalid #218 1 | const a = () => (( foo.forEach(element => bar(element)) )) > Output @@ -4170,7 +3932,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #229 +## Invalid #219 1 | const a = () => (( foo?.forEach(element => bar(element)) )) > Output @@ -4186,7 +3948,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #230 +## Invalid #220 1 | const a = () => (( foo.forEach(element => bar(element)) )); > Output @@ -4202,7 +3964,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #231 +## Invalid #221 1 | const a = () => (( foo?.forEach(element => bar(element)) )); > Output @@ -4218,7 +3980,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #232 +## Invalid #222 1 | const a = () => foo.forEach(element => bar(element)) > Output @@ -4234,7 +3996,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #233 +## Invalid #223 1 | const a = () => foo?.forEach(element => bar(element)) > Output @@ -4250,7 +4012,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #234 +## Invalid #224 1 | const a = () => foo.forEach(element => bar(element)); > Output @@ -4266,7 +4028,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #235 +## Invalid #225 1 | const a = () => foo?.forEach(element => bar(element)); > Output @@ -4282,7 +4044,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #236 +## Invalid #226 1 | const a = () => void foo.forEach(element => bar(element)); > Error 1/1 @@ -4292,7 +4054,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #237 +## Invalid #227 1 | const a = () => void foo?.forEach(element => bar(element)); > Error 1/1 @@ -4302,7 +4064,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #238 +## Invalid #228 1 | 1?.forEach((a, b) => call(a, b)) > Output @@ -4318,7 +4080,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #239 +## Invalid #229 1 | array.forEach((arrayInArray) => arrayInArray.forEach(element => bar(element))); > Output @@ -4341,7 +4103,7 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` -## Invalid #240 +## Invalid #230 1 | array.forEach((arrayInArray) => arrayInArray?.forEach(element => bar(element))); > Output @@ -4363,3 +4125,489 @@ Generated by [AVA](https://avajs.dev). > 1 | array.forEach((arrayInArray) => arrayInArray?.forEach(element => bar(element)));␊ | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ ` + +## Invalid #231 + 1 | foo.forEach(element => { + 2 | ({element} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({element} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({element} = bar);␊ + 3 | });␊ + ` + +## Invalid #232 + 1 | foo.forEach(element => { + 2 | ({element = a} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({element = a} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({element = a} = bar);␊ + 3 | });␊ + ` + +## Invalid #233 + 1 | foo.forEach(element => { + 2 | ({a = element} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | ({a = element} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({a = element} = bar);␊ + 3 | });␊ + ` + +## Invalid #234 + 1 | foo.forEach(element => { + 2 | [element] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | [element] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [element] = bar;␊ + 3 | });␊ + ` + +## Invalid #235 + 1 | foo.forEach(element => { + 2 | [element = a] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | [element = a] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [element = a] = bar;␊ + 3 | });␊ + ` + +## Invalid #236 + 1 | foo.forEach(element => { + 2 | [a = element] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [a = element] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [a = element] = bar;␊ + 3 | });␊ + ` + +## Invalid #237 + 1 | foo.forEach(element => { + 2 | ({deep: {element}} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({deep: {element}} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: {element}} = bar);␊ + 3 | });␊ + ` + +## Invalid #238 + 1 | foo.forEach(element => { + 2 | ({deep: {element = a}} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({deep: {element = a}} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: {element = a}} = bar);␊ + 3 | });␊ + ` + +## Invalid #239 + 1 | foo.forEach(element => { + 2 | ({deep: {a = element}} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | ({deep: {a = element}} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: {a = element}} = bar);␊ + 3 | });␊ + ` + +## Invalid #240 + 1 | foo.forEach(element => { + 2 | ({deep: [element]} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({deep: [element]} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: [element]} = bar);␊ + 3 | });␊ + ` + +## Invalid #241 + 1 | foo.forEach(element => { + 2 | ({deep: [element = a]} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({deep: [element = a]} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: [element = a]} = bar);␊ + 3 | });␊ + ` + +## Invalid #242 + 1 | foo.forEach(element => { + 2 | ({deep: [a = element]} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | ({deep: [a = element]} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: [a = element]} = bar);␊ + 3 | });␊ + ` + +## Invalid #243 + 1 | foo.forEach(element => { + 2 | [{element}] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | [{element}] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [{element}] = bar;␊ + 3 | });␊ + ` + +## Invalid #244 + 1 | foo.forEach(element => { + 2 | [{element = a}] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | [{element = a}] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [{element = a}] = bar;␊ + 3 | });␊ + ` + +## Invalid #245 + 1 | foo.forEach(element => { + 2 | [{a = element}] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [{a = element}] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [{a = element}] = bar;␊ + 3 | });␊ + ` + +## Invalid #246 + 1 | foo.forEach(element => { + 2 | [[element]] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | [[element]] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [[element]] = bar;␊ + 3 | });␊ + ` + +## Invalid #247 + 1 | foo.forEach(element => { + 2 | [[element = a]] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | [[element = a]] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [[element = a]] = bar;␊ + 3 | });␊ + ` + +## Invalid #248 + 1 | foo.forEach(element => { + 2 | [[a = element]] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [[a = element]] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [[a = element]] = bar;␊ + 3 | });␊ + ` + +## Invalid #249 + 1 | foo.forEach(element => { + 2 | [ + 3 | bar = ((element) => { + 4 | [element] = array; + 5 | })(element) + 6 | ] = baz; + 7 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [␊ + 3 | bar = ((element) => {␊ + 4 | [element] = array;␊ + 5 | })(element)␊ + 6 | ] = baz;␊ + 7 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [␊ + 3 | bar = ((element) => {␊ + 4 | [element] = array;␊ + 5 | })(element)␊ + 6 | ] = baz;␊ + 7 | });␊ + ` + +## Invalid #250 + 1 | foo.forEach(element => { + 2 | [ + 3 | bar = ((element = array) => element)(element) + 4 | ] = baz; + 5 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [␊ + 3 | bar = ((element = array) => element)(element)␊ + 4 | ] = baz;␊ + 5 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [␊ + 3 | bar = ((element = array) => element)(element)␊ + 4 | ] = baz;␊ + 5 | });␊ + ` + +## Invalid #251 + 1 | foo.forEach(element => { + 2 | [ + 3 | bar = (([element] = array) => element)(element) + 4 | ] = baz; + 5 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [␊ + 3 | bar = (([element] = array) => element)(element)␊ + 4 | ] = baz;␊ + 5 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [␊ + 3 | bar = (([element] = array) => element)(element)␊ + 4 | ] = baz;␊ + 5 | });␊ + ` diff --git a/test/snapshots/no-array-for-each.mjs.snap b/test/snapshots/no-array-for-each.mjs.snap index 39f0b04a647e434e37fd1893ca688d9ba05234da..4a1b57b0afd4e1305d4f79b6323b34a05a5a96a9 100644 GIT binary patch literal 11761 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 T{W=;|^85b)d#=E-G5!DmF%|KL literal 11219 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 Date: Tue, 24 May 2022 20:54:05 +0800 Subject: [PATCH 5/6] Lint --- rules/no-array-for-each.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rules/no-array-for-each.js b/rules/no-array-for-each.js index b5cc809e1f..98cbe49f28 100644 --- a/rules/no-array-for-each.js +++ b/rules/no-array-for-each.js @@ -334,16 +334,16 @@ function isAssignmentLeftHandSide(node) { return parent.elements.includes(node) && isAssignmentLeftHandSide(parent); case 'ObjectPattern': return parent.properties.includes(node) && isAssignmentLeftHandSide(parent); + default: + return false; } - - return false; } function isFunctionParameterVariableReassigned(callbackFunction, context) { return context.getDeclaredVariables(callbackFunction) .filter(variable => variable.defs[0].type === 'Parameter') .some(variable => - variable.references.some(reference => isAssignmentLeftHandSide(reference.identifier)) + variable.references.some(reference => isAssignmentLeftHandSide(reference.identifier)), ); } From d2ccba77978bf70d484e772ff63efa3a371cf8e6 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Wed, 25 May 2022 09:49:12 +0800 Subject: [PATCH 6/6] More tests --- test/no-array-for-each.mjs | 12 + test/snapshots/no-array-for-each.mjs.md | 302 ++++++++++++++++++++-- test/snapshots/no-array-for-each.mjs.snap | Bin 11761 -> 12354 bytes 3 files changed, 295 insertions(+), 19 deletions(-) diff --git a/test/no-array-for-each.mjs b/test/no-array-for-each.mjs index a6b4bc867b..aa77f39e2a 100644 --- a/test/no-array-for-each.mjs +++ b/test/no-array-for-each.mjs @@ -445,18 +445,30 @@ test.snapshot({ // Destructuring assign ...[ '({element} = bar)', + '({element: a} = bar)', + '({a: element} = bar)', + '({[element]: a} = bar)', + '({[a]: element} = bar)', '({element = a} = bar)', '({a = element} = bar)', '[element] = bar', '[element = a] = bar', '[a = element] = bar', '({deep: {element}} = bar)', + '({deep: {element: a}} = bar)', + '({deep: {a: element}} = bar)', + '({deep: {[element]: a}} = bar)', + '({deep: {[a]: element}} = bar)', '({deep: {element = a}} = bar)', '({deep: {a = element}} = bar)', '({deep: [element]} = bar)', '({deep: [element = a]} = bar)', '({deep: [a = element]} = bar)', '[{element}] = bar', + '[{element: a}] = bar', + '[{a: element}] = bar', + '[{[element]: a}] = bar', + '[{[a]: element}] = bar', '[{element = a}] = bar', '[{a = element}] = bar', '[[element]] = bar', diff --git a/test/snapshots/no-array-for-each.mjs.md b/test/snapshots/no-array-for-each.mjs.md index 22607c13bc..da2d17333f 100644 --- a/test/snapshots/no-array-for-each.mjs.md +++ b/test/snapshots/no-array-for-each.mjs.md @@ -4149,6 +4149,94 @@ Generated by [AVA](https://avajs.dev). ` ## Invalid #232 + 1 | foo.forEach(element => { + 2 | ({element: a} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | ({element: a} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({element: a} = bar);␊ + 3 | });␊ + ` + +## Invalid #233 + 1 | foo.forEach(element => { + 2 | ({a: element} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({a: element} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({a: element} = bar);␊ + 3 | });␊ + ` + +## Invalid #234 + 1 | foo.forEach(element => { + 2 | ({[element]: a} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | ({[element]: a} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({[element]: a} = bar);␊ + 3 | });␊ + ` + +## Invalid #235 + 1 | foo.forEach(element => { + 2 | ({[a]: element} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({[a]: element} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({[a]: element} = bar);␊ + 3 | });␊ + ` + +## Invalid #236 1 | foo.forEach(element => { 2 | ({element = a} = bar); 3 | }); @@ -4170,7 +4258,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #233 +## Invalid #237 1 | foo.forEach(element => { 2 | ({a = element} = bar); 3 | }); @@ -4192,7 +4280,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #234 +## Invalid #238 1 | foo.forEach(element => { 2 | [element] = bar; 3 | }); @@ -4214,7 +4302,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #235 +## Invalid #239 1 | foo.forEach(element => { 2 | [element = a] = bar; 3 | }); @@ -4236,7 +4324,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #236 +## Invalid #240 1 | foo.forEach(element => { 2 | [a = element] = bar; 3 | }); @@ -4258,7 +4346,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #237 +## Invalid #241 1 | foo.forEach(element => { 2 | ({deep: {element}} = bar); 3 | }); @@ -4280,7 +4368,95 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #238 +## Invalid #242 + 1 | foo.forEach(element => { + 2 | ({deep: {element: a}} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | ({deep: {element: a}} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: {element: a}} = bar);␊ + 3 | });␊ + ` + +## Invalid #243 + 1 | foo.forEach(element => { + 2 | ({deep: {a: element}} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({deep: {a: element}} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: {a: element}} = bar);␊ + 3 | });␊ + ` + +## Invalid #244 + 1 | foo.forEach(element => { + 2 | ({deep: {[element]: a}} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | ({deep: {[element]: a}} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: {[element]: a}} = bar);␊ + 3 | });␊ + ` + +## Invalid #245 + 1 | foo.forEach(element => { + 2 | ({deep: {[a]: element}} = bar); + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | ({deep: {[a]: element}} = bar);␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | ({deep: {[a]: element}} = bar);␊ + 3 | });␊ + ` + +## Invalid #246 1 | foo.forEach(element => { 2 | ({deep: {element = a}} = bar); 3 | }); @@ -4302,7 +4478,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #239 +## Invalid #247 1 | foo.forEach(element => { 2 | ({deep: {a = element}} = bar); 3 | }); @@ -4324,7 +4500,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #240 +## Invalid #248 1 | foo.forEach(element => { 2 | ({deep: [element]} = bar); 3 | }); @@ -4346,7 +4522,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #241 +## Invalid #249 1 | foo.forEach(element => { 2 | ({deep: [element = a]} = bar); 3 | }); @@ -4368,7 +4544,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #242 +## Invalid #250 1 | foo.forEach(element => { 2 | ({deep: [a = element]} = bar); 3 | }); @@ -4390,7 +4566,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #243 +## Invalid #251 1 | foo.forEach(element => { 2 | [{element}] = bar; 3 | }); @@ -4412,7 +4588,95 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #244 +## Invalid #252 + 1 | foo.forEach(element => { + 2 | [{element: a}] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [{element: a}] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [{element: a}] = bar;␊ + 3 | });␊ + ` + +## Invalid #253 + 1 | foo.forEach(element => { + 2 | [{a: element}] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | [{a: element}] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [{a: element}] = bar;␊ + 3 | });␊ + ` + +## Invalid #254 + 1 | foo.forEach(element => { + 2 | [{[element]: a}] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (const element of foo) {␊ + 2 | [{[element]: a}] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [{[element]: a}] = bar;␊ + 3 | });␊ + ` + +## Invalid #255 + 1 | foo.forEach(element => { + 2 | [{[a]: element}] = bar; + 3 | }); + +> Output + + `␊ + 1 | for (let element of foo) {␊ + 2 | [{[a]: element}] = bar;␊ + 3 | }␊ + ` + +> Error 1/1 + + `␊ + > 1 | foo.forEach(element => {␊ + | ^^^^^^^ Use \`for…of\` instead of \`.forEach(…)\`.␊ + 2 | [{[a]: element}] = bar;␊ + 3 | });␊ + ` + +## Invalid #256 1 | foo.forEach(element => { 2 | [{element = a}] = bar; 3 | }); @@ -4434,7 +4698,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #245 +## Invalid #257 1 | foo.forEach(element => { 2 | [{a = element}] = bar; 3 | }); @@ -4456,7 +4720,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #246 +## Invalid #258 1 | foo.forEach(element => { 2 | [[element]] = bar; 3 | }); @@ -4478,7 +4742,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #247 +## Invalid #259 1 | foo.forEach(element => { 2 | [[element = a]] = bar; 3 | }); @@ -4500,7 +4764,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #248 +## Invalid #260 1 | foo.forEach(element => { 2 | [[a = element]] = bar; 3 | }); @@ -4522,7 +4786,7 @@ Generated by [AVA](https://avajs.dev). 3 | });␊ ` -## Invalid #249 +## Invalid #261 1 | foo.forEach(element => { 2 | [ 3 | bar = ((element) => { @@ -4556,7 +4820,7 @@ Generated by [AVA](https://avajs.dev). 7 | });␊ ` -## Invalid #250 +## Invalid #262 1 | foo.forEach(element => { 2 | [ 3 | bar = ((element = array) => element)(element) @@ -4584,7 +4848,7 @@ Generated by [AVA](https://avajs.dev). 5 | });␊ ` -## Invalid #251 +## Invalid #263 1 | foo.forEach(element => { 2 | [ 3 | bar = (([element] = array) => element)(element) diff --git a/test/snapshots/no-array-for-each.mjs.snap b/test/snapshots/no-array-for-each.mjs.snap index 4a1b57b0afd4e1305d4f79b6323b34a05a5a96a9..79f3f00f0ff9e7c672dab772f1a1d4b3d4c2987f 100644 GIT binary patch literal 12354 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 T{W=;|^85b)d#=E-G5!DmF%|KL