(🐞) False 'Any expression' error in assignment to `Any` when super expression is cast
Offen
Dieses Issue hat noch niemand übernommen.
bug
topic-disallow-any
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
# mypy: disallow_any_expr
from typing import Any, Generic, cast, _T as T
from dataclasses import dataclass
def f(a: Any): ...
a: Any = cast(dict[object, object], {
1: # Expression type contains "Any" (has type "tuple[int, list[Any]]")
[] # Expression type contains "Any" (has type "list[Any]")
})
@dataclass
class Box(Generic[T]):
it: T
f(cast(object, Box(Box(1))) # Expression type contains "Any" (has type "Box[Any]")
I would not expect Any of these errors to appear.
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
Führe zunächst den bereitgestellten mypy-Reproduzierer mit disallow_any_expr aus und bestätige, welche Diagnosen für die gecasteten Zuweisungen und den generischen Box-Ausdruck gemeldet werden. Verfolge den Typprüfpfad für Casts und inferierte Any-Typen; abgeschlossen ist die Aufgabe, wenn diese falsch-positiven Fehler nicht mehr erscheinen, während echte Any-Ausdruck-Diagnosen weiterhin gemeldet werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100