LuaLS / LuaLS/lua-language-server
Way to annotate `@overload` only table, instead of the entire `@class`
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
---@class Class
---@overload fun(): self|Class
local Class = {}
local c = Class()
local unknown = c() -- but unknown is Class
I thought that was the indication self/Class was responsible for this
self for object
Class for table
But today I discovered that this is not so.
And in previous versions as well
In principle, this can be achieved by explicitly making
---@cast Class Class|fun(): Class
But for long names it is extremely monstrous
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
Reproduisez l’extrait Lua de l’issue dans le language server et suivez la manière dont les annotations @class et @overload sont interprétées. Déterminez comment un overload peut s’appliquer à la table de classe sans modifier le type d’instance, ajoutez une couverture pour l’exemple et vérifiez que le type inféré de unknown est Class.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua
- Domaine
- devtools
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100