diff --git a/source/rules/no-assign-mutated-array.ts b/source/rules/no-assign-mutated-array.ts index 7edbadd..7f0ea19 100644 --- a/source/rules/no-assign-mutated-array.ts +++ b/source/rules/no-assign-mutated-array.ts @@ -17,7 +17,8 @@ import { import { ruleCreator } from "../utils"; const mutatorRegExp = /^(fill|reverse|sort)$/; -const creatorRegExp = /^(concat|entries|filter|keys|map|slice|splice|values)$/; +const creatorRegExp = + /^(concat|entries|filter|keys|map|slice|splice|values|flat|flatMap)$/; const rule = ruleCreator({ defaultOptions: [], diff --git a/tests/rules/no-assign-mutated-array.ts b/tests/rules/no-assign-mutated-array.ts index 0bc438c..a71a554 100644 --- a/tests/rules/no-assign-mutated-array.ts +++ b/tests/rules/no-assign-mutated-array.ts @@ -144,6 +144,24 @@ ruleTester({ types: true }).run("no-assign-mutated-array", rule, { ); `, }, + { + code: stripIndent` + // flat & mutated variable assignment + const a = [[0, 1], [2, 3]]; + const b = a.flat().fill(0); + const c = a.flat().reverse(); + const d = a.flat().sort(); + `, + }, + { + code: stripIndent` + // flatMap & mutated variable assignment + const a = [[0, 1], [2, 3]]; + const b = a.flatMap(e => e).fill(0); + const c = a.flatMap(e => e).reverse(); + const d = a.flatMap(e => e).sort(); + `, + }, { code: stripIndent` // https://github.com/cartant/eslint-plugin-etc/issues/27