(🐞) Wrong error message on overloaded function with unexpected keyword parameter
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 20.6k
- Fork
- 3.3k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
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?
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con il reproducer main.py fornito o con il mypy playground collegato e confronta le diagnosi per foo sovraccaricato con quelle per bar non sovraccaricato. Segui il percorso di segnalazione degli errori degli overload e verifica che il comportamento completato distingua una parola chiave imprevista da una mancata corrispondenza del tipo dell’argomento, controllando anche la nota sulla definizione non correlata di bar mostrata nello stesso output.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- compilers, devtools
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100