(🐞) `reveal_type` on a lambda parameter from an overloaded higher order function shows two results
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
Here the type of value is an non-inferred int, and there is only one usage of reveal_type, yet mypy is outputting two results (one of which is incorrect)
reveal_locals() shows two entries for value, but one being None not Any.
from typing import overload, Callable
@overload
def bar() -> None: ...
@overload
def bar(fn: Callable[[int], object]) -> None: ...
def bar(fn: object=1) -> None: ...
bar(lambda value: reveal_type(value))
bar(lambda value: reveal_locals())
main.py:11: note: Revealed type is "Any"
main.py:11: note: Revealed type is "builtins.int"
main.py:12: note: Revealed local types are:
main.py:12: note: value: None
main.py:12: note: value: builtins.int
Success: no issues found in 1 source file
Without removing duplicate messages you get this:
test.py:12: note: Revealed local types are:
test.py:12: note: value: None
test.py:12: note: Revealed local types are:
test.py:12: note: value: builtings.int
- Cause of #5879
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
Riproduci l’esempio della funzione di ordine superiore sovraccaricata di main.py e l’output duplicato di reveal_locals mostrato per test.py. Inizia tracciando il modo in cui reveal_type e reveal_locals gestiscono i due tipi di parametro lambda, quindi verifica che un utilizzo produca un risultato corretto e nessun messaggio duplicato sui tipi locali.
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à
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100