aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/coxpcall.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2025-01-24 13:01:25 +0000
committerLewis Russell <me@lewisr.dev>2025-01-27 16:37:50 +0000
commit6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41 (patch)
tree5695108458a60f19e56834e9889ea58fc9c8c32d /runtime/lua/coxpcall.lua
parent83479b95abae84b4b2b4a0331503298ddc5ff47b (diff)
downloadrneovim-6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41.tar.gz
rneovim-6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41.tar.bz2
rneovim-6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41.zip
fix: resolve all remaining LuaLS diagnostics
Diffstat (limited to 'runtime/lua/coxpcall.lua')
-rw-r--r--runtime/lua/coxpcall.lua15
1 files changed, 9 insertions, 6 deletions
diff --git a/runtime/lua/coxpcall.lua b/runtime/lua/coxpcall.lua
index 75e7a43567..43e321eac3 100644
--- a/runtime/lua/coxpcall.lua
+++ b/runtime/lua/coxpcall.lua
@@ -31,22 +31,23 @@ end
-- No need to do anything if pcall and xpcall are already safe.
if isCoroutineSafe(pcall) and isCoroutineSafe(xpcall) then
- copcall = pcall
- coxpcall = xpcall
+ _G.copcall = pcall
+ _G.coxpcall = xpcall
return { pcall = pcall, xpcall = xpcall, running = coroutine.running }
end
-------------------------------------------------------------------------------
-- Implements xpcall with coroutines
-------------------------------------------------------------------------------
-local performResume, handleReturnValue
+local performResume
local oldpcall, oldxpcall = pcall, xpcall
local pack = table.pack or function(...) return {n = select("#", ...), ...} end
local unpack = table.unpack or unpack
local running = coroutine.running
+--- @type table<thread,thread>
local coromap = setmetatable({}, { __mode = "k" })
-function handleReturnValue(err, co, status, ...)
+local function handleReturnValue(err, co, status, ...)
if not status then
return false, err(debug.traceback(co, (...)), ...)
end
@@ -61,11 +62,12 @@ function performResume(err, co, ...)
return handleReturnValue(err, co, coroutine.resume(co, ...))
end
+--- @diagnostic disable-next-line: unused-vararg
local function id(trace, ...)
return trace
end
-function coxpcall(f, err, ...)
+function _G.coxpcall(f, err, ...)
local current = running()
if not current then
if err == id then
@@ -88,6 +90,7 @@ function coxpcall(f, err, ...)
end
end
+--- @param coro? thread
local function corunning(coro)
if coro ~= nil then
assert(type(coro)=="thread", "Bad argument; expected thread, got: "..type(coro))
@@ -105,7 +108,7 @@ end
-- Implements pcall with coroutines
-------------------------------------------------------------------------------
-function copcall(f, ...)
+function _G.copcall(f, ...)
return coxpcall(f, id, ...)
end