summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-07-29 22:25:05 +0200
committerBram Moolenaar <Bram@vim.org>2021-07-29 22:25:05 +0200
commit921ba529266c8dfc0809d41e1f084e26d25fffb1 (patch)
treecb94b6a454f4a22cef0ecf516996a000b61ed11d
parent77ab4e28a26a92628bc85cd580c1bfa2b6230be6 (diff)
downloadvim-git-921ba529266c8dfc0809d41e1f084e26d25fffb1.tar.gz
patch 8.2.3248: Vim9: error message for wrong input uses wrong line numberv8.2.3248
Problem: Vim9: error message for wrong input uses wrong line number. Solution: Use the line number of the start of the command. (issue #8653)
-rw-r--r--src/testdir/test_vim9_script.vim10
-rw-r--r--src/version.c2
-rw-r--r--src/vim9script.c4
3 files changed, 16 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 4c55eb6c2..d46299c70 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1223,6 +1223,16 @@ def Test_vim9_import_export()
writefile(import_star_as_lines_dot_space, 'Ximport.vim')
assert_fails('source Ximport.vim', 'E1074:', '', 1, 'Func')
+ var import_func_duplicated =<< trim END
+ vim9script
+ import ExportedInc from './Xexport.vim'
+ import ExportedInc from './Xexport.vim'
+
+ ExportedInc()
+ END
+ writefile(import_func_duplicated, 'Ximport.vim')
+ assert_fails('source Ximport.vim', 'E1073:', '', 3, 'Ximport.vim')
+
var import_star_as_duplicated =<< trim END
vim9script
import * as Export from './Xexport.vim'
diff --git a/src/version.c b/src/version.c
index c120a2bc7..951056998 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3248,
+/**/
3247,
/**/
3246,
diff --git a/src/vim9script.c b/src/vim9script.c
index 9b4a2c0fb..641b0dd88 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -411,6 +411,7 @@ handle_import(
int mult = FALSE;
garray_T names;
garray_T as_names;
+ long start_lnum = SOURCING_LNUM;
tv.v_type = VAR_UNKNOWN;
ga_init2(&names, sizeof(char_u *), 10);
@@ -511,6 +512,9 @@ handle_import(
}
cmd_end = arg;
+ // Give error messages for the start of the line.
+ SOURCING_LNUM = start_lnum;
+
/*
* find script file
*/