vim-patch:8.2.0920: writing viminfo fails with a circular reference

Problem:    Writing viminfo fails with a circular reference.
Solution:   Use copyID to detect the cycle. (closes vim/vim#6217)
5b157fe2ed
This commit is contained in:
erw7
2020-06-07 02:00:49 +09:00
parent 9fc3949841
commit f1cbd39f7b
3 changed files with 31 additions and 18 deletions

View File

@@ -1,7 +1,7 @@
-- ShaDa variables saving/reading support
local helpers = require('test.functional.helpers')(after_each)
local meths, funcs, nvim_command, eq, exc_exec =
helpers.meths, helpers.funcs, helpers.command, helpers.eq, helpers.exc_exec
local meths, funcs, nvim_command, eq =
helpers.meths, helpers.funcs, helpers.command, helpers.eq
local shada_helpers = require('test.functional.shada.helpers')
local reset, clear = shada_helpers.reset, shada_helpers.clear
@@ -145,16 +145,15 @@ describe('ShaDa support code', function()
eq('10', meths.get_var('U'))
end)
it('errors and writes when a self-referencing list is stored in a variable',
it('ignore when a self-referencing list is stored in a variable',
function()
meths.set_var('L', {})
nvim_command('call add(L, L)')
meths.set_var('U', '10')
nvim_command('set shada+=!')
eq('Vim(wshada):E5005: Unable to dump variable g:L: container references itself in index 0',
exc_exec('wshada'))
meths.set_option('shada', '')
reset('set shada+=!')
nvim_command('wshada')
reset()
nvim_command('rshada')
eq('10', meths.get_var('U'))
end)
end)