summaryrefslogtreecommitdiff
path: root/meta/template/debug.lua
diff options
context:
space:
mode:
Diffstat (limited to 'meta/template/debug.lua')
-rw-r--r--meta/template/debug.lua132
1 files changed, 127 insertions, 5 deletions
diff --git a/meta/template/debug.lua b/meta/template/debug.lua
index 8db01634..b957d948 100644
--- a/meta/template/debug.lua
+++ b/meta/template/debug.lua
@@ -1,6 +1,24 @@
---@class debug
debug = {}
+---@class debuginfo
+---@field name string
+---@field namewhat string
+---@field source string
+---@field short_src string
+---@field linedefined integer
+---@field lastlinedefined integer
+---@field what string
+---@field currentline integer
+---@field istailcall boolean
+---@field nups integer
+---@field nparams integer
+---@field isvararg boolean
+---@field func function
+---@field ftransfer integer
+---@field ntransfer integer
+---@field activelines table
+
function debug.debug() end
---@param o any
@@ -13,9 +31,113 @@ function debug.getfenv(o) end
---@return integer count
function debug.gethook(co) end
----@alias infowhat '"nSltufL"'
----@alias finfo
----| '""'
+---@alias infowhat string
+---| '"n"' # `name` 和 `namewhat`
+---| '"S"' # `source`,`short_src`,`linedefined`,`lastlinedefined`,和 `what`
+---| '"l"' # `currentline`
+---| '"t"' # `istailcall`
+---| '"u"' # `nups`,`nparams` 和 `isvararg`
+---| '"f"' # `func`
+---| '"r"' # `ftransfer` 和 `ntransfer`
+---| '"L"' # `activelines`
+
+---@overload fun(f: integer|function, what: infowhat?):debuginfo
+---@param thread thread
+---@param f integer|function
+---@param what infowhat?
+---@return debuginfo
+function debug.getinfo(thread, f, what) end
+
+---@overload fun(f: integer|function, index: integer):string, any
+---@param thread thread
+---@param f integer|function
+---@param index integer
+---@return string name
+---@return any value
+function debug.getlocal(thread, f, index) end
+
+---@param object any
+---@return table metatable
+function debug.getmetatable(object) end
+
+---@return table
+function debug.getregistry() end
+
+---@param f integer|function
+---@param up integer
+---@return string name
+---@return any value
+function debug.getupvalue(f, up) end
+
+---@param u userdata
+---@param n integer
+---@return any
+---@return boolean
+function debug.getuservalue(u, n) end
+
+---@deprecated
+---@param limit integer
+---@return integer|boolean
+function debug.setcstacklimit(limit) end
+
+---@generic ANY
+---@param object ANY
+---@param env table
+---@return ANY object
+function debug.setfenv(object, env) end
+
+---@alias hookmask
+---| '"c"'
+---| '"r"'
+---| '"l"'
+
+---@overload fun(hook: function, mask: hookmask, count: integer?)
+---@param thread thread
+---@param hook function
+---@param mask hookmask
+---@param count integer?
+function debug.sethook(thread, hook, mask, count) end
+
+---@overload fun(level: integer, index: integer, value: any):string
+---@param thread thread
+---@param level integer
+---@param index integer
+---@param value any
+---@return string name
+function debug.setlocal(thread, level, index, value) end
+
+---@generic ANY
+---@param value ANY
+---@param meta table
+---@return ANY value
+function debug.setmetatable(value, meta) end
+
+---@param f function
+---@param up integer
+---@param value any
+---@return string name
+function debug.setupvalue(f, up, value) end
+
+---@generic USERDATA
+---@param udata USERDATA
+---@param value any
+---@param n integer
+---@return USERDATA udata
+function debug.setuservalue(udata, value, n) end
+
+---@param thread thread
+---@param message any?
+---@param level integer?
+---@return string message
+function debug.traceback(thread, message, level) end
+
+---@param f function
+---@param n integer
+---@return lightuserdata id
+function debug.upvalueid(f, n) end
----@overload fun(f: integer|function, what: infowhat?):finfo
-function debug.getinfo1(thread, f, what) end
+---@param f1 function
+---@param n1 integer
+---@param f2 function
+---@param n2 integer
+function debug.upvaluejoin(f1, n1, f2, n2) end