# HG changeset patch # User Bram Moolenaar # Date 1642511706 -3600 # Node ID 7b8e2bea0ec519c60f380ae23ab2a0c4457bd3f2 # Parent db4583616f611b703bcbeccbb7d17786a6570798 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 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. diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim --- 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" diff --git a/src/version.c b/src/version.c --- 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, diff --git a/src/vim9script.c b/src/vim9script.c --- 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;