diff options
-rw-r--r-- | src/testdir/test_listdict.vim | 13 | ||||
-rw-r--r-- | src/testdir/vim9.vim | 32 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 41 insertions, 6 deletions
diff --git a/src/testdir/test_listdict.vim b/src/testdir/test_listdict.vim index 1e7c8125c2..f9048724cc 100644 --- a/src/testdir/test_listdict.vim +++ b/src/testdir/test_listdict.vim @@ -457,6 +457,19 @@ func Test_dict_func_remove_in_use() endfunc let expected = 'a:' . string(get(d, 'func')) call assert_equal(expected, d.func(string(remove(d, 'func')))) + + " similar, in a way it also works in Vim9 + let lines =<< trim END + VAR d = {1: 1, 2: 'x'} + func GetArg(a) + return "a:" .. a:a + endfunc + LET d.func = function('GetArg') + VAR expected = 'a:' .. string(get(d, 'func')) + call assert_equal(expected, d.func(string(remove(d, 'func')))) + END + call CheckTransLegacySuccess(lines) + call CheckTransVim9Success(lines) endfunc func Test_dict_literal_keys() diff --git a/src/testdir/vim9.vim b/src/testdir/vim9.vim index cb66d42608..879d918be5 100644 --- a/src/testdir/vim9.vim +++ b/src/testdir/vim9.vim @@ -107,7 +107,7 @@ def CheckDefAndScriptFailure(lines: list<string>, error: string, lnum = -3) CheckScriptFailure(['vim9script'] + lines, error, lnum + 1) enddef -" As CheckDefAndScriptFailure() but with two different exepected errors. +" As CheckDefAndScriptFailure() but with two different expected errors. def CheckDefAndScriptFailure2( lines: list<string>, errorDef: string, @@ -166,21 +166,31 @@ func CheckLegacyFailure(lines, error) endtry endfunc -" Execute "lines" in a legacy function, :def function and Vim9 script. -" Use 'VAR' for a declaration. -" Use 'LET' for an assignment -" Use ' #"' for a comment -def CheckLegacyAndVim9Success(lines: list<string>) +" Execute "lines" in a legacy function, translated as in +" CheckLegacyAndVim9Success() +def CheckTransLegacySuccess(lines: list<string>) var legacylines = lines->mapnew((_, v) => v->substitute('\<VAR\>', 'let', 'g') ->substitute('\<LET\>', 'let', 'g') ->substitute('#"', ' "', 'g')) CheckLegacySuccess(legacylines) +enddef +" Execute "lines" in a :def function, translated as in +" CheckLegacyAndVim9Success() +def CheckTransDefSuccess(lines: list<string>) var vim9lines = lines->mapnew((_, v) => v->substitute('\<VAR\>', 'var', 'g') ->substitute('\<LET ', '', 'g')) CheckDefSuccess(vim9lines) +enddef + +" Execute "lines" in a Vim9 script, translated as in +" CheckLegacyAndVim9Success() +def CheckTransVim9Success(lines: list<string>) + var vim9lines = lines->mapnew((_, v) => + v->substitute('\<VAR\>', 'var', 'g') + ->substitute('\<LET ', '', 'g')) CheckScriptSuccess(['vim9script'] + vim9lines) enddef @@ -188,6 +198,16 @@ enddef " Use 'VAR' for a declaration. " Use 'LET' for an assignment " Use ' #"' for a comment +def CheckLegacyAndVim9Success(lines: list<string>) + CheckTransLegacySuccess(lines) + CheckTransDefSuccess(lines) + CheckTransVim9Success(lines) +enddef + +" Execute "lines" in a legacy function, :def function and Vim9 script. +" Use 'VAR' for a declaration. +" Use 'LET' for an assignment +" Use ' #"' for a comment def CheckLegacyAndVim9Failure(lines: list<string>, error: any) var legacyError: string var defError: string diff --git a/src/version.c b/src/version.c index 9579c27890..4e374026b4 100644 --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3333, +/**/ 3332, /**/ 3331, |