patch 8.2.4025: error for import not ending in .vim does not work for .vimrc

Problem:    Error for import not ending in .vim does not work for .vimrc.
Solution:   Check that .vim is the end. (closes #9484)
diff --git a/src/errors.h b/src/errors.h
index 5aaaeac..9facb82 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -2881,11 +2881,13 @@
 	INIT(= N_("E1255: <Cmd> mapping must end with <CR>"));
 EXTERN char e_string_or_function_required_for_argument_nr[]
 	INIT(= N_("E1256: String or function required for argument %d"));
-EXTERN char e_imported_script_must_end_in_dot_vim_str[]
-	INIT(= N_("E1257: Imported script must end in .vim: %s"));
+EXTERN char e_imported_script_must_use_as_or_end_in_dot_vim_str[]
+	INIT(= N_("E1257: Imported script must use \"as\" or end in .vim: %s"));
 EXTERN char e_no_dot_after_imported_name_str[]
 	INIT(= N_("E1258: No '.' after imported name: %s"));
 EXTERN char e_missing_name_after_imported_name_str[]
 	INIT(= N_("E1259: Missing name after imported name: %s"));
 EXTERN char e_cannot_unlet_imported_item_str[]
 	INIT(= N_("E1260: Cannot unlet an imported item: %s"));
+EXTERN char e_cannot_import_dot_vim_without_using_as[]
+	INIT(= N_("E1261: Cannot import .vim without using \"as\""));
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 19eee76..f4d59fd 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1527,7 +1527,7 @@
   delete('Xlib.vim')
 enddef
 
-def Test_import_star_fails()
+def Test_import_fails()
   writefile([], 'Xfoo.vim')
   var lines =<< trim END
       import './Xfoo.vim' as foo
@@ -1572,7 +1572,34 @@
       That()
   END
   CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use That itself'])
-  delete('Xthat.vim')
+ 
+  mkdir('Xdir')
+
+  writefile(['vim9script'], 'Xdir/.vim')
+  lines =<< trim END
+      vim9script
+      import './Xdir/.vim'
+  END
+  CheckScriptFailure(lines, 'E1261: Cannot import .vim without using "as"')
+  lines =<< trim END
+      vim9script
+      import './Xdir/.vim' as vim
+  END
+  CheckScriptSuccess(lines)
+
+  writefile(['vim9script'], 'Xdir/.vimrc')
+  lines =<< trim END
+      vim9script
+      import './Xdir/.vimrc'
+  END
+  CheckScriptFailure(lines, 'E1257: Imported script must use "as" or end in .vim')
+  lines =<< trim END
+      vim9script
+      import './Xdir/.vimrc' as vimrc
+  END
+  CheckScriptSuccess(lines)
+
+  delete('Xdir', 'rf')
 enddef
 
 func g:Trigger()
diff --git a/src/version.c b/src/version.c
index d8fe352..b0bfc29 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4025,
+/**/
     4024,
 /**/
     4023,
diff --git a/src/vim9script.c b/src/vim9script.c
index 81f3967..4d16a2a 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -474,10 +474,14 @@
 	    semsg(_(e_trailing_characters_str), expr_end);
 	    goto erret;
 	}
-
-	if (end == NULL)
+	if (end == NULL || end[4] != NUL)
 	{
-	    semsg(_(e_imported_script_must_end_in_dot_vim_str), p);
+	    semsg(_(e_imported_script_must_use_as_or_end_in_dot_vim_str), p);
+	    goto erret;
+	}
+	if (end == p)
+	{
+	    semsg(_(e_cannot_import_dot_vim_without_using_as), p);
 	    goto erret;
 	}
 	as_name = vim_strnsave(p, end - p);