To: vim_dev@googlegroups.com Subject: Patch 8.2.1686 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.1686 Problem: Vim9: "const!" not sufficiently tested. Solution: Add a few more test cases. Fix type checking. Files: src/vim9compile.c, src/testdir/test_vim9_script.vim *** ../vim-8.2.1685/src/vim9compile.c 2020-09-14 21:38:47.756976285 +0200 --- src/vim9compile.c 2020-09-14 22:15:42.484186102 +0200 *************** *** 5066,5077 **** { type_T *use_type = lvar->lv_type; ! // without operator type is here, otherwise below if (has_index) { use_type = use_type->tt_member; if (use_type == NULL) ! use_type = &t_void; } if (need_type(stacktype, use_type, -1, cctx, FALSE) == FAIL) --- 5066,5078 ---- { type_T *use_type = lvar->lv_type; ! // without operator check type here, otherwise below if (has_index) { use_type = use_type->tt_member; if (use_type == NULL) ! // could be indexing "any" ! use_type = &t_any; } if (need_type(stacktype, use_type, -1, cctx, FALSE) == FAIL) *** ../vim-8.2.1685/src/testdir/test_vim9_script.vim 2020-09-14 21:38:47.760976275 +0200 --- src/testdir/test_vim9_script.vim 2020-09-14 22:06:03.070942796 +0200 *************** *** 831,836 **** --- 831,854 ---- list->assert_equal([4, 2, 3]) const! other = [5, 6, 7] other->assert_equal([5, 6, 7]) + + let varlist = [7, 8] + const! constlist = [1, varlist, 3] + varlist[0] = 77 + # TODO: does not work yet + # constlist[1][1] = 88 + let cl = constlist[1] + cl[1] = 88 + constlist->assert_equal([1, [77, 88], 3]) + + let vardict = #{five: 5, six: 6} + const! constdict = #{one: 1, two: vardict, three: 3} + vardict['five'] = 55 + # TODO: does not work yet + # constdict['two']['six'] = 66 + let cd = constdict['two'] + cd['six'] = 66 + constdict->assert_equal(#{one: 1, two: #{five: 55, six: 66}, three: 3}) END CheckDefAndScriptSuccess(lines) enddef *** ../vim-8.2.1685/src/version.c 2020-09-14 21:38:47.760976275 +0200 --- src/version.c 2020-09-14 21:51:37.580786930 +0200 *************** *** 752,753 **** --- 752,755 ---- { /* Add new patch number below this line */ + /**/ + 1686, /**/ -- FROG: How you English say: I one more time, mac, I unclog my nose towards you, sons of a window-dresser, so, you think you could out-clever us French fellows with your silly knees-bent creeping about advancing behaviour. (blows a raspberry) I wave my private parts at your aunties, you brightly-coloured, mealy-templed, cranberry-smelling, electric donkey-bottom biters. "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// 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 ///