python / python/mypy

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

Aperta
#5,706 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

priority-1-normal topic-type-variables topic-usability
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

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>]?

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dal caso testWideOuterContextEmptyError menzionato nell’issue e analizza il percorso di inferenza dei tipi per un limite superiore non soddisfatto in un contesto invariante. Confronta gli approcci diagnostici proposti, quindi aggiungi un test di regressione che mostri il messaggio di errore migliorato ed esegui la suite di test pertinente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
compilers
Tipo di issue
Bug
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.