`list.sort()` fails to detect type issue
Offen
Dieses Issue hat noch niemand übernommen.
bug
topic-overloads
topic-self-types
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
This code is not failing under mypy:
[2, None].sort()
Interestingly, it fails on ty:
error[invalid-argument-type]: Argument to bound method `list.sort` is incorrect
--> toto.py:1:1
|
1 | [None, 2].sort()
| ^^^^^^^^^^^^^^^^ Argument type `None | int` does not satisfy upper bound `SupportsDunderLT[Any] | SupportsDunderGT[Any]` of type variable `SupportsRichComparisonT`
|
info: Type variable defined here
--> stdlib/_typeshed/__init__.pyi:107:1
|
107 | SupportsRichComparisonT = TypeVar("SupportsRichComparisonT", bound=SupportsRichComparison) # noqa: Y001
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
Found 1 diagnostic
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
Reproduziere den gemeldeten Unterschied zwischen mypy und ty mit [2, None].sort(), untersuche anschließend die Typisierung von list.sort und die referenzierte Definition in stdlib/_typeshed/__init__.pyi. Bestimme die erwartete Diagnose und füge eine Regressionstestabdeckung für diesen Fall hinzu, wobei das Verhalten an diese Erwartung angepasst wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 48/100