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.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 6fad391..7be8cdb 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1065,6 +1065,7 @@
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 @@
--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)