Extend `redundant-expr` to type narrowing assertions
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Feature
Assert statements can be used to guide the type checker but are not checked for redundancy like casts.
Pitch
Consider this simple example, with the --enable-error-code=redundant-expr flag:
def f(x: int) -> None:
assert x is not None # no issue
assert x is not None and True # error: Left operand of "and" is always true
I think it would be useful to have mypy emit a warning for the first line.
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
Keine Datei oder kein Test wird genannt. Beginne damit, die bestehende Behandlung redundanter Ausdrücke für Casts und den Pfad zur Typverengung durch assert zu finden, und sieh dir anschließend die relevanten Tests an. Die Aufgabe ist erledigt, wenn redundante Assertions wie assert x is not None unter --enable-error-code=redundant-expr gemeldet werden, ohne das gültige Verhalten der Typverengung zu ändern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100