LuaLS / LuaLS/lua-language-server
[Feature request] Support for the upvalue limit
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
Functions in Lua 5.1 (and LuaJIT) can only reference up to 60 upvalues.
For example, the following code does not compile in Lua 5.1 ("lua5.1: upvals.lua:4: function at line 3 has more than 60 upvalues") but LuaLS accepts it without any warning when the version is set to 5.1. Ideally this would be handled directly in the parser similar to the 200 local limits.
local a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61
function Foo()
print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61)
end
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 en el parser, donde se gestiona el límite existente de 200 variables locales, y sigue cómo se cuentan los upvalues para Lua 5.1 y LuaJIT. Añade la advertencia de límite correspondiente para las funciones que superen los 60 upvalues y, después, ejecuta las pruebas del parser o añade un caso basado en el ejemplo para verificar que Lua 5.1 informa del error.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- lua
- Área
- compilers
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100