Wrong self type only reported upon call if using VarArgs
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
Mypy does not raise an error if a method accepts nothing but a vararg list, but lacks a self parameter or staticmethod decorator.
This behavior is confusing because Mypy does catch wrong self types for regular parameters.
To Reproduce
class Class:
def method(*args: int) -> int:
return sum(args)
print(Class().method(1, 2, 3))
Expected Behavior
foo.py:2: error: Self argument missing for a non-static method (or an invalid type for self) [misc]
Actual Behavior
foo.py:5: error: Invalid self argument "Class" to attribute function "method" with type "Callable[[VarArg(int)], Any]" [misc]
Found 1 error in 1 file (checked 1 source file)
Your Environment
- Mypy version used: 1.7.0
- Mypy command-line flags:
--strict - Mypy configuration options from
mypy.ini(and other config files): none - Python version used: 3.9
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
Es ist keine Quelldatei und kein Test angegeben. Führe den bereitgestellten Reproducer für Python 3.9 mit mypy --strict aus und verfolge anschließend die bestehende Validierung des self-Arguments für Methoden, die mit VarArg annotiert sind. Als erledigt gilt die Aufgabe, wenn die erwartete [misc]-Diagnose an der Methodendefinition und nicht erst beim Aufruf der Methode gemeldet wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 48/100