patch 8.2.3352: Vim9: error for nested :enddef has wrong line number
Problem: Vim9: error for nested :enddef has wrong line number.
Solution: Compute the line number.
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index c42188e..0ffe686 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -630,6 +630,17 @@
assert_equal(2, Test())
END
CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ vim9script
+ def Outer()
+ def Inner()
+ echo 'hello'
+ enddef burp
+ enddef
+ defcompile
+ END
+ CheckScriptFailure(lines, 'E1173: Text found after enddef: burp', 3)
enddef
def Test_not_nested_function()
diff --git a/src/userfunc.c b/src/userfunc.c
index 7a7617f..86a2bec 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -822,6 +822,8 @@
else if (*p != NUL && *p != (vim9_function ? '#' : '"')
&& (vim9_function || p_verbose > 0))
{
+ SOURCING_LNUM = sourcing_lnum_top
+ + newlines->ga_len + 1;
if (eap->cmdidx == CMD_def)
semsg(_(e_text_found_after_enddef_str), p);
else
diff --git a/src/version.c b/src/version.c
index 22022c8..95e5331 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3352,
+/**/
3351,
/**/
3350,