`x in y` doesn't report errors when `x` is not `str` and `y: union | involving | str`
Offen
Dieses Issue hat noch niemand übernommen.
bug
topic-union-types
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
This doesn't report an error but can easily crash at runtime:
var: list[int] | str
2 in var
Expected Behavior
var: list[int] | str
2 in var # E: Unsupported operand types for in ("int" and "str") \
# N: Right operand is of type "list[int] | str"
Your Environment
- Mypy version used: 1.0.0-2.1.0
- Mypy command-line flags:
--strict
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 mit mypy unter --strict zu reproduzieren: var: list[int] | str, gefolgt von 2 in var. Verfolge den Typprüfpfad für den in-Operator und sorge dafür, dass für das str-Unionmitglied der erwartete Fehler wegen eines nicht unterstützten Operanden gemeldet wird, ohne dabei den möglichen Laufzeitfehler zu übersehen.
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
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 62/100