LuaLS / LuaLS/lua-language-server
Nil access check does not run
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
How are you using the lua-language-server?
Other
Which OS are you using?
Linux
What is the issue affecting?
Diagnostics/Syntax Checking
Expected Behaviour
I have the minimal example
---@class A
---@field b fun(self: A): table?
---@return A[]
local function get_A()
local l = {}
for _ = 1, 10 do
if math.random() > 0.5 then
table.insert(l, { b = function(self) return { f = 4 } end })
else
table.insert(l, { b = function(self) print("hi" .. tostring(self)) end })
end
end
return l
end
local as = get_A()
for i = 1, 10 do
local a = as[i]
if a:b().f > 3 then
print("yo")
end
end
The lsp should give me an error about a:b().f as a:b() could be nil.
Actual Behaviour
No warnings are shown.
Reproduction steps
- Copy the given code into an editor
- See that no errors are shown
Additional Notes
No response
Log File
No response
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 exécuter l’exemple Lua minimal dans un éditeur avec lua-language-server et confirmez qu’aucun diagnostic n’est émis pour a:b().f. Suivez le chemin des diagnostics/de la vérification syntaxique pour les appels chaînés et les valeurs de retour nullable. Le travail est terminé lorsque l’exemple indique que le déréférencement de a:b() peut accéder à une valeur nil, sans introduire d’avertissements sans rapport.
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é
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 52/100