LuaLS / LuaLS/lua-language-server
Nil access check does not run
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
How are you using the lua-language-server?
Other
Which OS are you using?
Linux
What is the issue affecting?
Diagnostics/Syntax Checking
Expected Behaviour
I have the minimal example
---@class A
---@field b fun(self: A): table?
---@return A[]
local function get_A()
local l = {}
for _ = 1, 10 do
if math.random() > 0.5 then
table.insert(l, { b = function(self) return { f = 4 } end })
else
table.insert(l, { b = function(self) print("hi" .. tostring(self)) end })
end
end
return l
end
local as = get_A()
for i = 1, 10 do
local a = as[i]
if a:b().f > 3 then
print("yo")
end
end
The lsp should give me an error about a:b().f as a:b() could be nil.
Actual Behaviour
No warnings are shown.
Reproduction steps
- Copy the given code into an editor
- See that no errors are shown
Additional Notes
No response
Log File
No response
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza ejecutando el ejemplo mínimo de Lua en un editor con lua-language-server y confirma que no se emite ningún diagnóstico para a:b().f. Traza el recorrido de diagnósticos/comprobación de sintaxis para llamadas encadenadas y valores de retorno nullable. Se considera terminado cuando el ejemplo informa de que desreferenciar a:b() puede acceder a un valor nil, sin introducir advertencias no relacionadas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- lua
- Área
- devtools
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 52/100