LuaLS / LuaLS/lua-language-server

Diagnostics for class array

Aberta
#1,721 0 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

enhancement feat/type check
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

When a class is matched with its array it should produce a diagnostic error.

Actual Behaviour

No diagnostic error is produced when a class array is matched with a class.

Reproduction steps
  1. Paste the following code:
---@class classA
local a

---@type classA[]
local b

---@param param1 classA[]
---@return classA
local function testFunc(param1)
    param1 = a
    return b
end

local result = testFunc(a)
  1. Assigning param1, returning b and calling testFunc with a should all produce diagnostic errors, but no diagnostic error is produced.
Additional Notes

Another class, such as classB can be matched with classA[] without error.

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

Execute a reprodução em Lua na extensão do Visual Studio Code e inspecione o ponto de entrada do diagnóstico de verificação de tipos quanto à compatibilidade entre classes e arrays. Verifique se atribuir param1, retornar b e chamar testFunc(a) produzem diagnósticos, enquanto a comparação de classB continua coberta pelo comportamento existente.

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

Receba novas issues na sua caixa de entrada

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