Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

泛型for迭代器的类型推导漏掉了带__call的类

Open
#3,463 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
lua
Domain
devtools

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
  1. copy the code above into IDE
  2. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from LuaLS/lua-language-server

All issues in LuaLS/lua-language-server

Similar issues

More Lua issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.