`in` operator error with Generator
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
https://mypy-play.net/?mypy=latest&python=3.12&gist=790ec23819f191c250a9574f2b123d8d
To Reproduce
1 in (i for i in (signal.SIGINT,))
Expected Behavior
No error
Actual Behavior
error: Unsupported operand types for in ("int" and "Generator[Signals, None, None]") [operator]
If the generator is changed to a list comprehension, there is no error
Your Environment
- Mypy version used: 2.1.0 and master branch
- Python version used: 3.12
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, die mypy-play-Reproduktion aus dem Issue mit Python 3.12 auszuführen, und verfolge dann nach, wie mypy den in-Operator prüft, wenn die rechte Seite ein Generator ist. Füge einen Regressionstest hinzu, der den gezeigten Ausdruck signal.SIGINT abdeckt; fertig ist die Änderung, wenn kein Fehler wegen eines nicht unterstützten Operanden ausgegeben wird und das bestehende Verhalten der List-Comprehension unverändert bleibt.
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
- 58/100