TypeError from sorting incompatible types isn't flagged
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
I was surprised that some code like this wasn't flagged by mypy:
[1, None].sort()
-
What is the actual behavior/output?
No error. -
What is the behavior/output you expect?
I would expect a similar warning as I get if I do1 > None
test.py:12: error: Unsupported operand types for > ("int" and "None")
-
What are the versions of mypy and Python you are using?
mypy 0.782, python 3.8.2 -
What are the mypy flags you are using? (For example --strict-optional)
follow_imports=normal
warn_redundant_casts=True
warn_unused_ignores=True
strict_optional=True
strict_equality=True
no_implicit_optional=True
disallow_untyped_defs=True
disallow_any_generics=True
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
Keine Quelldatei oder kein Test wird genannt. Beginne damit, die beiden Beispiele mit mypy 0.782 und den angegebenen Flags zu reproduzieren, und verfolge dann, wie list.sort() typgeprüft wird, im Vergleich zum Vergleichsausdruck. Als erledigt gilt die Aufgabe, wenn die inkompatiblen Elementtypen in [1, None].sort() eine geeignete Diagnose erzeugen und ein Regressionstest das Verhalten abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100