Problem: Error message for missing endfunc/enddef is last line.
Solution: Report the line where the function starts. (closes #7582)
CheckScriptFailure(lines, 'E1152:', 4)
enddef
+def Test_missing_endfunc_enddef()
+ var lines =<< trim END
+ vim9script
+ def Test()
+ echo 'test'
+ endef
+ END
+ CheckScriptFailure(lines, 'E1057:', 2)
+
+ lines =<< trim END
+ vim9script
+ func Some()
+ echo 'test'
+ enfffunc
+ END
+ CheckScriptFailure(lines, 'E126:', 2)
+enddef
+
def ReturnString(): string
return 'string'
enddef
lines_left = Rows - 1;
if (theline == NULL)
{
+ // Use the start of the function for the line number.
+ SOURCING_LNUM = sourcing_lnum_top;
if (skip_until != NULL)
semsg(_(e_missing_heredoc_end_marker_str), skip_until);
else if (eap->cmdidx == CMD_def)
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2265,
/**/
2264,
/**/