Lint against cases where user likely intended to use constrained type variables
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
*Memo:
mypy test.py- mypy 1.18.2
- Python 3.14.0
- Windows 11
Instantiating the object of the class with the wrong syntax setting constraint types to the 2nd and 3rd arguments gets error properly as shown below:
# ↓↓↓↓↓↓↓↓↓↓ Wrong syntax
class MyCls[T: int, float, str]:
num: T
def __init__(self, x: T) -> None:
self.num = x
# Instantiation
MyCls[int](100)
# Error
error: Type application has too few types
But only defining the class with the wrong syntax doesn't get the error as shown below so the error should occur:
# ↓↓↓↓↓↓↓↓↓↓ Wrong syntax
class MyCls[T: int, float, str]:
num: T
def __init__(self, x: T) -> None:
self.num = x
# 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, das minimale Python-3.14-Beispiel mit mypy 1.18.2 auszuführen, und vergleiche die Diagnosen für die alleinstehende Deklaration mit denen für die Typanwendung. Verfolge den Einstiegspunkt der Analyse generischer Typvariablen und eingeschränkter Typen und füge anschließend Abdeckung hinzu, sodass die alleinstehende Deklaration die vorgesehene Diagnose meldet, ohne gültige Syntax zu beeinträchtigen.
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