diff --git a/eslint/babel-eslint-parser/index.js b/eslint/babel-eslint-parser/index.js index 3c764c99f8..074a0720a5 100644 --- a/eslint/babel-eslint-parser/index.js +++ b/eslint/babel-eslint-parser/index.js @@ -232,7 +232,10 @@ function monkeypatch() { referencer.prototype.VariableDeclaration = function(node) { if (node.declarations) { for (var i = 0; i < node.declarations.length; i++) { - checkIdentifierOrVisit.call(this, node.declarations[i].id); + var type = node.declarations[i].id.typeAnnotation; + if (type) { + checkIdentifierOrVisit.call(this, type); + } } } variableDeclaration.call(this, node); diff --git a/eslint/babel-eslint-parser/test/non-regression.js b/eslint/babel-eslint-parser/test/non-regression.js index 598498afab..c21096f930 100644 --- a/eslint/babel-eslint-parser/test/non-regression.js +++ b/eslint/babel-eslint-parser/test/non-regression.js @@ -950,7 +950,7 @@ describe("verify", function () { it("array #9", function () { verifyAndAssertMessages([ "let arr = [1, 2, 3];", - "let b = [for (e of arr) String(e)];" + "let b = [for (e of arr) String(e)]; b;" ].join("\n"), { "no-unused-vars": 1, "no-undef": 1 }, [] @@ -1082,4 +1082,12 @@ describe("verify", function () { ); }); }); + + it("detects minimal no-unused-vars case #120", function () { + verifyAndAssertMessages( + "var unused;", + { "no-unused-vars": 1 }, + [ "1:4 unused is defined but never used no-unused-vars" ] + ) + }); });