LuaLS / LuaLS/lua-language-server
Reassigning nullable in if block
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?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
Windows
What is the issue affecting?
Type Checking
Expected Behaviour
After cheking for null in IF block, variable should return not null.
Actual Behaviour
After cheking for null in IF block, variable returns nullable value, so it causes warning
solution: check in two if blocks or use --[[@as not_nullable_type]]
Reproduction steps
---@class Mclass
local var1= {
---@type number?
var2 = nil,
}
---@param number
local function fun1(var2) end
if var1 and var1.var2 then
local var2= var1.var2
fun1(var2) --Cannot assign number? to parameter number.
end
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 la reproduction en Lua dans l’issue en utilisant l’extension Visual Studio Code et examinez le comportement de vérification des types autour du champ nullable à l’intérieur du bloc if. Confirmez l’avertissement signalé et suivez le typage de la valeur vérifiée lorsqu’elle est affectée à la variable locale. C’est terminé lorsque le narrowing est conservé, de sorte que le passage de cette variable au paramètre number ne signale plus d’avertissement de type nullable.
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é
- Plutôt claire
- Accessibilité débutants
- 35/100