From: Bram Moolenaar Date: Tue, 5 May 2020 20:08:26 +0000 (+0200) Subject: patch 8.2.0700: Vim9: converting error message to exception not tested X-Git-Tag: v8.2.0700 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=40ee466c361b9698c2a452a36ff4d6c6e5382ed0;p=vim patch 8.2.0700: Vim9: converting error message to exception not tested Problem: Vim9: converting error message to exception not tested. Solution: Test exception from error. Do not continue after :echoerr. --- diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index bc1f87377..76ce2e549 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -466,6 +466,20 @@ def Test_try_catch_fails() call CheckDefFailure(['throw xxx'], 'E1001:') enddef +let someJob = test_null_job() + +def FuncWithError() + echomsg g:someJob +enddef + +func Test_convert_emsg_to_exception() + try + call FuncWithError() + catch + call assert_match('Vim:E908:', v:exception) + endtry +endfunc + let s:export_script_lines =<< trim END vim9script let name: string = 'bob' @@ -1058,7 +1072,11 @@ def Test_echomsg_cmd() enddef def Test_echoerr_cmd() - # TODO: write this test + try + echoerr 'something' 'wrong' # comment + catch + assert_match('something wrong', v:exception) + endtry enddef def Test_for_outside_of_function() diff --git a/src/version.c b/src/version.c index 61681882b..4c743cbfa 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 */ +/**/ + 700, /**/ 699, /**/ diff --git a/src/vim9execute.c b/src/vim9execute.c index 27ad04b44..5915ea1dc 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -898,14 +898,8 @@ call_def_function( } else { - int save_did_emsg = did_emsg; - SOURCING_LNUM = iptr->isn_lnum; emsg(ga.ga_data); - if (!force_abort) - // We don't want to abort following - // commands, restore did_emsg. - did_emsg = save_did_emsg; } } }