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
- 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
- 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
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
xis a boolean,if x == false thenshould identifyxasfalsein its true block, andtruein its false block.Actual Behaviour
In the true block,
xis identified astrue, and in the false block,xis identified asboolean.Reproduction steps
yto inspect its type.Additional Notes
This doesn't just happen with boolean types. It can happen to any type that can be
false, such asinteger|false|nil.Log File
No response