Incompatible types in assignment for `dict[key] = tmp = value` and nested structures
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Merge moyen
- 1 j 18 h
- PR mergées (30 j)
- 54
Description
I have Python2 code building some nested structures like lists/tuples/sets/dicts in dicts. For populating the nested structure I keep a temporary reference, which mypy fails to parse if the (untyped) temporary reference is not the first variable being assigned:
#!/usr/bin/python2.7
from typing import Dict, Set # noqa
x = {} # type: Dict[str, Set[str]]
z = x[''] = set() # okay
x[''] = y = set() # fail: Incompatible types in assignment (expression has type "Set[<nothing>]", target has type "Set[str]")
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 la reproduction minimale en Python 2.7 présentée dans l’issue et comparez les deux formes d’affectation chaînée. Suivez la manière dont mypy infère le temporaire non typé dans chaque cas ; le travail est considéré comme terminé lorsque la seconde forme est acceptée de manière cohérente avec la première sans affaiblir la vérification déclarée de Dict[str, Set[str]].
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é
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100