mirror of
https://github.com/neovim/neovim.git
synced 2026-04-19 22:10:45 +00:00
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
This commit is contained in:
@@ -1500,6 +1500,8 @@ describe('API', function()
|
||||
eq('Dictionary is locked', pcall_err(request, 'nvim_set_vvar', 'nosuchvar', 42))
|
||||
api.nvim_set_vvar('errmsg', 'set by API')
|
||||
eq('set by API', api.nvim_get_vvar('errmsg'))
|
||||
api.nvim_set_vvar('completed_item', { word = 'a', user_data = vim.empty_dict() })
|
||||
eq({}, api.nvim_get_vvar('completed_item')['user_data'])
|
||||
api.nvim_set_vvar('errmsg', 42)
|
||||
eq('42', eval('v:errmsg'))
|
||||
api.nvim_set_vvar('oldfiles', { 'one', 'two' })
|
||||
|
||||
Reference in New Issue
Block a user