Add lint against empty Union
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
Bug Report
From the documentation it indicates that Union must contain at least one item, however this doesn't seem to be implemented in mypy (and in fact, mypy seems to treat an empty union as NoReturn) -- the treating it as NoReturn is actually kinda cool, but probably not what was intended (?)
my twitch chat is telling me that pyright also considers Union[()] as NoReturn, maybe this just needs cpython documentation
To Reproduce
from typing import Union
def f() -> Union:
print('hello hello')
def g() -> Union[()]:
print('hello hello')
$ mypy --version
mypy 0.800
$ mypy t.py
t.py:3: error: Implicit return in function which does not return
t.py:6: error: Implicit return in function which does not return
Found 2 errors in 1 file (checked 1 source file)
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 riproduttore di Union e Union[()] nell’issue e verifica come mypy segnala i ritorni impliciti; non sono indicati né un file sorgente né un test. Determina innanzitutto se la correzione prevista sia una diagnostica di mypy o una modifica alla documentazione di CPython, quindi verifica che il risultato scelto distingua una Union vuota dall’attuale comportamento di NoReturn.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 35/100