constrained TypeVar and star operator incompatible type
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
We can't use TypeVar with star operator, maybe I wrongly used TypeVar.
Thanks
To Reproduce
T = TypeVar("T", str, int)
def test(a: Sequence[T]) -> list[T]:
return [*a]
Expected Behavior
No error
Actual Behavior
cactus.py: note: In function "test":
cactus.py:57:14: error: List item 0 has incompatible type "Sequence[T]"; expected "str" [list-item]
return [*a]
^
cactus.py:57:14: error: List item 0 has incompatible type "Sequence[T]"; expected "int" [list-item]
return [*a]
^
cactus.py:57:14: note: See https://mypy.rtfd.io/en/stable/_refs.html#code-list-item for more info
Your Environment
- Mypy version used: 1.11.1
- Python version used: 3.12.1
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
Beginnen Sie mit dem Python-Reproducer im Issue unter Verwendung von mypy 1.11.1 und Python 3.12.1 und bestätigen Sie die inkompatiblen Listenelementfehler für den eingeschränkten TypeVar und den Sternausdruck. Verfolgen Sie den Pfad der Typprüfung für diesen Ausdruck und bringen Sie das Beispiel ohne Fehler zum Durchlaufen; führen Sie anschließend den Reproducer erneut aus, um das erwartete Verhalten zu überprüfen.
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
- 42/100