(🐞) False error "Expression type contains Any" from constructor when constructor isn't used
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
class A:
def __init__(self, foo): ...
@staticmethod
def foo() -> None: ...
A.foo() # error: Expression type contains "Any" (has type "Type[A]")
Despite the fact that A can be called as (Any) -> Any, the constructor isn't being referenced or invoked here.
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 mit der verlinkten mypy playground-Reproduktion unter Verwendung von Python 3.10 und dem disallow-any-expr-Flag. Verfolge, wie der Typ von A.foo geprüft wird, wenn A einen nicht annotierten Konstruktor hat. Die Aufgabe ist abgeschlossen, wenn der gezeigte Aufruf nicht mehr fälschlicherweise den Fehler "Expression type contains Any" meldet und ein Regressionstest das Beispiel abdeckt.
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
- 42/100