JS: improve alert location of js/angular/repeated-dependency-injection

This commit is contained in:
Esben Sparre Andreasen
2018-12-11 14:09:12 +01:00
parent 5acd1ca26d
commit b5bbf990b0
3 changed files with 9 additions and 1 deletions

View File

@@ -10,8 +10,9 @@
*/
import javascript
import semmle.javascript.RestrictedLocations
from AngularJS::InjectableFunction f, ASTNode explicitInjection
where count(f.getAnExplicitDependencyInjection()) > 1 and
explicitInjection = f.getAnExplicitDependencyInjection()
select f.asFunction(), "This function has $@ defined in multiple places.", explicitInjection, "dependency injections"
select (FirstLineOf)f.asFunction(), "This function has $@ defined in multiple places.", explicitInjection, "dependency injections"

View File

@@ -2,3 +2,5 @@
| repeated-injection.js:6:5:6:31 | functio ... name){} | This function has $@ defined in multiple places. | repeated-injection.js:8:54:8:73 | ['name', $Injected2] | dependency injections |
| repeated-injection.js:10:5:10:31 | functio ... name){} | This function has $@ defined in multiple places. | repeated-injection.js:11:5:11:22 | $Injected3.$inject | dependency injections |
| repeated-injection.js:10:5:10:31 | functio ... name){} | This function has $@ defined in multiple places. | repeated-injection.js:12:5:12:22 | $Injected3.$inject | dependency injections |
| repeated-injection.js:33:5:33:84 | functio ... )\\n } | This function has $@ defined in multiple places. | repeated-injection.js:35:5:35:23 | $Injected10.$inject | dependency injections |
| repeated-injection.js:33:5:33:84 | functio ... )\\n } | This function has $@ defined in multiple places. | repeated-injection.js:36:56:36:76 | ['name' ... cted10] | dependency injections |

View File

@@ -30,4 +30,9 @@
angular.module('app9').controller('controller9', ['name', function inline9(name){}]); // OK
function $Injected10(name){ // NOT OK (alert formatting for multi-line function)
}
$Injected10.$inject = ['name'];
angular.module('app10').controller('controller10', ['name', $Injected10]);
})();