Mercurial > vim
diff src/vim9execute.c @ 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 | 798fce18d049 |
line wrap: on
line diff
--- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -1065,6 +1065,7 @@ call_def_function( trycmd->tcd_frame = ectx.ec_frame; trycmd->tcd_catch_idx = iptr->isn_arg.try.try_catch; trycmd->tcd_finally_idx = iptr->isn_arg.try.try_finally; + trycmd->tcd_caught = FALSE; } break; @@ -1109,7 +1110,7 @@ call_def_function( --trylevel; trycmd = ((trycmd_T *)trystack->ga_data) + trystack->ga_len; - if (trycmd->tcd_caught) + if (trycmd->tcd_caught && current_exception != NULL) { // discard the exception if (caught_stack == current_exception)