Files
codeql/python/ql/src/Classes/PropertyInOldStyleClass.ql
Taus 1ffcdc9293 Python: Select property instead of function
in PropertyInOldStyleClass. This matches the previous behaviour more
closely.
2026-03-23 14:55:28 +00:00

25 lines
726 B
Plaintext

/**
* @name Property in old-style class
* @description Using property descriptors in old-style classes does not work from Python 2.1 onward.
* @kind problem
* @tags portability
* correctness
* @problem.severity error
* @sub-severity low
* @precision very-high
* @id py/property-in-old-style-class
*/
import python
private import semmle.python.dataflow.new.internal.DataFlowDispatch
from Function prop, Class cls, Name decorator
where
prop.getScope() = cls and
decorator = prop.getADecorator() and
decorator.getId() = "property" and
not DuckTyping::isNewStyle(cls)
select decorator,
"Property " + prop.getName() + " will not work properly, as class " + cls.getName() +
" is an old-style class."