patch 8.2.3856: Vim9: not enough tests
Problem: Vim9: not enough tests.
Solution: Run more expression tests also with Vim9. Fix an uncovered
problem.
diff --git a/src/testdir/vim9.vim b/src/testdir/vim9.vim
index cb6e385..a6e1e67 100644
--- a/src/testdir/vim9.vim
+++ b/src/testdir/vim9.vim
@@ -185,32 +185,33 @@
->substitute('\<LSTART\>', '{', 'g')
->substitute('\<LMIDDLE\>', '->', 'g')
->substitute('\<LEND\>', '}', 'g')
+ ->substitute('\<TRUE\>', '1', 'g')
+ ->substitute('\<FALSE\>', '0', 'g')
->substitute('#"', ' "', 'g'))
CheckLegacySuccess(legacylines)
enddef
+def Vim9Trans(lines: list<string>): list<string>
+ return lines->mapnew((_, v) =>
+ v->substitute('\<VAR\>', 'var', 'g')
+ ->substitute('\<LET ', '', 'g')
+ ->substitute('\<LSTART\>', '(', 'g')
+ ->substitute('\<LMIDDLE\>', ') =>', 'g')
+ ->substitute(' *\<LEND\> *', '', 'g')
+ ->substitute('\<TRUE\>', 'true', 'g')
+ ->substitute('\<FALSE\>', 'false', 'g'))
+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')
- ->substitute('\<LSTART\>', '(', 'g')
- ->substitute('\<LMIDDLE\>', ') =>', 'g')
- ->substitute(' *\<LEND\> *', '', 'g'))
- CheckDefSuccess(vim9lines)
+ CheckDefSuccess(Vim9Trans(lines))
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')
- ->substitute('\<LSTART\>', '(', 'g')
- ->substitute('\<LMIDDLE\>', ') =>', 'g')
- ->substitute(' *\<LEND\> *', '', 'g'))
- CheckScriptSuccess(['vim9script'] + vim9lines)
+ CheckScriptSuccess(['vim9script'] + Vim9Trans(lines))
enddef
" Execute "lines" in a legacy function, :def function and Vim9 script.
@@ -218,6 +219,8 @@
" Use 'LET' for an assignment
" Use ' #"' for a comment
" Use LSTART arg LMIDDLE expr LEND for lambda
+" Use 'TRUE' for 1 in legacy, true in Vim9
+" Use 'FALSE' for 0 in legacy, false in Vim9
def CheckLegacyAndVim9Success(lines: list<string>)
CheckTransLegacySuccess(lines)
CheckTransDefSuccess(lines)