LuaLS / LuaLS/lua-language-server

generic in the loop

Abierto
#2,580 1 comentario 0 reacciones 0 asignados Ver en GitHub

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?

Visual Studio Code Extension (sumneko.lua)

Which OS are you using?

Windows

What is the issue affecting?

Annotations, Type Checking

Expected Behaviour

Снимок экрана 2024-03-24 160655

Actual Behaviour

Снимок экрана 2024-03-24 162116

Reproduction steps
---@generic T
---@param t T[]
---@return fun(): { first: integer, second: T }
local function test_function(t)
    local ending = #t
    local begining = 1

    local j = begining

    return function()
        if ending < j then
            return nil
        end

        local i = t[j]

        j = j + 1

        if i then return { first = j - 1, second = i } end
    end
end

---@type integer[]
local test_table = {}

local test_result = test_function(test_table)()

local test1 = test_result.second

for itr in test_function(test_table) do
    local test2 = itr.first;
    local test3 = itr.second;
end

Additional Notes

No response

Log File

No response

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza ejecutando la reproducción en Lua incluida en el issue y compara los tipos inferidos con las capturas de pantalla de Expected Behaviour y Actual Behaviour. Sigue los puntos de entrada del language server para las anotaciones y la comprobación de tipos de las funciones genéricas y los valores devueltos por iteradores; después, verifica que los tipos reportados coincidan con el resultado esperado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
lua, vscode
Á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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.