(🐞) incompatible `Callable`s are incorrectly joined into `builtins.function`
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par exécuter le reproducteur mypy fourni et comparez le type révélé avec la valeur à l’exécution. Suivez le chemin de combinaison des callables et d’inférence de types responsable de produire builtins.function, puis déterminez le résultat attendu pour les types de callable incompatibles et ajoutez une couverture pour les exemples de classe et d’instance callable.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100