泛型for迭代器的类型推导漏掉了带__call的类
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 65/100
Research direction
Start by tracing construction of the generic-for iterator node and the first-expression getReturn path described in the issue, then inspect how callable values with __call are handled. Reproduce the example in Visual Studio Code and add or update a regression test so hovering i reports number instead of unknown.
Written by the indexing model from the issue text.
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
---@class Iter
---@operator call:number?
local iter
for i in iter do end -- 'i' should be 'number'
Actual Behaviour
---@class Iter
---@operator call:number?
local iter
for i in iter do end -- 'i' is 'unknown'
Reproduction steps
- copy the code above into IDE
- hover the mouse over the var
i
Additional Notes
原因是luals在构造迭代器节点时,只对第一个表达式使用getReturn,而后者只能用来得到函数的返回类型。后续未处理__call的情况,导致除了函数之外的所有callable都被忽略。
Log File
No response
- Dominant language
- Lua
- Stars
- 4.4k
- Forks
- 442
- Avg merge
- 8d 9h
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from LuaLS/lua-language-server
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
LuaLS/lua-language-server#1776 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
LuaLS/lua-language-server#3461 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
LuaLS/lua-language-server#3460 · 1 comment · 1 reaction ·
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
LuaLS/lua-language-server#3459 · 1 reaction ·
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
LuaLS/lua-language-server#3456 ·
All issues in LuaLS/lua-language-server
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
mailcow/mailcow-dockerized#7480 ·
-
documentation feature-request mini.completion
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
fluent/fluent-bit-docs#2727 ·
-
OS:Windows
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
enhancement needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 88/100