Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Incorrect types used for overloaded class when passed as argument

Aberta
#3,274 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
42/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
lua
Domínio
devtools

Direção de pesquisa

Comece com a reprodução Lua fornecida e rastreie o caminho da verificação de tipos para argumentos de função e classes sobrecarregadas. A tarefa estará concluída quando o exemplo não emitir mais um aviso ao passar a classe chamável para um parâmetro tipado como função, enquanto as etapas de reprodução continuarem funcionando corretamente.

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

Descrição

How are you using the lua-language-server?

NeoVim

Which OS are you using?

Linux

What is the issue affecting?

Type Checking

Expected Behaviour

When a class which is overloaded as a function, if that class is passed as an argument to another function it should be checked as if it is a function if the argument has a function type.

---@param f function
local function call(f) f() end

---@class foo
---@overload fun()
local something = setmetatable({}, {__call = function () end})

call(something) -- <-- Here something should be treated as `fun()`
Actual Behaviour

The type of the class is treated as foo|fun() which results in a warning because foo does not match function.

Reproduction steps
  1. Create a class with an overload
  2. Pass it to another function which takes a function argument
  3. Observe that a warning is produced
Additional Notes

No response

Log File

No response

Linguagem predominante
Lua
Estrelas
4.4k
Forks
442
Merge médio
8d 9h
PRs com merge (30d)
1

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.

Mais de LuaLS/lua-language-server

Todas as issues de LuaLS/lua-language-server

Issues semelhantes

Mais issues de Lua

Receba novas issues na sua caixa de entrada

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