changeset 27207:7b8e2bea0ec5 v8.2.4132

patch 8.2.4132: Vim9: wrong error message when autoload script can't be found Commit: https://github.com/vim/vim/commit/1836d6157828baddd94e1f2c82488031570e444d Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 18 13:14:47 2022 +0000 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found Problem: Vim9: wrong error message when autoload script can't be found. Solution: Correct check for using autoload with wrong name.
author Bram Moolenaar <Bram@vim.org>
date Tue, 18 Jan 2022 14:15:06 +0100
parents db4583616f61
children a478f3e9c2e0
files src/testdir/test_vim9_import.vim src/version.c src/vim9script.c
diffstat 3 files changed, 17 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -1433,9 +1433,21 @@ def Test_import_autoload_fails()
 
   lines =<< trim END
       vim9script
+      import autoload './doesNotExist.vim'
+  END
+  CheckScriptFailure(lines, 'E1264:')
+
+  lines =<< trim END
+      vim9script
+      import autoload '/dir/doesNotExist.vim'
+  END
+  CheckScriptFailure(lines, 'E1264:')
+
+  lines =<< trim END
+      vim9script
       import autoload 'doesNotExist.vim'
   END
-  CheckScriptFailure(lines, 'E1264:')
+  CheckScriptFailure(lines, 'E1053: Could not import "doesNotExist.vim"')
 enddef
 
 " test disassembling an auto-loaded function starting with "debug"
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4132,
+/**/
     4131,
 /**/
     4130,
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -411,7 +411,7 @@ handle_import(
     int		ret = FAIL;
     char_u	*as_name = NULL;
     typval_T	tv;
-    int		sid = -1;
+    int		sid = -2;
     int		res;
     long	start_lnum = SOURCING_LNUM;
     garray_T	*import_gap;
@@ -519,7 +519,7 @@ handle_import(
 
     if (res == FAIL || sid <= 0)
     {
-	semsg(_(is_autoload && sid <= 0
+	semsg(_(is_autoload && sid == -2
 		    ? e_autoload_import_cannot_use_absolute_or_relative_path
 		    : e_could_not_import_str), tv.vval.v_string);
 	goto erret;