patch 8.2.3335: 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. Fix that
items(), keys() and values9) return zero for a NULL dict.
Make join() return an empty string for a NULL list. Make sort()
return an empty list for a NULL list.
diff --git a/src/testdir/vim9.vim b/src/testdir/vim9.vim
index 879d918..742a093 100644
--- a/src/testdir/vim9.vim
+++ b/src/testdir/vim9.vim
@@ -172,6 +172,9 @@
var legacylines = lines->mapnew((_, v) =>
v->substitute('\<VAR\>', 'let', 'g')
->substitute('\<LET\>', 'let', 'g')
+ ->substitute('\<LSTART\>', '{', 'g')
+ ->substitute('\<LMIDDLE\>', '->', 'g')
+ ->substitute('\<LEND\>', '}', 'g')
->substitute('#"', ' "', 'g'))
CheckLegacySuccess(legacylines)
enddef
@@ -181,7 +184,10 @@
def CheckTransDefSuccess(lines: list<string>)
var vim9lines = lines->mapnew((_, v) =>
v->substitute('\<VAR\>', 'var', 'g')
- ->substitute('\<LET ', '', 'g'))
+ ->substitute('\<LET ', '', 'g')
+ ->substitute('\<LSTART\>', '(', 'g')
+ ->substitute('\<LMIDDLE\>', ') =>', 'g')
+ ->substitute(' *\<LEND\> *', '', 'g'))
CheckDefSuccess(vim9lines)
enddef
@@ -190,7 +196,10 @@
def CheckTransVim9Success(lines: list<string>)
var vim9lines = lines->mapnew((_, v) =>
v->substitute('\<VAR\>', 'var', 'g')
- ->substitute('\<LET ', '', 'g'))
+ ->substitute('\<LET ', '', 'g')
+ ->substitute('\<LSTART\>', '(', 'g')
+ ->substitute('\<LMIDDLE\>', ') =>', 'g')
+ ->substitute(' *\<LEND\> *', '', 'g'))
CheckScriptSuccess(['vim9script'] + vim9lines)
enddef
@@ -198,6 +207,7 @@
" Use 'VAR' for a declaration.
" Use 'LET' for an assignment
" Use ' #"' for a comment
+" Use LSTART arg LMIDDLE expr LEND for lambda
def CheckLegacyAndVim9Success(lines: list<string>)
CheckTransLegacySuccess(lines)
CheckTransDefSuccess(lines)