LuaLS / LuaLS/lua-language-server
Infer the type of the returned expression from the return type declaration
Personne n'a encore pris cette issue.
- Langage dominant
- Lua
- Étoiles
- 4.4k
- Forks
- 442
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
The situation:
---@class Test
---@field foo number
---@return Test
local function test()
return {
foo = 'this is not a number!',
}
end
The code passes as valid when in reality the field is assigned a wrong type of value.
Right now the workaround is to do
---@class Test
---@field foo number
---@return Test
local function test()
---@type Test
return {
foo = 'this is not a number!',
}
end
which to me feels like belaboring the obvious. Would be great if LuaLS assumed this automatically.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire l’extrait Lua dans une configuration locale de language-server et examinez comment les déclarations de type de retour sont traitées lors de l’inférence de type des tables. La modification est terminée lorsque le type de retour Test déclaré entraîne le signalement de la chaîne incorrecte affectée à foo sans annotation @type supplémentaire, tout en laissant le contournement existant valide.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua
- Domaine
- devtools
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 42/100