-
-
Notifications
You must be signed in to change notification settings - Fork 369
Open
Labels
bugSomething isn't workingSomething isn't workingfeat/genericRelated to generic emulation featureRelated to generic emulation feature
Milestone
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?
Other
Expected Behaviour
Actual Behaviour
Reproduction steps
Maybe I'm doing something wrong, but it seems to have worked before
---@class Test
---@field ID integer
local Test = {};
---@param id integer
---@return Test
function Test:new(id)
return setmetatable({ ID = id }, { __index = self });
end
---@type table <integer, table<integer, number>>
local tab = {
[1] = { 1.0, 2.1, 3.2 },
[2] = { 4.0, 5.1, 6.2 },
[3] = { 7.0, 8.1, 9.2 }
}
---@generic T
---@param test table<integer, T>
---@return table<Test, T>
local function convert2Test(test)
local t = {};
for k, v in pairs(test) do
t[Test:new(k)] = v;
end
return t;
end
local newTab = convert2Test(tab);
for k, v in pairs(newTab) do
print(k, v); -- ok! k and v detected
end
local test = Test:new(3);
local info = newTab[test];
if info then
for k, v in pairs(info) do
print(k, v); -- oops! k and v not detected
end
end
Additional Notes
No response
Log File
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingfeat/genericRelated to generic emulation featureRelated to generic emulation feature