Skip to content

Commit 5acd1ca

Browse files
author
Esben Sparre Andreasen
committed
JS: improve alert location of js/angular/duplicate-dependency
1 parent a4b3b1e commit 5acd1ca

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

javascript/ql/src/AngularJS/DuplicateDependency.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*/
1111

1212
import javascript
13+
import semmle.javascript.RestrictedLocations
1314

1415
predicate isRepeatedDependency(AngularJS::InjectableFunction f, string name, ASTNode location) {
1516
exists(int i, int j | i < j and
@@ -20,4 +21,4 @@ predicate isRepeatedDependency(AngularJS::InjectableFunction f, string name, AST
2021
from AngularJS::InjectableFunction f, ASTNode node, string name
2122
where isRepeatedDependency(f, name, node) and
2223
not count(f.asFunction().getParameterByName(name)) > 1 // avoid duplicating reports from js/duplicate-parameter-name
23-
select f, "This function has a duplicate dependency '$@'.", node, name
24+
select (FirstLineOf)f.asFunction(), "This function has a duplicate dependency '$@'.", node, name
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
| duplicates.js:2:5:2:18 | function f(){} | This function has a duplicate dependency '$@'. | duplicates.js:3:26:3:31 | 'dup5' | dup5 |
2-
| duplicates.js:6:14:6:57 | ['dup2a ... p2b){}] | This function has a duplicate dependency '$@'. | duplicates.js:6:24:6:30 | 'dup2a' | dup2a |
3-
| duplicates.js:7:14:7:57 | ['dup3b ... p3b){}] | This function has a duplicate dependency '$@'. | duplicates.js:7:24:7:30 | 'dup3b' | dup3b |
4-
| duplicates.js:8:14:8:79 | ['dup4' ... p4C){}] | This function has a duplicate dependency '$@'. | duplicates.js:8:35:8:40 | 'dup4' | dup4 |
2+
| duplicates.js:6:33:6:56 | functio ... up2b){} | This function has a duplicate dependency '$@'. | duplicates.js:6:24:6:30 | 'dup2a' | dup2a |
3+
| duplicates.js:7:33:7:56 | functio ... up3b){} | This function has a duplicate dependency '$@'. | duplicates.js:7:24:7:30 | 'dup3b' | dup3b |
4+
| duplicates.js:8:43:8:78 | functio ... up4C){} | This function has a duplicate dependency '$@'. | duplicates.js:8:35:8:40 | 'dup4' | dup4 |
5+
| duplicates.js:15:35:15:112 | functio ... } | This function has a duplicate dependency '$@'. | duplicates.js:15:25:15:32 | 'dup11a' | dup11a |

javascript/ql/test/query-tests/AngularJS/DuplicateDependency/duplicates.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,7 @@
1212
.run(['notDup8a', 'notDup8b', function(notDup8a, notDup8b){}]) // OK
1313
.run(['notDup9a', 'notDup9b', function(notDup9c, notDup9d){}]) // OK
1414
.run(['dup10a', 'dup10a', 'dup10a', function(dup10a, dup10a, dup10a){}]) // OK (flagged by js/duplicate-parameter-name)
15+
.run(['dup11a', 'dup11a', function(dup11a, dup11b){ // NOT OK (alert formatting for multi-line function)
16+
}])
1517
;
1618
})();

0 commit comments

Comments
 (0)