Add new experimental query MultipleArgumentsToSetConstructor.

This commit is contained in:
Max Schaefer
2021-05-21 09:54:41 +01:00
parent 922b276fac
commit 6e34784fc5
9 changed files with 98 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
/**
* @name Multiple arguments to `Set` constructor
* @description The `Set` constructor ignores all but the first argument, so passing multiple
* arguments may indicate a mistake.
* @kind problem
* @problem.severity warning
* @precision high
* @id js/multiple-arguments-to-set-constructor
* @tags correctness
*/
import javascript
from DataFlow::NewNode newSet, DataFlow::Node ignoredArg
where
newSet = DataFlow::globalVarRef("Set").getAnInstantiation() and
(
ignoredArg = newSet.getArgument(any(int n | n > 0))
or
ignoredArg = newSet.getASpreadArgument()
)
select ignoredArg, "All but the first argument to the Set constructor are ignored."