LuaLS / LuaLS/lua-language-server

Generic class instanced in function should return as a concrete type

Offen
#1,856 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feat/generic
Vorherrschende Sprache
Lua
Sterne
4.4k
Forks
442
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### 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?

Annotations, Hover

### Expected Behaviour

-

### Actual Behaviour

Hovering `strings` in this code below gives the type as `local strings: list<>|{ [integer]: string }`, whereas I expect the type/hover to be `local strings: list`.

```lua

---@class list: {[integer]:T}

---@generic T
---@param class `T`
---@return list
local function new_list(class)
return {}
end

local strings = new_list('string')

```

### Reproduction steps

-

### Additional Notes

_No response_

### Log File

_No response_

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit dem Lua-Reproduzenten im Issue und untersuchen Sie den Hover-/Typinferenzpfad für die Instanziierung generischer Klassen. Reproduzieren Sie den gemeldeten Hover `list<>|{ [integer]: string }` und überprüfen Sie, dass das Ergebnis `list` ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
lua
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.