false positive errors when calling operator override that returns `Never` from another function that returns `Never`
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
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]
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere die Diagnosen im verlinkten mypy playground mit den beiden Operatorbeispielen, die Never zurückgeben. Ermittle anschließend den relevanten Prüfpfad für Rückgabewerte und Never und füge einen Regressionstest hinzu, der zeigt, dass beide Aufrufe akzeptiert werden; abgeschlossen ist die Aufgabe, wenn die False-Positive-Fehler verschwinden, ohne die vorgesehenen Never-Prüfungen abzuschwächen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 45/100