Odd error message for invalid use of tuple(): expected "Iterable[Never]"
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
tuple(1) is invalid, of course. But what error message does it bring?
main.py:1: error: Argument 1 to "tuple" has incompatible type "int"; expected "Iterable[Never]" [arg-type]
Well that's odd! Considering that it can take iterables of all sorts of things, and not... impossible things.
In fact, this has to be wrong, because when I make my own function with Iterable[Never] argument, it doesn't like taking iterables of other things
from typing import Iterable, Never
def f(a: Iterable[Never]) -> None:
pass
f([1,2,3]) # main.py:6: error: Argument 1 to "f" has incompatible type "list[int]"; expected "Iterable[Never]" [arg-type]
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 damit, die Diagnose in main.py mit tuple(1) zu reproduzieren, und vergleiche sie dann mit dem im Issue gezeigten Beispiel Iterable[Never]. Verfolge die für tuple() verwendeten Typinformationen und ermittle, warum sein ungültiges Argument als Iterable[Never] gemeldet wird; abgeschlossen ist die Aufgabe, wenn die Diagnose diese irreführende Erwartung nicht mehr enthält und die relevanten Prüfungen erfolgreich sind.
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
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100