(🐞) incompatible `Callable`s are incorrectly joined into `builtins.function`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
from typing import Callable, _T as T
from types import FunctionType
class C:
def __init__(self, i: int=1): ...
def join(t1: T, t2: T) -> T: ...
c1: Callable[[], object] = C
c2: Callable[[int], object] = C
result = join(c1, c2)
reveal_type(result) # Revealed type is "builtins.function"
print(isinstance(result, FunctionType) # False
this is not an instance of builtins.function, it is a type[C]. it should be joined into a union, or something else, either object or Callable[..., object] or something
the same defect is observed with a non-function callable instance:
class C:
def __call__(self, i: int = 1): ...
- reraised from #17017 as it wasn't resolved
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
Comienza ejecutando el reproductor de mypy proporcionado y compara el tipo revelado con el valor en tiempo de ejecución. Rastrea la ruta de combinación de callables e inferencia de tipos responsable de producir builtins.function; después, establece el resultado esperado para tipos de callable incompatibles y añade cobertura para los ejemplos de la clase y de la instancia callable.
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