lua-language-server icon indicating copy to clipboard operation
lua-language-server copied to clipboard

Exact classes can have fields injected when used as parameters to funcitons

Open GiuseppeIII opened this issue 1 year ago • 2 comments

Love the new exact class! When using it though, I noticed that I could still 'inject' fields into an exact class when it is used as the input to a function. Example:

---@class (exact) TestClass
---@field public a number
---@field public b string
---@field public c boolean

---@param test_param TestClass
local function test(test_param)
end

test({a = 1, b = "2", c = true, d = 4})

causes no error.

I am not sure if this is intended or not, but I would expect to get an warning like: Fields cannot be injected into the reference of `TestClass` for `d`. To do so, use `---@class` for `test_param`.Lua Diagnostics.(inject-field) here.

GiuseppeIII avatar Aug 25 '23 06:08 GiuseppeIII