mirror of
https://github.com/github/codeql.git
synced 2026-04-05 23:28:17 +02:00
The ones that no longer require points-to no longer import `LegacyPointsTo`. The ones that do use the specific `...MetricsWithPointsTo` classes that are applicable.
24 lines
641 B
Plaintext
24 lines
641 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().(FunctionMetricsWithPointsTo).getCyclomaticComplexity() > 3
|
|
)
|
|
select method, "Overly complex '__del__' method."
|