LuaLS / LuaLS/lua-language-server
Undefined global `var` in a function which has injected `var` into env
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
**Describe the bug**
`luv -v`: `LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2022 Mike Pall. https://luajit.org/`
```lua
local A = {}
function A.sync(executor)
local env = getfenv(executor)
env.await = A.wait
-- ......
executor()
end
function A.wait(promise)
print('go')
end
A.sync(function()
await() -- Undefined global `await`.
end)
return A
```
**Expected behavior**
No `Undefined global`
If it's hard to fix, how can I trick the server into treating `awati` as a global variable but not become an item in completion outside the `executor` function.
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
Reproduce el informe con el ejemplo de Lua en un servidor de lenguaje Lua en ejecución e inspecciona cómo el analizador gestiona getfenv, los miembros de entorno inyectados y los diagnósticos globales. Como en el issue no se nombra ningún archivo fuente ni ninguna prueba, localiza primero los puntos de entrada relevantes para el análisis global y la finalización. Se considera terminado cuando await no se informa como indefinido dentro del executor, pero sigue ausente de la finalización fuera de él.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- lua
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100