LuaLS / LuaLS/lua-language-server

Cannot inherit generic classes (including tables)

Ouverte
#3,271 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

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

Hello, I apologize for bringing yet another generics issue as I know it takes time for it to be made solid... Thanks for looking into my problem. I use the following code to extend the number[] class, but then the elements are not marked as numbers for a non literal object.

---@class NumberTable: number[]

---@param t NumberTable
---@return number|nil
function FirstElement(t)
  local n = t[1] -- marked as unknown
  return n
end

---@param t number[]
---@return number|nil
function FirstElementBis(t)
  local n = t[1] -- marked as number
  return n
end

I would expect t[1] to be marked as number. I also tried replacing number[] with table<number> and table<number, number> without success. Thank you!

(I use LuaLS on Neovim on Linux)

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez le problème dans LuaLS avec les annotations NumberTable et FirstElement fournies, en utilisant Neovim sous Linux comme décrit. Comparez le type inféré de t[1] avec le cas direct number[] et les variantes de table. Le travail est considéré comme terminé lorsque les annotations génériques et de table héritées identifient systématiquement l’élément comme étant de type number.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
lua, neovim
Domaine
devtools
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.