0
0
mirror of https://github.com/vim/vim.git synced 2025-10-23 08:44:20 -04:00

patch 9.1.1593: Confusing error when compiling incomplete try block

Problem:  Confusing error when compiling incomplete try block
          (lacygoill)
Solution: Give better error messages (Hirohito Higashi)

fixes: #17833
closes: #17853

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Hirohito Higashi
2025-08-05 20:03:36 +02:00
committed by Christian Brabandt
parent becf1844e0
commit 27b61f20b7
3 changed files with 53 additions and 9 deletions

View File

@@ -4800,15 +4800,32 @@ compile_dfunc_scope_end_missing(cctx_T *cctx)
if (cctx->ctx_scope == NULL)
return FALSE;
if (cctx->ctx_scope->se_type == IF_SCOPE)
emsg(_(e_missing_endif));
else if (cctx->ctx_scope->se_type == WHILE_SCOPE)
emsg(_(e_missing_endwhile));
else if (cctx->ctx_scope->se_type == FOR_SCOPE)
emsg(_(e_missing_endfor));
else
emsg(_(e_missing_rcurly));
switch (cctx->ctx_scope->se_type)
{
case IF_SCOPE:
emsg(_(e_missing_endif));
break;
case WHILE_SCOPE:
emsg(_(e_missing_endwhile));
break;
case FOR_SCOPE:
emsg(_(e_missing_endfor));
break;
case TRY_SCOPE:
emsg(_(e_missing_endtry));
break;
case BLOCK_SCOPE:
// end block scope from :try (maybe)
compile_endblock(cctx);
if (cctx->ctx_scope != NULL
&& cctx->ctx_scope->se_type == TRY_SCOPE)
emsg(_(e_missing_endtry));
else
emsg(_(e_missing_rcurly));
break;
default:
emsg(_(e_missing_rcurly));
}
return TRUE;
}