(🎁) Narrow type based on method return type of union
Abierto
Nadie ha tomado este issue todavía.
feature
priority-2-low
topic-type-narrowing
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
I would expect the type of either to be narrowed to Maybe in the if block.
from typing import Literal
class Maybe:
def should(self) -> bool:
...
class No:
def should(self) -> Literal[False]:
...
no: No
if no.should():
reveal_type(no) # error: unreachable
either: Maybe | No
if either.should():
reveal_type(either) # Maybe | No
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
No se indican archivos de implementación ni tests. Empieza ejecutando el reproductor proporcionado con mypy y localizando tests existentes para el estrechamiento de tipos basado en métodos. Se considera hecho cuando la rama if either.should() muestra que either es Maybe y conserva el comportamiento No demostrado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- compilers
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100