LuaLS / LuaLS/lua-language-server

Custom __pairs expects only 1 return value

未關閉
#2,512 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
Lua
星號
4.4k
分支
442
PR 合併指標
30 天內沒有已合併 PR

描述

### How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

### Which OS are you using?

Linux

### What is the issue affecting?

Type Checking

### Expected Behaviour

I expected no warnings

### Actual Behaviour

There is a redundant return value warning

### Reproduction steps

Here's an example where string paths are transformed to their package.loaded value

```lua
local imports = {
mod1 = "src.mod1",
mod2 = "src.mod2"
}

return setmetatable({}, {
__pairs = function(_)
local iter = pairs(imports)

local newiter = function (table, index)
local k, path = iter(table, index)

return k, package.loaded[path]
end

--- LuaLS is wrong here
---@diagnostic disable-next-line:redundant-return-value
return newiter, imports, nil
end
})
```

### Additional Notes

https://www.lua.org/pil/7.3.html

### Log File

_No response_

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

在 Linux 上使用提供的 setmetatable 和 __pairs 範例,重現 LuaLS Visual Studio Code extension 中的警告。先從 __pairs 的型別檢查處理著手,並與 issue 中連結的 Lua 7.3 參考資料進行比較。當該範例不再回報多餘回傳值警告時,即表示完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
lua
領域
devtools
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。