LuaLS / LuaLS/lua-language-server

Generic class instanced in function should return as a concrete type

Aberta
#1,856 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

feat/generic
Linguagem predominante
Lua
Estrelas
4.4k
Forks
442
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

### 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, Hover

### Expected Behaviour

-

### Actual Behaviour

Hovering `strings` in this code below gives the type as `local strings: list<>|{ [integer]: string }`, whereas I expect the type/hover to be `local strings: list`.

```lua

---@class list: {[integer]:T}

---@generic T
---@param class `T`
---@return list
local function new_list(class)
return {}
end

local strings = new_list('string')

```

### Reproduction steps

-

### Additional Notes

_No response_

### Log File

_No response_

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece com o reprodutor em Lua na issue e inspecione o caminho de hover/inferência de tipos para a instanciação de classes genéricas. Reproduza o hover relatado `list<>|{ [integer]: string }` e verifique se o resultado é `list`.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
lua
Domínio
devtools
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.