Should non-overlapping comparisons allowed in assertions?
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
The following assertion generates an error when using --strict-equality, but perhaps it should be allowed, since an assertion can test something that should be impossible?
from typing import List
def f(x: List[int]) -> None:
assert 'foo' not in x # Error, but should this be okay?
...
I saw a few examples similar to the above in production code and had to use # type: ignore[...] with them, which didn't feel optimal.
@ilevkivskyi What do you think?
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
Der Issue nennt keine Datei und keinen Test; reproduziere zunächst das Beispiel mit --strict-equality und verfolge die Assertion-Prüfung, die den Vergleichsfehler meldet. Entscheide, ob eine unmögliche Membership-Assertion akzeptiert werden sollte, und definiere anschließend das erwartete Diagnoseverhalten und die Abdeckung für den gezeigten Fall List[int].
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100