LuaLS / LuaLS/lua-language-server

Inheriting from a generic class, which uses an annotated table definition causes fields to get lost

Ouverte
#3,443 0 commentaires 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

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

```lua
--- (field) Specific.value: string
hover(t.value)
```

### Actual Behaviour

```lua
--- (field) Specific.value: unknown
hover(t.value)
```

### Reproduction steps

```lua
---@class GenericSuper : { value: T }

---@class Specific : GenericSuper

---@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:
```lua
---@class GenericSuper
---@field value T

---@class Specific : GenericSuper

---@type Specific
local t

--- (field) Specific.value: string
hover(t.value)
```

### Log File

_No response_

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 NeoVim en utilisant le constructeur de table GenericSuper et l’héritage Specific : GenericSuper présentés dans le rapport. Comparez les résultats du survol pour la forme du constructeur de table et la forme @field équivalente ; le travail est terminé lorsque t.value est inféré comme string dans le cas du constructeur de table hérité.

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é
Calme
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

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