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()`.
This commit is contained in:
Tyler Miller
2024-07-03 15:36:00 -07:00
committed by GitHub
parent 12c9791e0f
commit 7f33c1967b
2 changed files with 55 additions and 1 deletions

View File

@ -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").