LuaLS / LuaLS/lua-language-server

No Protection on enum values as function input

Offen
#2,384 2 Kommentare 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Lua
Sterne
4.4k
Forks
442
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Currently with code like the following:

---@enum TestEnum
TestEnum = {
	ONE = "ONE",
	TWO = "TWO",
	THREE = "THREE",
}

---@param test_enum TestEnum
local function test(test_enum)
	print(test_enum)
end

test(TestEnum.ONE) --- CORRECT: No error
test("ONE") --- CORRECT: No error
test(TestEnum.FOUR) --- INCORRECT: No error
test("FOUR") --- CORRECT: Error

There is no intellisense error for test(TestEnum.FOUR) like there is for test("FOUR")

Screenshot_1

It would be nice to get an error if you are trying to use a non-existing enum value (I have run into problems relating to this 😞) similarly if you are trying to use a string literal which doesn't match the enum.

I think this might be related to a wider issue where inputs to functions can be of type unknown even with the no-unknown setting.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Verwende das bereitgestellte Enum- und Funktionsbeispiel als Reproduktion und vergleiche die Diagnosen für TestEnum.FOUR und "FOUR". Verfolge die Typprüfung des Language Servers für Enum- und Funktionsargumente und füge Abdeckung für beide Aufrufe hinzu; fertig, wenn das ungültige Enum-Mitglied konsistent mit dem ungültigen String-Literal diagnostiziert wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
lua
Bereich
devtools
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.