LuaLS / LuaLS/lua-language-server
Returning generics with `T<X, Y>`
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
Below, I have a generic list that uses fluid interface to return itself for some methods:
```lua
--- @class List
local List = {}
--- @generic T : List, V, _
--- @param self T
--- @param value V # Element value to insert
--- @return T # Returning itself (a generic)
function List:insert(value)
return self -- Returning itself (a generic)
end
-- test
---@type List
local mylist
local testingType = mylist:insert(1)
-- ^ Testing type is not `List` but literally `T`
```

**Expected behavior**
testingType is of type `List`
I am thinking that this case could be something to look at for the 3.0 update.
(Edit: perfect #1000th issue...)
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
El payload no menciona ningún archivo fuente ni ninguna prueba. Empieza reproduciendo el ejemplo proporcionado de List:insert y compara el tipo inferido con el esperado List; después, sigue la inferencia del tipo de retorno genérico y añade una prueba de regresión que confirme que el resultado ya no es el literal T.
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
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100