summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2023-05-23 14:48:42 +0100
committerBram Moolenaar <Bram@vim.org>2023-05-23 14:48:42 +0100
commitd4a9b7f61475f3166cce92b0bad748e8c1eb51fe (patch)
treeda56f891ef709f7fb3293607bc1cf98b697f54a1
parent50809a45ebde327cb6fdcc727d7466e926aed713 (diff)
patch 9.0.1573: error for function name has wrong line numberv9.0.1573
Problem: Error for function name has wrong line number. Solution: Set the line number before giving the error.
-rw-r--r--src/testdir/test_vim9_func.vim8
-rw-r--r--src/version.c2
-rw-r--r--src/vim9execute.c1
3 files changed, 11 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index ecdbd5eaca..852f3a7ede 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -166,6 +166,14 @@ def Test_wrong_function_name()
delfunc g:Define
enddef
+def Test_listing_function_error()
+ var lines =<< trim END
+ var filler = 123
+ func DoesNotExist
+ END
+ v9.CheckDefExecFailure(lines, 'E123:', 2)
+enddef
+
def Test_break_in_skipped_block()
var lines =<< trim END
vim9script
diff --git a/src/version.c b/src/version.c
index 0d0099cc7a..c07afca3b7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1573,
+/**/
1572,
/**/
1571,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 8e27166a6f..921e2ca053 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -4448,6 +4448,7 @@ exec_instructions(ectx_T *ectx)
CLEAR_FIELD(ea);
ea.cmd = ea.arg = iptr->isn_arg.string;
ga_init2(&lines_to_free, sizeof(char_u *), 50);
+ SOURCING_LNUM = iptr->isn_lnum;
define_function(&ea, NULL, &lines_to_free, 0);
ga_clear_strings(&lines_to_free);
}