From 2134ed971945781889f955384c45ddff4446d3a7 Mon Sep 17 00:00:00 2001 From: Roy Sutton Date: Wed, 10 Oct 2018 01:59:58 -0400 Subject: [PATCH] Fix: no-unused-vars false pos. with markVariableAsUsed (fixes #10952) --- lib/rules/no-unused-vars.js | 2 +- tests/lib/rules/no-unused-vars.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/rules/no-unused-vars.js b/lib/rules/no-unused-vars.js index fff3e33d923..6f36813aca5 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 f188f8ce30a..316df18e09a 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")] },