forked from aniani/vim
patch 8.2.3333: Vim9: not enough tests run with Vim9
Problem: Vim9: not enough tests run with Vim9. Solution: Run a few more tests in Vim9 script and :def function.
This commit is contained in:
@@ -457,6 +457,19 @@ func Test_dict_func_remove_in_use()
|
|||||||
endfunc
|
endfunc
|
||||||
let expected = 'a:' . string(get(d, 'func'))
|
let expected = 'a:' . string(get(d, 'func'))
|
||||||
call assert_equal(expected, d.func(string(remove(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
|
endfunc
|
||||||
|
|
||||||
func Test_dict_literal_keys()
|
func Test_dict_literal_keys()
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ def CheckDefAndScriptFailure(lines: list<string>, error: string, lnum = -3)
|
|||||||
CheckScriptFailure(['vim9script'] + lines, error, lnum + 1)
|
CheckScriptFailure(['vim9script'] + lines, error, lnum + 1)
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
" As CheckDefAndScriptFailure() but with two different exepected errors.
|
" As CheckDefAndScriptFailure() but with two different expected errors.
|
||||||
def CheckDefAndScriptFailure2(
|
def CheckDefAndScriptFailure2(
|
||||||
lines: list<string>,
|
lines: list<string>,
|
||||||
errorDef: string,
|
errorDef: string,
|
||||||
@@ -166,24 +166,44 @@ func CheckLegacyFailure(lines, error)
|
|||||||
endtry
|
endtry
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Execute "lines" in a legacy function, :def function and Vim9 script.
|
" Execute "lines" in a legacy function, translated as in
|
||||||
" Use 'VAR' for a declaration.
|
" CheckLegacyAndVim9Success()
|
||||||
" Use 'LET' for an assignment
|
def CheckTransLegacySuccess(lines: list<string>)
|
||||||
" Use ' #"' for a comment
|
|
||||||
def CheckLegacyAndVim9Success(lines: list<string>)
|
|
||||||
var legacylines = lines->mapnew((_, v) =>
|
var legacylines = lines->mapnew((_, v) =>
|
||||||
v->substitute('\<VAR\>', 'let', 'g')
|
v->substitute('\<VAR\>', 'let', 'g')
|
||||||
->substitute('\<LET\>', 'let', 'g')
|
->substitute('\<LET\>', 'let', 'g')
|
||||||
->substitute('#"', ' "', 'g'))
|
->substitute('#"', ' "', 'g'))
|
||||||
CheckLegacySuccess(legacylines)
|
CheckLegacySuccess(legacylines)
|
||||||
|
enddef
|
||||||
|
|
||||||
|
" Execute "lines" in a :def function, translated as in
|
||||||
|
" CheckLegacyAndVim9Success()
|
||||||
|
def CheckTransDefSuccess(lines: list<string>)
|
||||||
var vim9lines = lines->mapnew((_, v) =>
|
var vim9lines = lines->mapnew((_, v) =>
|
||||||
v->substitute('\<VAR\>', 'var', 'g')
|
v->substitute('\<VAR\>', 'var', 'g')
|
||||||
->substitute('\<LET ', '', 'g'))
|
->substitute('\<LET ', '', 'g'))
|
||||||
CheckDefSuccess(vim9lines)
|
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)
|
CheckScriptSuccess(['vim9script'] + vim9lines)
|
||||||
enddef
|
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 CheckLegacyAndVim9Success(lines: list<string>)
|
||||||
|
CheckTransLegacySuccess(lines)
|
||||||
|
CheckTransDefSuccess(lines)
|
||||||
|
CheckTransVim9Success(lines)
|
||||||
|
enddef
|
||||||
|
|
||||||
" Execute "lines" in a legacy function, :def function and Vim9 script.
|
" Execute "lines" in a legacy function, :def function and Vim9 script.
|
||||||
" Use 'VAR' for a declaration.
|
" Use 'VAR' for a declaration.
|
||||||
" Use 'LET' for an assignment
|
" Use 'LET' for an assignment
|
||||||
|
|||||||
@@ -755,6 +755,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
3333,
|
||||||
/**/
|
/**/
|
||||||
3332,
|
3332,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user