(🐞) unreachable `isinstance` only works with variables
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
# mypy: warn-unreachable
def foo() -> int: return 1
class A:
i: int
foo() -> int: return 1
assert isinstance(1, str)
assert isinstance(1 + 1, str)
assert isinstance(foo(), str)
assert isinstance(A.foo(), str)
assert isinstance(A().foo(), str)
assert isinstance(A().i, str)
a: A
assert isinstance(a.foo(), str)
i = 1
assert isinstance(i, str) # error: Subclass of "int" and "str" cannot exist: would have incompatible method signatures [unreachable]
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 bereitgestellte mypy-Snippet mit aktiviertem warn-unreachable auszuführen und die isinstance-Ausdrücke zu vergleichen, die Diagnosen erzeugen bzw. nicht erzeugen. Verfolge den Typprüfpfad für Ausdrücke im Vergleich zu Variablen; abgeschlossen bedeutet, dass die beabsichtigten äquivalenten Ausdrücke konsistente Prüfungen auf Unerreichbarkeit erhalten.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100