To: vim_dev@googlegroups.com Subject: Patch 8.2.0760 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0760 Problem: Vim9: dict member errors not tested. Solution: Delete unreachable error. Add tests. Files: src/vim9execute.c, src/testdir/test_vim9_expr.vim *** ../vim-8.2.0759/src/vim9execute.c 2020-05-15 21:42:50.424779770 +0200 --- src/vim9execute.c 2020-05-15 21:37:48.009814327 +0200 *************** *** 2104,2123 **** // dict member: dict is at stack-2, key at stack-1 tv = STACK_TV_BOT(-2); ! if (tv->v_type != VAR_DICT) ! { ! emsg(_(e_dictreq)); ! goto failed; ! } dict = tv->vval.v_dict; tv = STACK_TV_BOT(-1); ! if (tv->v_type != VAR_STRING) ! { ! emsg(_(e_stringreq)); ! goto failed; ! } key = tv->vval.v_string; if ((di = dict_find(dict, key, -1)) == NULL) { semsg(_(e_dictkey), key); --- 2104,2116 ---- // dict member: dict is at stack-2, key at stack-1 tv = STACK_TV_BOT(-2); ! // no need to check for VAR_DICT, CHECKTYPE will check. dict = tv->vval.v_dict; tv = STACK_TV_BOT(-1); ! // no need to check for VAR_STRING, 2STRING will check. key = tv->vval.v_string; + if ((di = dict_find(dict, key, -1)) == NULL) { semsg(_(e_dictkey), key); *** ../vim-8.2.0759/src/testdir/test_vim9_expr.vim 2020-05-10 19:10:27.968996544 +0200 --- src/testdir/test_vim9_expr.vim 2020-05-15 21:35:49.990224702 +0200 *************** *** 799,806 **** --- 799,810 ---- def Test_expr_member() assert_equal(1, g:dict_one.one) + let d: dict = g:dict_one + assert_equal(1, d['one']) call CheckDefFailure(["let x = g:dict_one.#$!"], 'E1002:') + call CheckDefExecFailure(["let d: dict", "echo d['a']"], 'E716:') + call CheckDefExecFailure(["let d: dict", "d = g:list_empty"], 'E1029: Expected dict but got list') enddef def Test_expr7_option() *** ../vim-8.2.0759/src/version.c 2020-05-15 21:42:50.424779770 +0200 --- src/version.c 2020-05-15 21:43:44.700595963 +0200 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 760, /**/ -- hundred-and-one symptoms of being an internet addict: 97. Your mother tells you to remember something, and you look for a File/Save command. /// 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 ///