python / python/mypy

Give better error message if type inference fails because of unsatisfiable upper bound

Ouverte
#5,706 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

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

Description

After #5699 in certain cases (see testWideOuterContextEmptyError) if type inference fails, mypy gives an obscure error like

Incompatible types in assignment (expression has type "List[<nothing>]", variable has type "List[str]")

This error message could be improved. Here are some ideas:

  • Record that we didn't use the outer context because of unsatisfied bound and add a note about this
  • (Probably better) If type variable with a bound is used in an invariant context and we can't infer a value, we currently infer C[<nothing>]. What if we'd instead inferred C[<bound>]?

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 le cas testWideOuterContextEmptyError mentionné dans l’issue et examinez le chemin d’inférence de types pour une borne supérieure non satisfaite dans un contexte invariant. Comparez les approches de diagnostic proposées, puis ajoutez un test de régression montrant le message d’erreur amélioré et exécutez la suite de tests pertinente.

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

Évaluation

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

Recevez les nouvelles issues par e-mail

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