diff src/testdir/test_vim9_script.vim @ 21359:e3711ce8133b v8.2.1230

patch 8.2.1230: Vim9: list index error not caught by try/catch Commit: https://github.com/vim/vim/commit/68d130c618f363821761f231c4122a0b9b764b71 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jul 17 22:06:44 2020 +0200 patch 8.2.1230: Vim9: list index error not caught by try/catch Problem: Vim9: list index error not caught by try/catch. Solution: Do not bail out if an error is inside try/catch. (closes https://github.com/vim/vim/issues/6462)
author Bram Moolenaar <Bram@vim.org>
date Fri, 17 Jul 2020 22:15:04 +0200
parents fb8c8fcb7b60
children fca850f4d603
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -509,6 +509,43 @@ def Test_try_catch()
     add(l, '3')
   endtry # comment
   assert_equal(['1', 'wrong', '3'], l)
+
+  let n: number
+  try
+    n = l[3]
+  catch /E684:/
+    n = 99
+  endtry
+  assert_equal(99, n)
+
+  try
+    n = g:astring[3]
+  catch /E714:/
+    n = 77
+  endtry
+  assert_equal(77, n)
+
+  try
+    n = l[g:astring]
+  catch /E39:/
+    n = 77
+  endtry
+  assert_equal(77, n)
+
+  try
+    n = s:does_not_exist
+  catch /E121:/
+    n = 121
+  endtry
+  assert_equal(121, n)
+
+  let d = #{one: 1}
+  try
+    n = d[g:astring]
+  catch /E716:/
+    n = 222
+  endtry
+  assert_equal(222, n)
 enddef
 
 def ThrowFromDef()