LuaLS / LuaLS/lua-language-server
Something not okay with enum types
Offen
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
---@enum EnumAB
local e = {
A = 0,
B = 1,
}
---@type EnumAB
local a = 1
---@type EnumAB.A
local ea = e.A
---@type EnumAB.B
local eb = e.B
---@type EnumAB.B
local eb = e.A -- Cannot assign `EnumAB.A` to `EnumAB.B`
---@type EnumAB
local ee = eb
---@type EnumAB.A
local eea = ee -- Cannot assign `EnumAB` to `EnumAB.A`
Actual Behaviour
---@enum EnumAB
local e = {
A = 0,
B = 1,
}
---@type EnumAB
local a = 1
---@type EnumAB.A
local ea = e.A -- Cannot assign `integer` to `EnumAB.A`
---@type EnumAB.B
local eb = e.B -- Cannot assign `integer` to `EnumAB.B`
---@type EnumAB.B
local eb = e.A -- Cannot assign `EnumAB.A` to `EnumAB.B`
---@type EnumAB
local ee = eb -- Cannot assign `EnumAB.B` to `EnumAB`.
---@type EnumAB.A
local eea = ee -- Cannot assign `EnumAB` to `EnumAB.A`
Reproduction steps
Additional Notes
EnumAB.A is most likely an unintended side effect, but having restrictions inside the enum seems like a good idea
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, kein Einstiegspunkt und kein Test genannt. Reproduziere die Enum-Zuweisungen aus dem Issue in der Visual-Studio-Code-Erweiterung des Lua language server unter Linux, verfolge anschließend das Verhalten der Typprüfung und definiere eine Regressionstestabdeckung für die erwarteten Beziehungen zwischen EnumAB, EnumAB.A und EnumAB.B.
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
- 35/100