python / python/mypy

type of variable not narrowed after `continue` statement inside `try`/`except` block inside a for loop inside a function

Offen
#18,466 1 Kommentar 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug topic-type-narrowing
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
Ø Merge
1 T. 18 Std.
Gemergte PRs (30 T.)
54

Beschreibung

def _() -> None:
    for value in [1,2]:
        try:
            foo = 1
        except Exception:
            foo = None
            continue
        reveal_type(foo) # `int | None`, should be `int`

playground

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das Beispiel im verlinkten mypy playground zu reproduzieren, und untersuche die Typverengung im Kontrollfluss rund um die for-Schleife, try/except und die continue-Anweisung. Füge einen Regressionstest für diesen Fall hinzu; als erledigt gilt die Aufgabe, wenn reveal_type(foo) nach dem try/except-Block als int gemeldet wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.