mirror of
https://github.com/github/codeql.git
synced 2025-12-30 07:36:34 +01:00
Will need subsequent PRs fixing up test failures (due to deprecated methods moving around), but other than that everything should be straight-forward.
25 lines
640 B
Plaintext
25 lines
640 B
Plaintext
/**
|
|
* @name Overly complex __del__ method
|
|
* @description __del__ methods may be called at arbitrary times, perhaps never called at all, and should be simple.
|
|
* @kind problem
|
|
* @tags efficiency
|
|
* maintainability
|
|
* complexity
|
|
* statistical
|
|
* non-attributable
|
|
* @problem.severity recommendation
|
|
* @sub-severity low
|
|
* @precision high
|
|
* @id py/overly-complex-delete
|
|
*/
|
|
|
|
import python
|
|
|
|
from FunctionValue method
|
|
where
|
|
exists(ClassValue c |
|
|
c.declaredAttribute("__del__") = method and
|
|
method.getScope().getMetrics().getCyclomaticComplexity() > 3
|
|
)
|
|
select method, "Overly complex '__del__' method."
|