patch 8.2.2252: Vim9: crash when using lambda without return type in dict
Problem: Vim9: crash when using lambda without return type in dict.
Solution: Without a return type use t_unknown. (closes #7587)
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 6ef2b5e..5602ff5 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -4837,7 +4837,8 @@
if (cctx->ctx_skip != SKIP_YES)
{
stack_type = ((type_T **)stack->ga_data)[stack->ga_len - 1];
- if (check_return_type && cctx->ctx_ufunc->uf_ret_type == NULL)
+ if (check_return_type && (cctx->ctx_ufunc->uf_ret_type == NULL
+ || cctx->ctx_ufunc->uf_ret_type == &t_unknown))
{
cctx->ctx_ufunc->uf_ret_type = stack_type;
}