python / python/mypy

Use new type inference as a primary mechanism

Ouverte
#15,907 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

feature priority-1-normal topic-type-variables
Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Métriques de merge des PR
Métriques de PR en attente

Description

Depends on https://github.com/python/mypy/issues/15906. This is a follow-up for series started by https://github.com/python/mypy/pull/15287

Currently new (polymorphic) inference is used as a fallback if the traditional algorithm fails (one way or another). At some point we should switch to the new inference scheme entirely. This would include:

  • Use polymorphic inference during unification in subtyping.
  • Use polymorphic inference as primary mechanism for all inference passes (return type, arguments first pass, arguments second pass).
  • Move apply_poly() logic from checkexpr.py to applytype.py.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par l’issue de dépendance #15906 et la série qui a suivi dans la pull request #15287. Lisez les chemins d’inférence actuels ainsi que la logique de apply_poly() dans checkexpr.py, puis examinez applytype.py. Le travail est terminé lorsque l’inférence polymorphe est utilisée lors de l’unification du sous-typage et comme mécanisme principal pour l’inférence du type de retour et des deux passes d’inférence des arguments.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
compilers
Type d'issue
Refactorisation
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
20/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.