diff --git a/lib/rules/no-unused-vars.js b/lib/rules/no-unused-vars.js index fff3e33d9235..6f36813aca57 100644 --- a/lib/rules/no-unused-vars.js +++ b/lib/rules/no-unused-vars.js @@ -469,7 +469,7 @@ module.exports = { const posteriorParams = params.slice(params.indexOf(variable) + 1); // If any used parameters occur after this parameter, do not report. - return !posteriorParams.some(v => v.references.length > 0); + return !posteriorParams.some(v => v.references.length > 0 || v.eslintUsed); } /** diff --git a/tests/lib/rules/no-unused-vars.js b/tests/lib/rules/no-unused-vars.js index f188f8ce30ae..316df18e09aa 100644 --- a/tests/lib/rules/no-unused-vars.js +++ b/tests/lib/rules/no-unused-vars.js @@ -271,7 +271,11 @@ ruleTester.run("no-unused-vars", rule, { code: "(({a, ...rest}) => rest)", options: [{ args: "all", ignoreRestSiblings: true }], parserOptions: { ecmaVersion: 2018 } - } + }, + + // https://github.com/eslint/eslint/issues/10952 + "/*eslint use-every-a:1*/ !function(b, a) { return 1 }" + ], invalid: [ { code: "function foox() { return foox(); }", errors: [definedError("foox")] },