mirror of
https://github.com/neovim/neovim.git
synced 2026-08-30 19:11:52 +00:00
fix(lua): give nicer error message when trying to index vim.NIL
The added test shows the context, one expected a JSON field to be a Object but it was a null value pros: shows `vim.NIL` instead of `a userdata` cons: the context `field 'foo'` is lost. I think this is generated with internal magic which is hard to replicate.
This commit is contained in:
@@ -178,6 +178,13 @@ describe('vim.json.decode()', function()
|
||||
pcall_err(exec_lua, [[return vim.json.decode('{"a":1/*x*/0}', { skip_comments = true })]])
|
||||
)
|
||||
end)
|
||||
|
||||
it('gives nice error message when attempting to index into null value', function()
|
||||
exec_lua [[ parsed = vim.json.decode('{"foo": null}') ]]
|
||||
|
||||
eq('attempt to index vim.NIL', pcall_err(exec_lua, [[ return parsed.foo.sub_field ]]))
|
||||
eq('attempt to index vim.NIL', pcall_err(exec_lua, [[ parsed.foo.new_field = 3 ]]))
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('vim.json.encode()', function()
|
||||
|
||||
Reference in New Issue
Block a user