Files
codeql/python/ql/src/Classes/SlotsInOldStyleClass.ql

20 lines
572 B
Plaintext

/**
* @name `__slots__` in old-style class
* @description Overriding the class dictionary by declaring `__slots__` is not supported by old-style
* classes.
* @kind problem
* @problem.severity error
* @tags portability
* correctness
* @sub-severity low
* @precision very-high
* @id py/slots-in-old-style-class
*/
import python
from ClassObject c
where not c.isNewStyle() and c.declaresAttribute("__slots__") and not c.failedInference()
select c,
"Using '__slots__' in an old style class just creates a class attribute called '__slots__'."