New semantic analyzer: better error messages for cyclic cross-module definitions
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem im Issue gezeigten Fall testNewAnalyzerCyclicDefinitionCrossModule und vergleiche die erwarteten Diagnosen mit dem Verhalten des neuen Analyzers. Lies den nachfolgenden Kontext im Pull Request 6527 und verfolge, wie zyklische modulübergreifende Attribute aufgelöst werden. Als erledigt gilt die Aufgabe, wenn die redundante Diagnose entfernt ist, während der nützliche Fehler zur zyklischen Definition weiterhin durch den Test abgedeckt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100