Mercurial > vim
diff src/testdir/test_vim9_script.vim @ 26658:ed73553992bf v8.2.3858
patch 8.2.3858: Vim9: not enough tests
Commit: https://github.com/vim/vim/commit/003312b1d2ee2f4922f473b8bf50af6663c0efac
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Dec 20 10:55:35 2021 +0000
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 20 Dec 2021 12:00:04 +0100 |
parents | a07323eb647f |
children | 2b17f87b7bd1 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -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