Default values for generic attributes are unsafe
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Currently mypy accepts this unsafe code:
from typing import Generic, TypeVar, List
T = TypeVar('T')
class B(Generic[T]):
x: List[T] = []
class C1(B[int]):
pass
class C2(B[str]):
pass
C1().x.append(42)
C2().x.append('Hm...')
A potential solution would be to disallow all default values for generic attributes except None. This is however a low priority, since it is a false negative, and a rare corner case.
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
Commencez par reproduire le problème avec l’exemple Python du rapport et examinez la gestion par mypy des attributs génériques et des valeurs par défaut. Déterminez le diagnostic attendu pour la valeur par défaut mutable partagée, puis ajoutez une couverture de régression montrant que les spécialisations génériques ne peuvent pas la partager de manière non sûre et vérifiez que l’exemple existant est rejeté.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- compilers, devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100