lua-language-server
lua-language-server copied to clipboard
Incorrect field type calculation when field name in variable
How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua) v3.11.0
Which OS are you using?
Linux
What is the issue affecting?
Type Checking
Reproduction steps
---@diagnostic disable: unused-local
---@class Class
local Class = { __type = "Class" }
local field = "some_string" -- field: string = "some_string"
do
local c = {} ---@type Class
-- OK
local f1 = c["some_string"] -- f1: unknown
local f2 = c[field] -- f2: unknown
end
function Class:f()
-- OK
local f1 = self["some_string"] -- f1: unknown
-- BUT
local f2 = self[field] -- f2: string = "Class"
end
do
-- OK
local f1 = Class["some_string"] -- f1: unknown
-- BUT
local f2 = Class[field] -- f2: string = "Class"
end