False Negative - Python `abc.ABC` makes method's `getACall` unavailable
- Lenguaje dominante
- CodeQL
- Estrellas
- 10.1k
- Forks
- 2.1k
- Merge medio
- 2 d 18 h
- PR fusionados (30 d)
- 152
Descripción
If we have this Python code:
```python
class MyClass():
def method(self):
print("xxx")
def wrapper(self):
self.method()
mc = MyClass()
mc.method()
```
and this query:
```codeql
import python
from PythonFunctionValue method
select method.getACall()
```
It's OK that `self.method()` and `mc.method()` will be marked as positive.
However, those will be false negative as long as the class `MyClass` inherits `abc.ABC`. It looks like:
```python
from abc import ABC
class MyClass(ABC):
def method(self):
print("xxx")
def wrapper(self):
self.method()
mc = MyClass()
mc.method()
```
Why does the `abc.ABC` make the result wrong?
Guía de contribución
Línea de trabajo
Reproduce los dos ejemplos de Python y ejecuta la consulta de CodeQL mostrada que importa PythonFunctionValue. Compara si getACall() informa de llamadas a métodos con y sin herencia de abc.ABC y, a continuación, inspecciona el comportamiento de la biblioteca de Python responsable de la diferencia. Se considera completado cuando la consulta reconoce sistemáticamente las llamadas en ambos ejemplos o el issue documenta la limitación admitida.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- devtools
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100