(🐞) Wrong error message on overloaded function with unexpected keyword parameter
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
No overload variant of "foo" matches argument type "int"
This error message is flat out incorrect as there is a variant that matches int but there is an unexpected parameter name.
from typing import overload
@overload
def foo(a: int) -> None: ...
@overload
def foo(a: str) -> None: ...
def foo(a: object) -> None: ...
def bar(a: int) -> None: ...
foo(b=1)
bar(b=1)
main.py:11: note: "bar" defined here
main.py:13: error: No overload variant of "foo" matches argument type "int" [call-overload]
main.py:13: note: Possible overload variants:
main.py:13: note: def foo(a: int) -> None
main.py:13: note: def foo(a: str) -> None
main.py:14: error: Unexpected keyword argument "b" for "bar" [call-arg]
Found 2 errors in 1 file (checked 1 source file)
Also
In that output, for what reason is there a random main.py:11: note: "bar" defined here? Should I raise that as a separate issue?
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 main.py-Reproducer oder dem verknüpften mypy-Playground und vergleiche die Diagnosen für das überladene foo mit dem nicht überladenen bar. Verfolge den Pfad der Fehlerberichterstattung für Overloads und überprüfe, dass das fertige Verhalten ein unerwartetes Schlüsselwortargument von einer Typabweichung eines Arguments unterscheidet, während du den Hinweis zur unabhängigen bar-Definition prüfst, der in derselben Ausgabe angezeigt wird.
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
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100