table newindex shows invalid `need check for nil` warning if key is `false`
還沒有人認領這個 Issue。
評估
研究方向
從 issue 中的 Lua 重現開始,追蹤鍵為 false 而不是 nil 時 table newindex 操作的型別檢查路徑。也檢查回報的 cast 範例,然後確認具有 false 值的有效鍵不再產生警告,而真正為 nil 的鍵仍會產生警告。
由索引模型根據 Issue 內容生成。
描述
How are you using the lua-language-server?
NeoVim
Which OS are you using?
Windows
What is the issue affecting?
Type Checking
Expected Behaviour
t[key] = {} should throw no warning if key is not nil.
Actual Behaviour
t[key] = {} throws an invalid warning if key is false but not nil.
Reproduction steps
local CACHE = {}
CACHE[false] = {} -- ok
local key = false
CACHE[key] = {} -- should be ok as well, but throws invalid warning
Additional Notes
This happened to me in a more complex method where I ensured a key is not nil, by redefining the parameter:
function apicall(input)
local key = input or false
-- more stuff...
cache[key] = {}
return cache[key]
end
I'd like to note an annoyance when it comes to casting, the following casts all throw warnings, even if explicitly casting the variable, requiring me to invent a new variable (or forcing me disable redefining local):
---@param input string?
function apicall(input)
-- this cast does nothing and also throws no warning
---@cast input +false
-- this cast warns that it can't cast string? to string|false
---@cast input string|false
-- this is what I do, it just throws an info warning, which I've disabled:
---@type string | false
local input = input or false
end
Log File
No response
- 主要語言
- Lua
- 星號
- 4.4k
- 分支
- 446
- 平均合併
- 8 天 9 小時
- 30 天內合併 PR
- 1
環境準備
- 提供 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
LuaLS/lua-language-server 的其他 Issue
-
enhancement
難度 2/5 1-3 小時 新手友好度 62/100
LuaLS/lua-language-server#1776 ·
-
難度 4/5 3-5 天 新手友好度 35/100
LuaLS/lua-language-server#3470 ·
-
難度 3/5 1-2 天 新手友好度 68/100
LuaLS/lua-language-server#3469 ·
-
難度 3/5 1-2 天 新手友好度 68/100
LuaLS/lua-language-server#3468 ·
-
難度 3/5 1-2 天 新手友好度 65/100
LuaLS/lua-language-server#3463 · 5 則留言 ·
查看 LuaLS/lua-language-server 的全部 Issue
相似的 Issue
-
enhancement good first issue
難度 2/5 1-3 小時 新手友好度 85/100
-
難度 1/5 1 小時以內 新手友好度 91/100
-
bug ready ticket
難度 2/5 1-3 小時 新手友好度 78/100
Domktorymysli/vclu#5 ·
-
難度 2/5 1-3 小時 新手友好度 70/100
維護者通常 3 天內回覆
-
Campaign WC
難度 2/5 1-3 小時 新手友好度 60/100
維護者通常 1 天內回覆