To: vim_dev@googlegroups.com Subject: Patch 8.2.4301 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4301 Problem: Vim9: type error for copy of dict. Solution: Do not use dict but no type. (closes #9696) Files: src/dict.c, src/testdir/test_vim9_builtin.vim *** ../vim-8.2.4300/src/dict.c 2022-02-02 20:01:21.957210955 +0000 --- src/dict.c 2022-02-05 14:04:47.820228794 +0000 *************** *** 306,312 **** orig->dv_copyID = copyID; orig->dv_copydict = copy; } ! copy->dv_type = alloc_type(top || deep ? &t_dict_any : orig->dv_type); todo = (int)orig->dv_hashtab.ht_used; for (hi = orig->dv_hashtab.ht_array; todo > 0 && !got_int; ++hi) --- 306,315 ---- orig->dv_copyID = copyID; orig->dv_copydict = copy; } ! if (orig->dv_type == NULL || top || deep) ! copy->dv_type = NULL; ! else ! copy->dv_type = alloc_type(orig->dv_type); todo = (int)orig->dv_hashtab.ht_used; for (hi = orig->dv_hashtab.ht_array; todo > 0 && !got_int; ++hi) *** ../vim-8.2.4300/src/testdir/test_vim9_builtin.vim 2022-02-02 20:01:21.961210953 +0000 --- src/testdir/test_vim9_builtin.vim 2022-02-05 14:03:35.720324348 +0000 *************** *** 745,750 **** --- 745,753 ---- var ndd: dict> = {a: {x: 1, y: 2}} assert_equal({x: 1, y: 2, z: 'x'}, ndd->deepcopy()['a']->extend({z: 'x'})) + + var ldn: list> = [{a: 0}]->deepcopy() + assert_equal([{a: 0}], ldn) enddef def Test_count() *** ../vim-8.2.4300/src/version.c 2022-02-05 12:39:20.854792149 +0000 --- src/version.c 2022-02-05 14:05:34.724166767 +0000 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 4301, /**/ -- hundred-and-one symptoms of being an internet addict: 1. You actually wore a blue ribbon to protest the Communications Decency Act. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///