LuaLS / LuaLS/lua-language-server

False negative: Warnings missing for table length mismatch

Aberta
#2,980 2 comentários 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?

NeoVim

Which OS are you using?

Linux

What is the issue affecting?

Type Checking, Diagnostics/Syntax Checking

Expected Behaviour

In the reproduction code below, f({0}) and f({0, 0, 0}) should issue warnings because they do not match the annotation [integer, integer], which requires a two-element table (tuple).

Actual Behaviour

There are no warnings issued for tables that have an invalid length.

I can see other warnings (e.g., for f("string")), so Neovim and other diagnostics are working correctly.
Screenshot

Reproduction steps

Open a text editor with lua-ls enabled and copy/paste this code.

---@alias Cursor [integer, integer]

---@param c Cursor
local function f(c) end

f("string")

f({ 0 })
f({ 0, 0, 0 })
Additional Notes

I tested with lua-language-server 3.9.1 and 3.13.2 and both have this problem.

Log File

I checked ~/.local/state/nvim/lsp.log since :LspInfo indicates it is the log file, but it was empty.

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 pelo snippet de reprodução e pelo caminho de verificação de tipos e diagnósticos do lua-language-server para aliases de tabelas. Compare o aviso existente para f("string") com os avisos ausentes para f({ 0 }) e f({ 0, 0, 0 }). O trabalho estará concluído quando as anotações de tupla relatarem um diagnóstico quando o comprimento da tabela for diferente dos dois elementos exigidos.

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
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
48/100

Receba novas issues na sua caixa de entrada

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