LuaLS / LuaLS/lua-language-server
enum inherits fields from class with different name
Personne n'a encore pris cette issue.
- Langage dominant
- Lua
- Étoiles
- 4.4k
- Forks
- 442
- Métriques de merge des PR
- Aucune PR mergée en 30 j
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?
Annotations
Expected Behaviour
As far as enum has unique name, this warning should not exist.
Actual Behaviour
Here is my annotations:
-- RenderMode.Regular, path: ['viewscreen_titlest', 'menu_line_id'], container
---@class viewscreen_titlest.menu_line_id_C
---@field [integer] viewscreen_titlest.menu_line_id
---@field resize fun(self: self, size: integer): nil
---@field insert fun(self: self, index: "#"|integer, item: viewscreen_titlest.menu_line_id): nil
---@field erase fun(self: self, index: integer): nil
---@field assign fun(self: self, obj: self): nil
---@field delete fun(self: self): boolean
---@field _displace fun(self: self, index: integer): self
---@field _kind "primitive"|"struct"|"container"|"bitfield"
---@field _type table | string
df.viewscreen_titlest.menu_line_id_C = nil
-- RenderMode.Regular, path: ['viewscreen_titlest', 'menu_line_id'], enum
---@enum viewscreen_titlest.menu_line_id
df.viewscreen_titlest.menu_line_id = {
Continue = 0,
Start = 1,
NewWorld = 2,
TestingArena = 3, -- nonfunctional in 50.04
Mods = 4, -- nonfunctional in 50.04 since v50.01
Settings = 5,
AboutDF = 6,
Quit = 7,
}
As you can see, there are different typenames and objects names.
But enum requires class fields.
Missing required fields in type `viewscreen_titlest.menu_line_id_C`: `resize`, `insert`, `erase`, `assign`, `delete`, `_displace`, `_kind`, `_type`
Reproduction steps
Get code above and check.
Additional Notes
No response
Log File
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la reproduction annotée dans l’issue et suivez la manière dont le language server résout les déclarations @enum et @class lorsque leurs noms de type et d’objet diffèrent. Vérifiez le diagnostic qui signale que les champs de la classe sont manquants, puis confirmez que l’avertissement est absent pour cet enum distinct, tandis que les vérifications réelles des champs obligatoires restent intactes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100