LuaLS / LuaLS/lua-language-server
Incorrect type on string-key fields when combined with `[string]`
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?
Windows
What is the issue affecting?
Type Checking
Expected Behaviour
we have a (generated) class like
---@class GlobalModSettings
---@field ["heat-visualizer-updates-per-surface-per-tick"] ModSetting<int32>
---@field ["nixie-tube-update-speed-alpha"] ModSetting<int32>
---@field ["nixie-tube-update-speed-numeric"] ModSetting<int32>
---@field [string] ModSetting<(int32)|(double)|(boolean)|(string)|(Color)>
which has narrower types for the known entries and a general type for the "everything else" field, but when i then use this type like
local x = settings.global["heat-visualizer-updates-per-surface-per-tick"]
x is given the type from the [string] field, rather than the one that is an exact match for that specific string
Actual Behaviour
(this template is always off screen and i've written the whole thing in the first box...)
Reproduction steps
(this template is always off screen and i've written the whole thing in the first box...)
Additional Notes
No response
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
Keine Repository-Datei oder kein Test ist benannt. Beginne damit, die Suche nach dem annotierten GlobalModSettings im Lua language server über die Visual Studio Code extension zu reproduzieren, und verfolge anschließend die Typauflösung für indizierte Felder. Als abgeschlossen gilt es, wenn ein Feld mit exakt passendem String-Schlüssel seinen spezifischeren Typ statt des allgemeineren Feldtyps [string] erhält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- lua
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100