LuaLS / LuaLS/lua-language-server
Generic Class: a method does not catch the type
未关闭
还没有人认领这个 Issue。
- 主要语言
- Lua
- 星标
- 4.4k
- 派生
- 442
- PR 合并指标
- 30 天内没有已合并 PR
描述
---@class Map<T>
Map = {}
---@param key T
---@return any?
function Map:Find(key) end
---@param key T
---@return boolean
function Map:Contains(key) end
---@param key T
function Map:Erase(key) end
function Map:Clear() end
---@class NumberMap: Map<number>
NumberMap = {}
---@return NumberMap
function NumberMap() end
local map = NumberMap()
map:Find(1)
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
使用 issue 中显示的 generic Map、NumberMap: Map 和 map:Find(1) 声明复现该诊断。首先跟踪 Lua language server 的 Generic-Class 类型传播,并检查 Map:Find 如何解析其键参数。当检查 Find 调用时应用了 NumberMap 特化,且所得诊断与具体键类型匹配时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- lua
- 领域
- devtools
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 65/100