LuaLS / LuaLS/lua-language-server
Function with generic variable return type loses typing after first return
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 4.4k
- Forks
- 442
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
Linux
What is the issue affecting?
Type Checking
Expected Behaviour
ret2 in the example should be listed as string
Actual Behaviour
ret2 is listed as unknown
Reproduction steps
---@generic T
---@param arg T
---@return T ...
function GenericReturn(arg) end
local ret1, ret2 = GenericReturn("")
Additional Notes
Changing the return type to T|string correctly types the variable return but does not inherit the generic's typing.
Log File
No response
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 wird keine Quelldatei und kein Test genannt. Beginne damit, das allgemeine Rückgabe- und Vararg-Beispiel aus dem Issue zu reproduzieren, und verfolge dann die Tests des Lua language server zur Inferenz generischer Rückgabetypen und zur Typprüfung. Als erledigt gilt die Aufgabe, wenn ret2 als string inferiert wird, ohne die Annotation zu ändern, und ein Regressionstest das Beispiel abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- lua
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 48/100