Parametrised Callable allowed only when used as type alias
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 1.8k
- Forks
- 302
- Merge moyen
- 23 h
- PR mergées (30 j)
- 8
Description
I've found a case where a Callable is not allowed when used directly, but is allowed if used as an alias
from typing import TypeVar, Callable
T = TypeVar('T')
MkFoo = Callable[[T], list[T]]
def foo(mkfoo: MkFoo) -> None:
_ = mkfoo(0)
works, but replacing MkFoo by its definition
def foo(mkfoo: Callable[[T], list[T]]) -> None:
_ = mkfoo(0)
produces
main.py:13: error: Argument 1 has incompatible type "int"; expected "T"
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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 les deux reproductions présentées dans main.py, en comparant la Callable paramétrée utilisée directement avec l’alias de type équivalent. Vérifiez le comportement du vérificateur de types qui en résulte ainsi que les discussions existantes ; le travail sera considéré comme terminé lorsqu’il aura été déterminé si les deux formes doivent être acceptées et que la couverture correspondant au comportement convenu aura été ajoutée ou mise à jour.
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é
- Plutôt claire
- Accessibilité débutants
- 38/100