Skip to content

Commit

Permalink
Merge pull request #2680 from eslint/issue2678
Browse files Browse the repository at this point in the history
Fix: Check unused vars in exported functions (fixes #2678)
  • Loading branch information
nzakas committed Jun 4, 2015
2 parents e4aa91a + f39ac27 commit b042ac6
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
10 changes: 6 additions & 4 deletions lib/rules/no-unused-vars.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,14 @@ module.exports = function(context) {

if (definition) {

definition = definition.node;
if (definition.type === "VariableDeclarator") {
definition = definition.parent;
var node = definition.node;
if (node.type === "VariableDeclarator") {
node = node.parent;
} else if (definition.type === "Parameter" && node.type === "FunctionDeclaration") {
return false;
}

return definition.parent.type.indexOf("Export") === 0;
return node.parent.type.indexOf("Export") === 0;
} else {
return false;
}
Expand Down
4 changes: 3 additions & 1 deletion tests/lib/rules/no-unused-vars.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ eslintTester.addRuleTest("lib/rules/no-unused-vars", {
{ code: "(function z(foo) { var bar = 33; })();", options: [{"vars": "all", "args": "all"}], errors: [{ message: "foo is defined but never used" }, { message: "bar is defined but never used" }]},
{ code: "(function z(foo) { z(); })();", options: [{}], errors: [{ message: "foo is defined but never used" }]},
{ code: "function f() { var a = 1; return function(){ f(a = 2); }; }", options: [{}], errors: [{ message: "f is defined but never used" }, {message: "a is defined but never used"}]},
{ code: "import x from \"y\";", ecmaFeatures: { modules: true }, errors: [{ message: "x is defined but never used" }]}
{ code: "import x from \"y\";", ecmaFeatures: { modules: true }, errors: [{ message: "x is defined but never used" }]},
{ code: "export function fn2({ x, y }) {\n console.log(x); \n};", ecmaFeatures: { modules: true, destructuring: true }, errors: [{ message: "y is defined but never used" }]},
{ code: "export function fn2( x, y ) {\n console.log(x); \n};", ecmaFeatures: { modules: true }, errors: [{ message: "y is defined but never used" }]}
]
});

0 comments on commit b042ac6

Please sign in to comment.