LuaLS / LuaLS/lua-language-server

`__call` metamethod return type ignored

Ouverte
#95 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement feat/LuaCats Annotations priority.low
Langage dominant
Lua
Étoiles
4.4k
Forks
442
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

This works in Intelij but not with your extension

---@class Test
local Test = {
	someval=404
}
---@return Test
function Test:__call() end
setmetatable(Test, Test)

local t = Test()
-- No completion for the following
t.

As i note it seems that setmetatable might not even be accounted for and that only the fact __call is in the same table makes it work in InteliJ, though i am not sure.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire l’extrait Lua et vérifier la complétion après local t = Test() et t.. Suivez la façon dont l’extension infère les types de retour de __call et déterminez si setmetatable est pris en compte ; c’est terminé lorsque le type Test retourné propose la complétion de someval.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
lua
Domaine
devtools
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.