LuaLS / LuaLS/lua-language-server

assign-type-mismatch not reported for global values

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

Ninguém assumiu esta issue ainda.

enhancement
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?

NeoVim

### Which OS are you using?

Linux

### What is the issue affecting?

Annotations, Type Checking, Diagnostics/Syntax Checking

### Expected Behaviour

With a global table that has type-annotated fields, reassigning a field to an incorrectly-typed value should report `[assign-type-mismatch]`

### Actual Behaviour

No diagnostic is reported, even though autocompletion indicates that the type is understood by the server. Further, assigning a local variable to the global value and doing the same thing _does_ report the diagnostic correctly.

### Reproduction steps

```lua
---@class test
_G.test = {
---@type boolean
foo = true,
}
test.foo = 'bar' -- no error
_G.test.foo = 'bar' -- no error
local test2 = test
test2.foo = 'bar' -- [assign-type-mismatch]
```

### 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 executando a reprodução Lua fornecida e compare os diagnósticos para test.foo, _G.test.foo e test2.foo. Rastreie o caminho de verificação de tipos e diagnósticos para valores globais; considera-se concluído quando as duas atribuições globais reportarem [assign-type-mismatch] de forma consistente com o caso do alias local.

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
42/100

Receba novas issues na sua caixa de entrada

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