python / python/mypy

Lint against cases where user likely intended to use constrained type variables

Offen
#20,318 2 Kommentare 0 Reaktionen 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

*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

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

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

Neue Issues direkt in Ihr Postfach

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