To: vim_dev@googlegroups.com Subject: Patch 8.2.1337 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.1337 Problem: Vim9: cannot use empty key in dict assignment. Solution: Allow empty key. (closes #6591) Files: src/vim9execute.c, src/testdir/test_vim9_script.vim *** ../vim-8.2.1336/src/vim9execute.c 2020-07-31 22:04:59.772336176 +0200 --- src/vim9execute.c 2020-08-01 14:01:30.663305047 +0200 *************** *** 1422,1432 **** dict_T *dict = tv_dict->vval.v_dict; dictitem_T *di; ! if (key == NULL || *key == NUL) ! { ! emsg(_(e_emptykey)); ! goto on_error; ! } tv = STACK_TV_BOT(-3); di = dict_find(dict, key, -1); if (di != NULL) --- 1422,1429 ---- dict_T *dict = tv_dict->vval.v_dict; dictitem_T *di; ! if (key == NULL) ! key = (char_u *)""; tv = STACK_TV_BOT(-3); di = dict_find(dict, key, -1); if (di != NULL) *** ../vim-8.2.1336/src/testdir/test_vim9_script.vim 2020-07-29 21:37:39.793716241 +0200 --- src/testdir/test_vim9_script.vim 2020-08-01 14:05:57.053872996 +0200 *************** *** 244,250 **** # overwrite dict3['key'] = 'another' ! call CheckDefExecFailure(['let dd = {}', 'dd[""] = 6'], 'E713:') # type becomes dict let somedict = rand() > 0 ? #{a: 1, b: 2} : #{a: 'a', b: 'b'} --- 244,253 ---- # overwrite dict3['key'] = 'another' ! # empty key can be used ! let dd = {} ! dd[""] = 6 ! assert_equal({'': 6}, dd) # type becomes dict let somedict = rand() > 0 ? #{a: 1, b: 2} : #{a: 'a', b: 'b'} *************** *** 784,796 **** assert_equal(300, n) try - d[''] = 3 - catch /E713:/ - n = 311 - endtry - assert_equal(311, n) - - try unlet g:does_not_exist catch /E108:/ n = 322 --- 787,792 ---- *** ../vim-8.2.1336/src/version.c 2020-08-01 13:22:07.304951577 +0200 --- src/version.c 2020-08-01 14:04:40.354275743 +0200 *************** *** 756,757 **** --- 756,759 ---- { /* Add new patch number below this line */ + /**/ + 1337, /**/ -- From "know your smileys": :-* A big kiss! /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///