changeset 25423:3e56078569ca v8.2.3248

patch 8.2.3248: Vim9: error message for wrong input uses wrong line number Commit: https://github.com/vim/vim/commit/921ba529266c8dfc0809d41e1f084e26d25fffb1 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jul 29 22:25:05 2021 +0200 patch 8.2.3248: Vim9: error message for wrong input uses wrong line number Problem: Vim9: error message for wrong input uses wrong line number. Solution: Use the line number of the start of the command. (issue https://github.com/vim/vim/issues/8653)
author Bram Moolenaar <Bram@vim.org>
date Thu, 29 Jul 2021 22:30:05 +0200
parents 7fde4d54b8b7
children 3cf272d6ee04
files src/testdir/test_vim9_script.vim src/version.c src/vim9script.c
diffstat 3 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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'
--- 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,
--- 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
      */