LuaLS / LuaLS/lua-language-server
Warning is only generated for the first vararg parameter
- Dominant language
- Lua
- Stars
- 4.4k
- Forks
- 442
- PR merge metrics
- No merged PRs in 30d
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
Warning is generated for each argument with mismatched type for `---@vararg type` and '---@param ... type' annotations.
### Actual Behaviour
Warning generated only for the first passed argument.
### Reproduction steps
1. Paste following lua code into VSCode
```
---@param ... number
function Test(...) end
Test(1) -- OK, no warning
Test("1") -- OK, warning in place
Test(1, 2, 3) -- OK, no warnings
Test("1", "2", "3") -- There is only warning for "1" but no warning for "2" and "3". I.e. warning is only generated for the first argument
Test(1, "2", "3") -- still no warnings for "2" and "3".
```
### Additional Notes
I am observing the same behavior for legacy `---@varargs`
### Log File
_No response_
Contributor guide
Research direction
Reproduce the examples in the Visual Studio Code extension, comparing regular `---@param ... number` with legacy `---@varargs`. Trace the type-checking path for vararg calls and verify that each mismatched argument produces a warning, including later arguments in both annotation forms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100