mirror of
https://github.com/github/codeql.git
synced 2026-05-15 11:49:28 +02:00
In hindsight, having a `.getMetrics()` method that just returns `this` is somewhat weird. It's possible that it predates the existence of the inline cast, however.
24 lines
629 B
Plaintext
24 lines
629 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 quality
|
|
* maintainability
|
|
* complexity
|
|
* @problem.severity recommendation
|
|
* @sub-severity low
|
|
* @precision high
|
|
* @id py/overly-complex-delete
|
|
*/
|
|
|
|
import python
|
|
private import LegacyPointsTo
|
|
|
|
from FunctionValue method
|
|
where
|
|
exists(ClassValue c |
|
|
c.declaredAttribute("__del__") = method and
|
|
method.getScope().(FunctionMetrics).getCyclomaticComplexity() > 3
|
|
)
|
|
select method, "Overly complex '__del__' method."
|