LuaLS / LuaLS/lua-language-server
[Enhancement] Improve fun type matching
Aberta
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
---@class Class
---@field f fun(s: string): integer
---@param f fun(x: string): integer
local function handle(f)
return f("string")
end
-----
---@param i number
---@return boolean
local function is_positive(i)
return i >= 0
end
handle(is_positive) -- expect `param-type-mismatch`
---@type Class
local _ = { f = is_positive } -- expect `assign-type-mismatch`
Expected warning:
Type fun(i: number):boolean cannot match fun(x: string):integer
I didn't find duplicates, although I expected them
maybe I didn't search well
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece reproduzindo o snippet de Lua da issue e rastreando o caminho de correspondência de tipos de função usado nas verificações de chamadas e atribuições. Está concluído quando ambas as incompatibilidades produzirem os avisos esperados param-type-mismatch e assign-type-mismatch, incluindo os tipos de função relatados.
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