Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Type narrowing breaks on equivalence to false.

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

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
48/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
lua
Domaine
devtools

Piste de recherche

Reproduisez le problème dans l’extension Visual Studio Code à l’aide de l’extrait Lua et survolez y dans les deux branches. Suivez le comportement de la vérification de type pour x == false, puis vérifiez que la branche true se résout en false et la branche false en true, y compris pour des unions telles que integer|false|nil.

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

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

When x is a boolean, if x == false then should identify x as false in its true block, and true in its false block.

Actual Behaviour

In the true block, x is identified as true, and in the false block, x is identified as boolean.

Reproduction steps
  1. Paste this code into the editor
local x ---@type boolean

if x == false then
	local y = x
	-- y is type `true`, should be type `false`
else
	local y = x
	-- y is type 'boolean', should be type 'true'
end
  1. Hover over y to inspect its type.
Additional Notes

This doesn't just happen with boolean types. It can happen to any type that can be false, such as integer|false|nil.

Log File

No response

Langage dominant
Lua
Étoiles
4.4k
Forks
442
Merge moyen
8 j 9 h
PR mergées (30 j)
1

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.

Autres issues de LuaLS/lua-language-server

Toutes les issues de LuaLS/lua-language-server

Issues similaires

Plus d'issues Lua

Recevez les nouvelles issues par e-mail

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