diff options
author | Amit Singh <amitds1997@gmail.com> | 2024-07-11 15:56:52 +0530 |
---|---|---|
committer | Amit Singh <amitds1997@gmail.com> | 2024-07-13 16:42:28 +0530 |
commit | 970a27927eb31bdc735f0d7d5e3d07784486c6de (patch) | |
tree | 6a106fbbaef11a504ca60dfaea663b7e3bd5e11f /test/functional/lua/vim_spec.lua | |
parent | b1aa8f5eb8a5407e869335e9987b73f8515c37e5 (diff) | |
download | rneovim-970a27927eb31bdc735f0d7d5e3d07784486c6de.tar.gz rneovim-970a27927eb31bdc735f0d7d5e3d07784486c6de.tar.bz2 rneovim-970a27927eb31bdc735f0d7d5e3d07784486c6de.zip |
fix(lua)!: do not use typed table for empty dict
Problem:
Empty dictionaries are converted into typed tables of the form `{ [true]
= 6}` instead of an empty dictionary representation `{}`. This leads to
incorrect table representation, along with failure in JSON encoding of
such tables as currently tables with only string and number type keys
can be encoded.
Solution:
The typed table logic has been removed from `nlua_push_Dictionary`. The
typed table logic is required only for float value conversions which is
already handled in `nlua_push_Float`. So, it is(was) no longer required
here.
Fixes neovim/neovim#29218
Diffstat (limited to 'test/functional/lua/vim_spec.lua')
-rw-r--r-- | test/functional/lua/vim_spec.lua | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/test/functional/lua/vim_spec.lua b/test/functional/lua/vim_spec.lua index 03c743c9ae..b0720e6a94 100644 --- a/test/functional/lua/vim_spec.lua +++ b/test/functional/lua/vim_spec.lua @@ -1205,8 +1205,7 @@ describe('lua stdlib', function() ]]) eq(true, exec_lua([[return next(vim.fn.FooFunc(3)) == nil ]])) eq(3, eval('g:test')) - -- compat: nvim_call_function uses "special" value for empty dict - eq(true, exec_lua([[return next(vim.api.nvim_call_function("FooFunc", {5})) == true ]])) + eq(true, exec_lua([[return vim.tbl_isempty(vim.api.nvim_call_function("FooFunc", {5}))]])) eq(5, eval('g:test')) eq({ 2, 'foo', true }, exec_lua([[return vim.fn.VarArg(2, "foo", true)]])) |