MyPy yield a false error with function(*args, x)
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 wrongly produce an error for "Too many argument" when calling a function with star syntax followed by an additional argument.
To Reproduce
def foo(a: int, b: int, c: int, d: int) -> None:
return None
lst = [1, 2, 3]
foo(*lst, 4)
Expected Behavior
MyPy should not yield any error, and the types are fit.
Actual Behavior
An error occurs:
mypy_reproduce.py:6: error: Too many arguments for "foo" [call-arg]
Your Environment
- Mypy version used:1.4.1
- Mypy command-line flags: No flags
- Mypy configuration options from
mypy.ini(and other config files): No config - Python version used: 3.7.3
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 mit dem bereitgestellten Python-Reproducer und untersuche mypy's Pfad zur Argumentprüfung für Aufrufe, die Sternchenargumente mit einem folgenden Positionsargument kombinieren. Vergleiche das gemeldete Ergebnis mit der erwarteten Akzeptanz von foo(*lst, 4) und überprüfe, dass der falsche Fehler "Too many arguments" nicht mehr ausgegeben wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 48/100