python / python/mypy

TypeError from sorting incompatible types isn't flagged

Offen
#9,122 6 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feature
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 do 1 > 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

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.