You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When having an alias like ---@alias Foo (string|Foo)[] it should understand that { "hello", "world"} or {"hello", {"wordl"}} are both matching that type. That's actually about type checking, which is not the focus of this issue/bug report, see below.
Actual Behaviour
The server errors due to a stack overflow when trying to provide completion inside of a table constructor that is assigned to a variable of type Foo. The error is:
[01:04:07.826][error][#0:script/workspace/scope.lua:58]: script/workspace/scope.lua:58: stack overflow
stack traceback:
script/workspace/scope.lua:58: in method 'isChildUri'
script/workspace/scope.lua:216: in function 'workspace.scope.getFolder'
script/workspace/scope.lua:243: in function 'workspace.scope.getScope'
script/vm/global.lua:51: in method 'getSets'
script/vm/def.lua:50: in upvalue 'searchByNode'
script/vm/def.lua:91: in function 'vm.vm.getDefs'
script/core/completion/completion.lua:1276: in upvalue 'insertEnum'
script/core/completion/completion.lua:1277: in upvalue 'insertEnum'
script/core/completion/completion.lua:1277: in upvalue 'insertEnum'
script/core/completion/completion.lua:1277: in upvalue 'insertEnum'
... (skipping 83317 levels)
script/core/completion/completion.lua:1277: in upvalue 'insertEnum'
script/core/completion/completion.lua:1277: in upvalue 'insertEnum'
script/core/completion/completion.lua:1291: in upvalue 'checkTypingEnum'
script/core/completion/completion.lua:1309: in upvalue 'checkEqualEnumLeft'
script/core/completion/completion.lua:1354: in upvalue 'checkEqualEnumInString'
script/core/completion/completion.lua:1384: in upvalue 'trySpecial'
script/core/completion/completion.lua:2229: in upvalue 'tryCompletions'
script/core/completion/completion.lua:2248: in function 'core.completion.completion.completion'
script/provider/provider.lua:638: in function <script/provider/provider.lua:601>
[C]: in function 'xpcall'
script/proto/proto.lua:184: in function <script/proto/proto.lua:159>
Reproduction steps
put this code somewhere
---@aliasFooFoo[]---@typeFoolocalfoofoo= {""}
put the cursor inside of ""
press space bar
wait a second
see error
Additional Notes
language server version: 3.6.3 (even though the log file says 3.5.3, I've got a stupid setup. I can guarantee I'm on 3.6.3)
The real world example is ---@alias LocalisedString string|number|boolean|LuaObject|nil|(string|LocalisedString)[] for Factorio. ---@alias Foo Foo[] is just the minimal reproduction case.
How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
Linux
What is the issue affecting?
Annotations, Completion
Expected Behaviour
When having an alias like
---@alias Foo (string|Foo)[]
it should understand that{ "hello", "world"}
or{"hello", {"wordl"}}
are both matching that type. That's actually about type checking, which is not the focus of this issue/bug report, see below.Actual Behaviour
The server errors due to a stack overflow when trying to provide completion inside of a table constructor that is assigned to a variable of type
Foo
. The error is:Reproduction steps
""
Additional Notes
language server version:
3.6.3
(even though the log file says 3.5.3, I've got a stupid setup. I can guarantee I'm on3.6.3
)The real world example is
---@alias LocalisedString string|number|boolean|LuaObject|nil|(string|LocalisedString)[]
for Factorio.---@alias Foo Foo[]
is just the minimal reproduction case.Log File
file_mnt_big_temp_ls_crash_minimal.log
The text was updated successfully, but these errors were encountered: