(🎁) `redundant-expression` doesn't report in `else` branch when both sides are narrowed
Abierto
Nadie ha tomado este issue todavía.
bug
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
def foo() -> bool:
return None == None
1 == 1
True == False
These codes show no warning about an always true check.
mypy in real life 😳
class Thing:
thing: str | None
def something(self, that: Thing) -> bool:
if self.thing is not None or that.thing is not None:
return True
else:
return self.thing == that.thing # no error, despite None == None
Would be nice if mypy could report on this code.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Usa los ejemplos proporcionados de foo y Thing como reproducciones mínimas y luego ejecuta mypy para confirmar el diagnóstico que falta en la rama else. Rastrea las comprobaciones de narrowing y de expresiones redundantes involucradas; se considera terminado cuando se informan las comparaciones mostradas que siempre son verdaderas sin hacer que el comportamiento válido de narrowing deje de funcionar.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- compilers
- 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