Union can cause Iterator to require a return statement
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
Iterator doesn't require a return statement except when used in an union.
To Reproduce
from typing import Iterator, Union
Type = Union[Iterator[int], int]
def foo() -> Type:
yield 1
Actual Behavior
error: Missing return statement [return]
Expected behavior
I expected Mypy to not return any errors like
from typing import Iterator, Union
Type = Iterator[int]
def foo() -> Type:
yield 1
Your Environment
- Mypy version used: 1.10.0 (Works on 1.9.0)
- Mypy command-line flags: none
- Mypy configuration options from
mypy.ini(and other config files): none - Python version used: 3.12
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
Keine Quelldatei oder kein Test wird genannt. Beginne damit, die bereitgestellte Python-Reproduktion mit mypy 1.10.0 auszuführen und sie mit 1.9.0 zu vergleichen, und verfolge anschließend die Verarbeitung von Generatorfunktionen, die mit einem Union annotiert sind, das Iterator enthält. Als erledigt gilt die Änderung, wenn der reproduzierte Fall keine Meldung über eine fehlende return-Anweisung mehr ausgibt, während das bestehende Iterator-Verhalten unverändert bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100