aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/shared.lua
diff options
context:
space:
mode:
authorTyler Miller <tmillr@proton.me>2024-07-03 15:36:00 -0700
committerGitHub <noreply@github.com>2024-07-04 06:36:00 +0800
commit7f33c1967b78ca8fda11fb0ad4c7f57d563e6ede (patch)
tree647eeb832c5fd0de361c20119e00857fdf34b3dd /runtime/lua/vim/shared.lua
parent12c9791e0fef7ee0d6cf6d3b828caa488d6347ea (diff)
downloadrneovim-7f33c1967b78ca8fda11fb0ad4c7f57d563e6ede.tar.gz
rneovim-7f33c1967b78ca8fda11fb0ad4c7f57d563e6ede.tar.bz2
rneovim-7f33c1967b78ca8fda11fb0ad4c7f57d563e6ede.zip
fix(lua): use rawget() to get __call in vim.is_callable() (#29536)
Lua 5.1 uses a "raw get" to retrieve `__call` from a metatable to determine if a table is callable. Mirror this behavior in `vim.is_callable()`.
Diffstat (limited to 'runtime/lua/vim/shared.lua')
-rw-r--r--runtime/lua/vim/shared.lua2
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua
index 621de2b1c2..99530bf72e 100644
--- a/runtime/lua/vim/shared.lua
+++ b/runtime/lua/vim/shared.lua
@@ -997,7 +997,7 @@ function vim.is_callable(f)
if m == nil then
return false
end
- return type(m.__call) == 'function'
+ return type(rawget(m, '__call')) == 'function'
end
--- Creates a table whose missing keys are provided by {createfn} (like Python's "defaultdict").