diff --git a/lib/rules/no-unused-vars.js b/lib/rules/no-unused-vars.js
index 61aee3ff5..37356c9c1 100644
--- a/lib/rules/no-unused-vars.js
+++ b/lib/rules/no-unused-vars.js
@@ -35,31 +35,31 @@ module.exports = {
create(context) {
const option = context.options[0] || {}
- const pattern = option.ignorePattern
- let regExp = null
- if (pattern) {
- regExp = new RegExp(pattern, 'u')
+ const ignorePattern = option.ignorePattern
+ let ignoreRegEx = null
+ if (ignorePattern) {
+ ignoreRegEx = new RegExp(ignorePattern, 'u')
}
return utils.defineTemplateBodyVisitor(context, {
VElement(node) {
const variables = node.variables
-
- for (
- let i = variables.length - 1;
- i >= 0 &&
- !variables[i].references.length &&
- // eslint-disable-next-line no-unmodified-loop-condition
- (regExp === null || !regExp.test(variables[i].id.name));
- i--
- ) {
+ for (let i = variables.length - 1; i >= 0; i--) {
const variable = variables[i]
+
+ if (variable.references.length) {
+ break
+ }
+
+ if (ignoreRegEx != null && ignoreRegEx.test(variable.id.name)) {
+ continue
+ }
context.report({
node: variable.id,
loc: variable.id.loc,
message: `'{{name}}' is defined but never used.`,
data: variable.id,
suggest:
- pattern === '^_'
+ ignorePattern === '^_'
? [
{
desc: `Replace the ${variable.id.name} with _${variable.id.name}`,
diff --git a/tests/lib/rules/no-unused-vars.js b/tests/lib/rules/no-unused-vars.js
index bf8a93777..0c1b85e55 100644
--- a/tests/lib/rules/no-unused-vars.js
+++ b/tests/lib/rules/no-unused-vars.js
@@ -157,6 +157,11 @@ tester.run('no-unused-vars', rule, {
{
code: '',
errors: ["'_i' is defined but never used."]
+ },
+ {
+ code: '',
+ options: [{ ignorePattern: '^_' }],
+ errors: ["'a' is defined but never used."]
}
]
})