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;
 			    }
 			}
 		    }