LuaLS / LuaLS/lua-language-server
Inheriting from a generic class, which uses an annotated table definition causes fields to get lost
Dieses Issue hat noch niemand übernommen.
- 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?
NeoVim
Which OS are you using?
Windows
What is the issue affecting?
Annotations, Type Checking
Expected Behaviour
--- (field) Specific.value: string
hover(t.value)
Actual Behaviour
--- (field) Specific.value: unknown
hover(t.value)
Reproduction steps
---@class GenericSuper<T> : { value: T }
---@class Specific : GenericSuper<string>
---@type Specific
local t
hover(t.value)
Then hover on t.value
Additional Notes
Interestingly this seems to only affect inheriting from table constructor. When converting it into a field, it works as expected:
---@class GenericSuper<T>
---@field value T
---@class Specific : GenericSuper<string>
---@type Specific
local t
--- (field) Specific.value: string
hover(t.value)
Log File
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduzieren Sie das Problem in NeoVim mit dem im Bericht gezeigten Tabellenkonstruktor GenericSuper und der Vererbung Specific : GenericSuper. Vergleichen Sie die Hover-Ergebnisse für die Form des Tabellenkonstruktors und die äquivalente @field-Form; als abgeschlossen gilt die Aufgabe, wenn t.value im geerbten Tabellenkonstruktor-Fall als string inferiert wird.
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
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100