Using LuaJIT's nil-coalescing extension does not narrow the type correctly
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
Línea de trabajo
Comienza reproduciendo el problema en el comprobador de tipos de lua-language-server con el ejemplo ?? proporcionado y, a continuación, compara su tipo inferido con el de la expresión or equivalente. Traza cómo la expresión nil-coalescing gestiona los operandos nullable; el trabajo está terminado cuando bar se infiere como integer y el comportamiento existente sigue siendo correcto para el caso de comparación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
How are you using the lua-language-server?
Other
Which OS are you using?
Linux
What is the issue affecting?
Type Checking
Expected Behaviour
Using the nil-coalescing operator should narrow an expressions type. For example, in this sample code, the type of b should be narrowed to integer:
---@type integer?
local foo = 1
local bar = foo ?? 2
Actual Behaviour
Instead of the type being narrowed, the type of foo is copied instead, and the type of bar is thought to be integer? instead of integer.
Reproduction steps
- Insert the following sample code in a project:
---@type integer?
local foo = 1
local bar = foo ?? 2
- Check the type of
b
Additional Notes
This seems to work fine using the classic Lua approach with or:
---@type integer?
local foo = 1
local bar = foo or 2
The type of bar is integer here, as expected.
Log File
No response
- Lenguaje dominante
- Lua
- Estrellas
- 4.4k
- Forks
- 442
- Merge medio
- 8 d 9 h
- PR fusionados (30 d)
- 1
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.
Más de LuaLS/lua-language-server
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
LuaLS/lua-language-server#1776 ·
-
泛型for迭代器的类型推导漏掉了带__call的类 Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
LuaLS/lua-language-server#3463 · 5 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
LuaLS/lua-language-server#3461 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
LuaLS/lua-language-server#3460 · 1 comentario · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
LuaLS/lua-language-server#3456 ·
Todos los issues de LuaLS/lua-language-server
Issues similares
-
Nmap
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
LandSandBoat/server#11579 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100