LuaLS / LuaLS/lua-language-server
Better support for varargs in functions in classes declared with @field
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
I ran into a minor problem with how vararg is handled in function declarations in an field annotation when the function declaration itself later explicitly lists the arguments.
```
---@class Handler
---@field ReceiveMsg fun(self: Handler, type: number, ...: string)
local handler = {}
function handler:ReceiveMsg(arg1, arg2, arg3, arg4)
--- arg2 is inferred as string, but arg3 and arg4 are "any"
end
```
Why do I even have this mismatch between field and function declaration? The field annotation comes from a library and is an event handler -- the number of parameters depend on a lot of things, but for a given implementation you usually only care about a few that you explicitly declare.
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
Comienza reproduciendo el ejemplo de Handler del issue con una anotación vararg @field ReceiveMsg y una declaración explícita del método. Sigue la propagación del tipo vararg durante la declaración de la función y la inferencia de parámetros. Se considera completado cuando arg2, arg3 y arg4 se infieren de forma consistente como string, en lugar de dejar los argumentos posteriores como any.
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