(🎁) `redundant-expression` doesn't report in `else` branch when both sides are narrowed
Ouverte
Personne n'a encore pris cette issue.
bug
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
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.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Utilisez les exemples fournis de foo et Thing comme reproductions minimales, puis exécutez mypy pour confirmer le diagnostic manquant dans la branche else. Suivez les vérifications de narrowing et d’expressions redondantes impliquées ; le travail est terminé lorsque les comparaisons montrées qui sont toujours vraies sont signalées sans régression du comportement de narrowing valide.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100