# HG changeset patch # User Bram Moolenaar # Date 1653591604 -7200 # Node ID 99a7eb1881c771c6ed77a3641e369013d9c1e2e4 # Parent 177af01c5c4d9f7980d827004c8dbda429cc9f68 patch 8.2.5025: Vim9: a few lines not covered by tests Commit: https://github.com/vim/vim/commit/5cb53b7afe6bde8f2bf6fc6b65b86071b67a8554 Author: Bram Moolenaar Date: Thu May 26 19:54:05 2022 +0100 patch 8.2.5025: Vim9: a few lines not covered by tests Problem: Vim9: a few lines not covered by tests. Solution: Add a few tests. diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -213,6 +213,8 @@ def Test_assignment() v9.CheckDefFailure(['var s:var = 123'], 'E1101:') v9.CheckDefFailure(['var s:var: number'], 'E1101:') + v9.CheckDefAndScriptFailure(['var $VAR: number'], ['E1016:', 'E475:']) + lines =<< trim END vim9script def SomeFunc() 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 @@ -312,6 +312,14 @@ def Test_vim9_import_export() writefile(import_no_as_lines, 'Ximport.vim') assert_fails('source Ximport.vim', 'E488:', '', 2, 'Ximport.vim') + # trailing starts with "as" + var import_bad_as_lines =<< trim END + vim9script + import './Xexport.vim' asname + END + writefile(import_no_as_lines, 'Ximport.vim') + assert_fails('source Ximport.vim', 'E488:', '', 2, 'Ximport.vim') + var import_invalid_string_lines =<< trim END vim9script import Xexport.vim @@ -396,6 +404,27 @@ def Test_vim9_import_export() delete('Xvim9_script') enddef +def Test_import_very_long_name() + var lines =<< trim END + vim9script + + export var verylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongname = 'asdf' + END + writefile(lines, 'Xverylong.vim') + + lines =<< trim END + vim9script + import './Xverylong.vim' + + g:result = Xverylong.verylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongname + END + v9.CheckScriptSuccess(lines) + assert_equal('asdf', g:result) + + delete('Xverylong.vim') + unlet g:result +enddef + def Test_import_funcref() var lines =<< trim END vim9script @@ -712,6 +741,16 @@ def Test_use_relative_autoload_import_in nunmap enddef +def Test_autoload_import_var() + # variable name starts with "autoload" + var lines =<< trim END + vim9script + var autoloaded = "Xtest.vim" + import autoloaded + END + v9.CheckScriptFailure(lines, 'E1053: Could not import "Xtest.vim') +enddef + def Test_use_autoload_import_in_mapping() var lines =<< trim END vim9script diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 5025, +/**/ 5024, /**/ 5023, diff --git a/src/vim9script.c b/src/vim9script.c --- a/src/vim9script.c +++ b/src/vim9script.c @@ -804,7 +804,7 @@ find_exported( } /* - * Declare a script-local variable without init: "let var: type". + * Declare a script-local variable without init: "var name: type". * "const" is an error since the value is missing. * Returns a pointer to after the type. */