From: Bram Moolenaar Date: Thu, 7 May 2020 12:07:25 +0000 (+0200) Subject: patch 8.2.0706: Vim9: using assert_fails() causes function to finish X-Git-Tag: v8.2.0706 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a1c1013153a7f08e014facac883a1987985d6db;p=vim patch 8.2.0706: Vim9: using assert_fails() causes function to finish Problem: Vim9: using assert_fails() causes function to finish. Solution: Check did_emsg instead of called_emsg. --- diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim index 11703416d..5c4ecd290 100644 --- a/src/testdir/test_vim9_disassemble.vim +++ b/src/testdir/test_vim9_disassemble.vim @@ -17,6 +17,7 @@ def s:ScriptFuncLoad(arg: string) buffers echo arg echo local + echo &lines echo v:version echo s:scriptvar echo g:globalvar @@ -42,6 +43,7 @@ def Test_disassemble_load() ' EXEC \+buffers.*' .. ' LOAD arg\[-1\].*' .. ' LOAD $0.*' .. + ' LOADOPT &lines.*' .. ' LOADV v:version.*' .. ' LOADS s:scriptvar from .*test_vim9_disassemble.vim.*' .. ' LOADG g:globalvar.*' .. diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 40aae46a1..7768eb082 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -1311,13 +1311,6 @@ def Test_vim9_comment() 'catch /pat/# comment', 'endtry', ], 'E488:') - CheckScriptFailure([ - 'vim9script', - 'try', - ' throw "pat"', - 'catch /pat/# comment', - 'endtry', - ], 'E605:') CheckDefFailure([ 'try', 'echo "yes"', diff --git a/src/version.c b/src/version.c index 45f67c951..ea8b2a5c1 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 706, /**/ 705, /**/ diff --git a/src/vim9execute.c b/src/vim9execute.c index cc677b001..a505647df 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -458,7 +458,7 @@ call_bfunc(int func_idx, int argcount, ectx_T *ectx) { typval_T argvars[MAX_FUNC_ARGS]; int idx; - int called_emsg_before = called_emsg; + int did_emsg_before = did_emsg; if (call_prepare(argcount, argvars, ectx) == FAIL) return FAIL; @@ -470,7 +470,7 @@ call_bfunc(int func_idx, int argcount, ectx_T *ectx) for (idx = 0; idx < argcount; ++idx) clear_tv(&argvars[idx]); - if (called_emsg != called_emsg_before) + if (did_emsg != did_emsg_before) return FAIL; return OK; }