LuaLS / LuaLS/lua-language-server
Unexpected generic behaviour
Abierto
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?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
MacOS
What is the issue affecting?
Annotations
Expected Behaviour
local ffi = require("ffi")
---@generic T
---@param ct `T`
---@return fun(x: T): `T`*
local function ref(ct)
return function (init)
return ffi.new(ct.."[1]", {init})
end
end
ffi.cdef [[
typedef struct MyStruct {
int a, b;
} MyStruct;
]]
---@class MyStruct
---@field a integer
---@field b integer
---@class MyStruct* : { [integer] : MyStruct }, ffi.cdata*
local x = ffi.ref "MyStruct" {
a = 4,
b = 2
}
--type of `x` expected to be `MyStruct*`
Actual Behaviour
type of x is MyStruct
Reproduction steps
Run the code and check types
Additional Notes
No response
Log File
No response
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Reproduce el ejemplo de anotaciones en la extensión de Visual Studio Code e inspecciona cómo se infieren el tipo de retorno genérico y las anotaciones de la clase FFI. Compara el tipo inferido de x con el resultado esperado MyStruct*; se considera terminado cuando el ejemplo informa de que x es MyStruct* en lugar de MyStruct.
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
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100