python / python/mypy

false positive errors when calling operator override that returns `Never` from another function that returns `Never`

Aperta
#18,002 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

from typing import Never

class Foo:
    def __mul__(self, value: float, /) -> Never:
        raise Exception("multiplication is banned")

    def __rmul__(self, value: float, /) -> Never: # error: Implicit return in function which does not return  [misc]
        self * value
    
    def __rmul_attempt_2__(self, value: float, /) -> Never:
        return self * value # error: Return statement in function which does not return  [misc]

playground

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

Riproduci i diagnostici nel mypy playground collegato usando i due esempi di operatori che restituiscono Never. Individua quindi il percorso di verifica rilevante per i valori restituiti e Never e aggiungi un test di regressione che dimostri che entrambe le chiamate vengono accettate; il lavoro è completo quando gli errori di falso positivo scompaiono senza indebolire i controlli previsti per Never.

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

Valutazione

Stack tecnologico
python
Ambito
compilers
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.