[PEP 696] default substitution not applied correctly when parametrizing a generic type.
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
PEP 696 allows the default of a type-parameter to depend on other type parameters, however, this substitution is not applied at runtime:
class Bar[T, S=T]: ...
print(Bar[int]) # __main__.Bar[int, T]
The result should be __main__.Bar[int, int][^1]
This is likely the root cause for #140596. Tested with 3.13.8, 3.14.0 and 3.15.0a1+
[^1]: pyright playground, mypy-playground, ty-playground, pyrefly sandbox
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
- gh-151811
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 la section de la PEP 696 consacrée à l’utilisation d’un autre paramètre de type comme valeur par défaut et reproduisez l’exemple Bar[int] du rapport sur CPython main. Comparez l’alias générique à l’exécution au résultat attendu main.Bar[int, int], et examinez la PR gh-151811 ; c’est terminé lorsque la valeur par défaut dépendante est substituée à l’exécution.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 25/100