New semantic analyzer: better error messages for cyclic cross-module definitions
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
This is a follow-up for https://github.com/python/mypy/pull/6527
The new analyzer gives to verbose (and a bit confusing) error in this case:
[case testNewAnalyzerCyclicDefinitionCrossModule]
import b
[file a.py]
import b
x = b.x # E: Cannot determine type of 'x'
[file b.py]
import a
x = a.x # E: Cannot resolve attribute "x", possible cyclic definition \
# E: Module has no attribute "x"
We can probably skip the second part by injecting a dummy Var with Any type in the a module namespace.
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 le cas testNewAnalyzerCyclicDefinitionCrossModule présenté dans l’issue et comparez les diagnostics attendus avec le comportement du nouvel analyseur. Lisez le contexte complémentaire dans la pull request 6527 et suivez la manière dont les attributs cycliques entre modules sont résolus. La tâche est terminée lorsque le diagnostic redondant est supprimé, tandis que l’erreur utile de définition cyclique reste couverte par le test.
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
- 42/100