0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.4373: expression test fails

Problem:    Expression test fails.
Solution:   Make the test work with latest Vim9 syntax.
This commit is contained in:
Bram Moolenaar
2022-02-13 20:46:18 +00:00
parent 299d8e5eec
commit c87aa34dfd
2 changed files with 29 additions and 10 deletions

View File

@@ -595,8 +595,8 @@ endfunc
func Test_function_with_funcref() func Test_function_with_funcref()
let lines =<< trim END let lines =<< trim END
VAR s:F = function('type') let s:F = function('type')
VAR s:Fref = function(s:F) let s:Fref = function(s:F)
call assert_equal(v:t_string, s:Fref('x')) call assert_equal(v:t_string, s:Fref('x'))
call assert_fails("call function('s:F')", 'E700:') call assert_fails("call function('s:F')", 'E700:')
@@ -604,17 +604,34 @@ func Test_function_with_funcref()
call assert_fails("call function('foo()')", 'foo()') call assert_fails("call function('foo()')", 'foo()')
call assert_fails("function('')", 'E129:') call assert_fails("function('')", 'E129:')
legacy let s:Len = {s -> strlen(s)} let s:Len = {s -> strlen(s)}
call assert_equal(6, s:Len('foobar')) call assert_equal(6, s:Len('foobar'))
VAR name = string(s:Len) let name = string(s:Len)
#" can evaluate "function('<lambda>99')" " can evaluate "function('<lambda>99')"
call execute('VAR Ref = ' .. name) call execute('let Ref = ' .. name)
call assert_equal(4, Ref('text')) call assert_equal(4, Ref('text'))
END END
call v9.CheckTransLegacySuccess(lines) call v9.CheckScriptSuccess(lines)
" skip CheckTransDefSuccess(), cannot assign to script variable
call map(lines, {k, v -> v =~ 'legacy' ? v : substitute(v, 's:', '', 'g')}) let lines =<< trim END
call v9.CheckTransVim9Success(lines) vim9script
var F = function('type')
var Fref = function(F)
call assert_equal(v:t_string, Fref('x'))
call assert_fails("call function('F')", 'E700:')
call assert_fails("call function('foo()')", 'E475:')
call assert_fails("call function('foo()')", 'foo()')
call assert_fails("function('')", 'E129:')
var Len = (s) => strlen(s)
call assert_equal(6, Len('foobar'))
var name = string(Len)
# can evaluate "function('<lambda>99')"
call execute('var Ref = ' .. name)
call assert_equal(4, Ref('text'))
END
call v9.CheckScriptSuccess(lines)
endfunc endfunc
func Test_funcref() func Test_funcref()

View File

@@ -750,6 +750,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 */
/**/
4373,
/**/ /**/
4372, 4372,
/**/ /**/