0
0
mirror of https://github.com/vim/vim.git synced 2025-10-03 05:14:07 -04:00

patch 8.2.3858: Vim9: not enough tests

Problem:    Vim9: not enough tests.
Solution:   Add tests for :try/:catch and :redir. Add missing type check.
This commit is contained in:
Bram Moolenaar
2021-12-20 10:55:35 +00:00
parent 2f9f4ccfc8
commit 003312b1d2
4 changed files with 63 additions and 7 deletions

View File

@@ -611,15 +611,49 @@ def Test_try_catch_throw()
# no requirement for spaces before |
try|echo 0|catch|endtry
# return in try with finally
def ReturnInTry(): number
var ret = 4
try
return ret
catch /this/
return -1
catch /that/
return -1
finally
# changing ret has no effect
ret = 7
endtry
return -2
enddef
assert_equal(4, ReturnInTry())
# return in catch with finally
def ReturnInCatch(): number
var ret = 5
try
throw 'getout'
return -1
catch /getout/
# ret is evaluated here
return ret
finally
# changing ret later has no effect
ret = -3
endtry
return -2
enddef
assert_equal(5, ReturnInCatch())
# return in finally after empty catch
def ReturnInFinally(): number
try
finally
return 4
return 6
endtry
return 2
return -1
enddef
assert_equal(4, ReturnInFinally())
assert_equal(6, ReturnInFinally())
var lines =<< trim END
vim9script