Mercurial > vim
changeset 20289:208b38bddc36 v8.2.0700
patch 8.2.0700: Vim9: converting error message to exception not tested
Commit: https://github.com/vim/vim/commit/40ee466c361b9698c2a452a36ff4d6c6e5382ed0
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 5 22:08:26 2020 +0200
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 05 May 2020 22:15:04 +0200 |
parents | 40f2361f79e1 |
children | d13d1716c856 |
files | src/testdir/test_vim9_script.vim src/version.c src/vim9execute.c |
diffstat | 3 files changed, 21 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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()
--- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 700, +/**/ 699, /**/ 698,
--- 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; } } }