LuaLS / LuaLS/lua-language-server

No Protection on enum values as function input

Abierto
#2,384 2 comentarios 5 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Lua
Estrellas
4.4k
Forks
442
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Usa el ejemplo proporcionado de enum y función como reproducción, comparando los diagnósticos para TestEnum.FOUR y "FOUR". Rastrea la comprobación de tipos de enum y argumentos de función del language server y añade cobertura para ambas llamadas; estará listo cuando el miembro de enum no válido se diagnostique de forma coherente con el literal de cadena no válido.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
lua
Área
devtools
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.