Walrus narrowing not propagated from inside expression
Offen
Dieses Issue hat noch niemand übernommen.
bug
good-second-issue
topic-pep-572
topic-type-narrowing
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 54
Beschreibung
def main(cond: bool) -> None:
woo = None
if cond and (woo := 5) in range(10):
reveal_type(woo) # should reveal int, reveals int | None
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 bereitgestellten Reproducer und führe ihn durch mypy. Vergleiche die tatsächliche Ausgabe von reveal_type mit dem erwarteten int. Verfolge die Typverengung für die Zuweisung mit dem Walrus-Operator innerhalb des and-Ausdrucks; abgeschlossen, wenn das Beispiel int aufdeckt und die Regressionstestabdeckung das Verhalten verifiziert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100