(🐞) Bad error message when invoking an overload with a bad call
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
This sample produces two error messages, the second is completely valid, but the first makes no sense.
from typing import overload
@overload
def foo(a: list[int]): ...
@overload
def foo(a: list[object]): ...
def foo(a): ...
foo(dict[str, list[object]]()[1])
# Argument 1 to "foo" has incompatible type "list[object]"; expected "list[int]"
# Invalid index type "int" for "dict[str, list[object]]"; expected type "str"
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 Reproduktionsbeispiel für overload und invalid-dictionary-index und verwende das verlinkte mypy-play-Beispiel, um beide Diagnosen zu beobachten. Verfolge, wie der overload-Aufruf und der ungültige Index gemeldet werden, und überprüfe anschließend, dass die erste Meldung nicht mehr irreführend ist, während der gültige Index-Typfehler bestehen bleibt. Füge einen Regressionstest hinzu oder aktualisiere ihn, falls während der Untersuchung die relevante Teststelle identifiziert 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
- 40/100