python / python/mypy

Add lint against empty Union

Abierto
#9,998 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

feature priority-2-low
Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

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)

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el reproductor de Union y Union[()] del issue e inspecciona cómo mypy informa de los retornos implícitos; no se identifica ningún archivo fuente ni ninguna prueba. Determina primero si la corrección prevista es un diagnóstico de mypy o un cambio en la documentación de CPython, y verifica después que el resultado elegido distinga una Union vacía del comportamiento actual de NoReturn.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
devtools
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.