LuaLS / LuaLS/lua-language-server

Index an enum-value table bug

Aberta
#2,921 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

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?

Type Checking

### Expected Behaviour

expected the value type of mapping when index

### Actual Behaviour

got an unknown

### Reproduction steps

```lua
---@enum(key) AttrName
local o = {
['hp_max'] = true,
}
local map = {
['hp_max'] = 114514,
}
---@param t table
local function test(t)
--[[
Usage 1: correct
]]
local a = 'hp_max'
local b = t[a] -- expected: number, got: number
print(b)

--[[
Usage 2: incorrect
]]
local c = t['hp_max'] -- expected: number, got: unknown
print(c)

--[[
Usage 3: correct
]]
local d = "hp_grow"
local e = t[d] -- expected: unknown, got: unknown
print(e)
end
test(map)
```

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

Reproduza o relatório na extensão LuaLS Visual Studio Code no Windows usando o snippet de Lua fornecido e inspecione o caminho de verificação de tipos para indexação de tabelas com chaves de enum. Compare os diagnósticos para os três usos, especialmente o índice literal 'hp_max'. Considera-se concluído quando os tipos reportados correspondem às expectativas da reprodução.

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

Avaliação

Stack de tecnologia
lua
Domínio
compilers, 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.