Redundant cast warning in nested function in a narrowed block
Offen
Dieses Issue hat noch niemand übernommen.
bug
false-positive
priority-0-high
topic-casts
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
mypy version: 0.641
Given the following (in a file named test.py):
from typing import Optional, List, cast
things: Optional[List[int]] = None
others: List[int] = []
if things is not None:
filtered = filter(lambda x: x in cast(List[int], things), others)
Running mypy --warn-redundant-casts test.py gives the following warning:
test.py:7: note: Redundant cast to "List[int]"
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
Beginne damit, das Beispiel in test.py mit mypy 0.641 und --warn-redundant-casts zu reproduzieren. Verfolge, wie das Narrowing innerhalb des lambda behandelt wird, und füge dann einen Regressionstest für diesen Fall hinzu; fertig ist die Aufgabe, wenn das Beispiel mit der verschachtelten Funktion keine inkorrekte Warnung über einen redundanten Cast mehr erzeugt.
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
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100