LuaLS / LuaLS/lua-language-server

Support generic table

Open
#3,042 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Lua
Stars
4.4k
Forks
442
PR merge metrics
No merged PRs in 30d

Description

Hi,

Is it possible to create a generic table such that the returned type is the key as a type. For example:

```lua
---@class MyClass
local MyClass = {}

---@generic T
---@type table<'T', T>
local Classes = {}

local c = Classes["MyClass"]
```

In the above example, I expect c to have the type MyClass

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.

Research direction

Start by reproducing the Lua example in the language server and trace how generic table annotations and indexed lookups are currently analyzed. The work is done when a key such as "MyClass" makes the lookup result resolve to the corresponding class type, with coverage for the shown annotation and access pattern.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.