To: vim_dev@googlegroups.com Subject: Patch 8.2.4296 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4296 Problem: Vim9: not all code covered by tests. Solution: Add a few more tests for corner cases. Fix hang when single quote is missing. Files: src/vim9expr.c, src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_cmd.vim, src/testdir/test_vim9_expr.vim *** ../vim-8.2.4295/src/vim9expr.c 2022-02-01 12:47:03.771540523 +0000 --- src/vim9expr.c 2022-02-04 21:13:24.205375863 +0000 *************** *** 2824,2831 **** // Ignore all kinds of errors when not producing code. if (cctx->ctx_skip == SKIP_YES) { skip_expr_cctx(arg, cctx); ! return OK; } // Evaluate the first expression. --- 2824,2833 ---- // Ignore all kinds of errors when not producing code. if (cctx->ctx_skip == SKIP_YES) { + int prev_did_emsg = did_emsg; + skip_expr_cctx(arg, cctx); ! return did_emsg == prev_did_emsg ? OK : FAIL; } // Evaluate the first expression. *** ../vim-8.2.4295/src/testdir/test_vim9_assign.vim 2022-02-03 12:34:00.665140482 +0000 --- src/testdir/test_vim9_assign.vim 2022-02-04 20:52:58.635302074 +0000 *************** *** 1993,1998 **** --- 1993,2004 ---- assert_false(exists('s:somevar')) unlet! s:somevar + if 0 + unlet g:does_not_exist + endif + + v9.CheckDefExecFailure(['unlet v:notfound.key'], 'E1001:') + v9.CheckDefExecFailure([ 'var dd = 111', 'unlet dd', *** ../vim-8.2.4295/src/testdir/test_vim9_cmd.vim 2022-02-03 21:29:35.816072143 +0000 --- src/testdir/test_vim9_cmd.vim 2022-02-04 20:59:22.862750944 +0000 *************** *** 1449,1455 **** ex = v:exception endtry assert_match('E1121:', ex) ! unlockvar d.a d.a = 7 assert_equal({a: 7, b: 5}, d) --- 1449,1455 ---- ex = v:exception endtry assert_match('E1121:', ex) ! unlockvar d['a'] d.a = 7 assert_equal({a: 7, b: 5}, d) *** ../vim-8.2.4295/src/testdir/test_vim9_expr.vim 2022-02-04 11:36:47.414816959 +0000 --- src/testdir/test_vim9_expr.vim 2022-02-04 21:14:03.349313404 +0000 *************** *** 1833,1838 **** --- 1833,1839 ---- v9.CheckDefAndScriptFailure(['var x = "abc'], 'E114:', 1) v9.CheckDefAndScriptFailure(["var x = 'abc"], 'E115:', 1) + v9.CheckDefFailure(["if 0", "echo 'xx", "endif"], 'E115', 2) enddef def Test_expr8_vimvar() *** ../vim-8.2.4295/src/version.c 2022-02-04 11:36:47.414816959 +0000 --- src/version.c 2022-02-04 20:41:34.512263086 +0000 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 4296, /**/ -- Never enter the boss's office unless it's absolutely necessary. Every boss saves one corner of the desk for useless assignments that are doled out like Halloween candy to each visitor. (Scott Adams - The Dilbert principle) /// 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 ///