PEP-646 generic with self annotated function gives incorrect result
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Reproduce el ejemplo enlazado de mypy-play, comenzando con reveal_type(A(1, 2, 3).add()) y la anotación self de PEP-646 mostrada en el issue. Rastrea la inferencia genérica para el método add; se considera terminado cuando mypy informa del resultado correcto o de un error en lugar de revelar silenciosamente el tipo incorrecto, validado con la reproducción.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug Report
When a class is generic over a PEP-646/TypeVarTuple/varadic generic and uses that outer generic in a self annotated function, the result of calling that function is incorrect.
To Reproduce
https://mypy-play.net/?gist=e1eb19d739dd5cdc55e99e1ead4fc55c
from typing import reveal_type
class A[*TS]:
def __init__(self, *state: *TS):
self.state: tuple[*TS] = state
def add(self: A[*TS, int, int]) -> A[*TS, int]:
return A(*self.state[:-2], self.state[-2] + self.state[-1])
# Expected type: "A[1, int]" or "A[1, 5]" or similar
# Actual: Revealed type is "__main__.A[Literal[1]?, Literal[2]?, Literal[3]?, int]"
reveal_type(A(1, 2, 3).add())
Expected Behavior
Mypy should either give the correct type for A(1, 2, 3).add(), or give an error somewhere.
Actual Behavior
Mypy silently gives the wrong type for A(1, 2, 3).add()
Your Environment
- Mypy version used: Playground 2.3.1
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 59
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.
Más de python/mypy
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
bug topic-configuration topic-error-reporting
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
bug topic-attrs
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Todos los issues de python/mypy
Issues similares
-
bug confirmed issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-webui/open-webui#30750 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100