Mercurial > vim
diff src/testdir/test_vim9_script.vim @ 19459:423b27246383 v8.2.0287
patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Commit: https://github.com/vim/vim/commit/f575adff06d4bc5f670939567ce86974683deb7a
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Feb 20 20:41:06 2020 +0100
patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Problem: Vim9: return in try block not tested; catch with pattern not
tested.
Solution: Add tests. Make it work.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 20 Feb 2020 20:45:03 +0100 |
parents | 655631882288 |
children | f41e46f02c8c |
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -236,12 +236,40 @@ def CatchInDef() endtry enddef +def ReturnFinally(): string + try + return 'intry' + finally + g:in_finally = 'finally' + endtry + return 'end' +enddef + def Test_try_catch_nested() CatchInFunc() assert_equal('getout', g:thrown_func) CatchInDef() assert_equal('getout', g:thrown_def) + + assert_equal('intry', ReturnFinally()) + assert_equal('finally', g:in_finally) +enddef + +def Test_try_catch_match() + let seq = 'a' + try + throw 'something' + catch /nothing/ + seq ..= 'x' + catch /some/ + seq ..= 'b' + catch /asdf/ + seq ..= 'x' + finally + seq ..= 'c' + endtry + assert_equal('abc', seq) enddef let s:export_script_lines =<< trim END