LuaLS / LuaLS/lua-language-server

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

Abierto
#3,443 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Lua
Estrellas
4.4k
Forks
442
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Reproduzca el problema en NeoVim usando el constructor de tablas GenericSuper y la herencia Specific : GenericSuper mostrados en el informe. Compare los resultados del hover para la forma del constructor de tablas y la forma equivalente @field; se considera terminado cuando t.value se infiere como string en el caso heredado del constructor de tablas.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
lua
Área
devtools
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.