LuaLS / LuaLS/lua-language-server

Warning is only generated for the first vararg parameter

Open
#3,340 0 comments 0 reactions 0 assignees View on GitHub
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`

Image

### Log File

_No response_

Contributor guide

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.