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 #8653)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 4c55eb6..d46299c 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1223,6 +1223,16 @@
   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 c120a2b..9510569 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 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 9b4a2c0..641b0dd 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -411,6 +411,7 @@
     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 @@
     }
     cmd_end = arg;
 
+    // Give error messages for the start of the line.
+    SOURCING_LNUM = start_lnum;
+
     /*
      * find script file
      */