Files
codeql/python/ql/src/Expressions/WrongNameForArgumentInCall.ql
2020-03-30 11:59:10 +02:00

28 lines
902 B
Plaintext

/**
* @name Wrong name for an argument in a call
* @description Using a named argument whose name does not correspond to a
* parameter of the called function or method, will result in a
* TypeError at runtime.
* @kind problem
* @tags reliability
* correctness
* external/cwe/cwe-628
* @problem.severity error
* @sub-severity low
* @precision very-high
* @id py/call/wrong-named-argument
*/
import python
import Expressions.CallArgs
from Call call, FunctionObject func, string name
where
illegally_named_parameter_objectapi(call, func, name) and
not func.isAbstract() and
not exists(FunctionObject overridden |
func.overrides(overridden) and overridden.getFunction().getAnArg().(Name).getId() = name
)
select call, "Keyword argument '" + name + "' is not a supported parameter name of $@.", func,
func.descriptiveString()