Skip to content

Commit b9429e7

Browse files
committed
issue #443 angular/di-unused: does not work with arrow function declaration
1 parent 9d99535 commit b9429e7

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

rules/utils/angular-rule.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ function angularRule(ruleDefinition) {
199199
if (node.type === 'ArrayExpression') {
200200
node = node.elements[node.elements.length - 1] || {};
201201
}
202-
if (node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration') {
202+
if (node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression' || node.type === 'FunctionDeclaration') {
203203
return node;
204204
}
205205
if (node.type !== 'Identifier') {

test/di-unused.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,16 @@ eslintTester.run('di-unused', rule, {
7878
code: 'angular.module("").controller("", fn); function fn($q) {}',
7979
errors: [{message: 'Unused injected value $q'}]
8080
},
81+
{
82+
code: 'angular.module("").controller("", ["$q", ($q) => {}]);',
83+
parserOptions: {ecmaVersion: 6},
84+
errors: [{message: 'Unused injected value $q'}]
85+
},
86+
{
87+
code: 'angular.module("").controller("", ($q) => {});',
88+
parserOptions: {ecmaVersion: 6},
89+
errors: [{message: 'Unused injected value $q'}]
90+
},
8191
// directive
8292
{
8393
code: 'angular.module("").directive("", function($q) {});',
@@ -96,9 +106,18 @@ eslintTester.run('di-unused', rule, {
96106
{
97107
code: 'angular.module("").factory("", function($q) {});',
98108
errors: [{message: 'Unused injected value $q'}]
109+
},
110+
{
111+
code: 'angular.module("").factory("", $q => {});',
112+
errors: [{message: 'Unused injected value $q'}],
113+
parserOptions: {ecmaVersion: 6}
99114
}, {
100115
code: 'angular.module("").factory("", ["q", function($q) {}]);',
101116
errors: [{message: 'Unused injected value $q'}]
117+
}, {
118+
code: 'angular.module("").factory("", ["q", $q => {}]);',
119+
errors: [{message: 'Unused injected value $q'}],
120+
parserOptions: {ecmaVersion: 6}
102121
}, {
103122
code: 'var app = angular.module(""); app.factory("", function($q) {});',
104123
errors: [{message: 'Unused injected value $q'}]

0 commit comments

Comments
 (0)