(🐞) False error with assignment of generic union of types to the same union of types
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
from typing import TypeVar
class A: pass
class B: pass
T_AB = TypeVar("T_AB", bound=A | B)
def foo(t: type[T_AB]) -> None:
x: type[A | B] = t # error
It works when the type is in the bound:
from typing import TypeVar
class A: pass
class B: pass
T_AB = TypeVar("T_AB", bound=type[A | B])
def foo(t: T_AB) -> None:
x: type[A | B] = t # no error
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
Beginne damit, die beiden bereitgestellten Snippets mit mypy auszuführen und die Diagnose bei der Zuweisung an type[A | B] zu vergleichen. Verfolge die dabei durchgeführten Prüfungen der Kompatibilität von generischen Typparametern und Unions. Als erledigt gilt die Aufgabe, wenn das erste Snippet ohne Fehler akzeptiert wird und das zweite Beispiel weiterhin akzeptiert wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100