changeset 27694:4af6dc1cc1c8 v8.2.4373

patch 8.2.4373: expression test fails Commit: https://github.com/vim/vim/commit/c87aa34dfd68e95e4b1aac96d2274fcd672753ac Author: Bram Moolenaar <Bram@vim.org> Date: Sun Feb 13 20:46:18 2022 +0000 patch 8.2.4373: expression test fails Problem: Expression test fails. Solution: Make the test work with latest Vim9 syntax.
author Bram Moolenaar <Bram@vim.org>
date Sun, 13 Feb 2022 22:00:02 +0100
parents be396312af8f
children 52fcfbb9dab0
files src/testdir/test_expr.vim src/version.c
diffstat 2 files changed, 29 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -595,8 +595,8 @@ endfunc
 
 func Test_function_with_funcref()
   let lines =<< trim END
-      VAR s:F = function('type')
-      VAR s:Fref = function(s:F)
+      let s:F = function('type')
+      let s:Fref = function(s:F)
       call assert_equal(v:t_string, s:Fref('x'))
       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("function('')", 'E129:')
 
-      legacy let s:Len = {s -> strlen(s)}
+      let s:Len = {s -> strlen(s)}
       call assert_equal(6, s:Len('foobar'))
-      VAR name = string(s:Len)
-      #" can evaluate "function('<lambda>99')"
-      call execute('VAR Ref = ' .. name)
+      let name = string(s:Len)
+      " can evaluate "function('<lambda>99')"
+      call execute('let Ref = ' .. name)
       call assert_equal(4, Ref('text'))
   END
-  call v9.CheckTransLegacySuccess(lines)
-  " skip CheckTransDefSuccess(), cannot assign to script variable
-  call map(lines, {k, v -> v =~ 'legacy' ? v : substitute(v, 's:', '', 'g')})
-  call v9.CheckTransVim9Success(lines)
+  call v9.CheckScriptSuccess(lines)
+
+  let lines =<< trim END
+      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
 
 func Test_funcref()
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4373,
+/**/
     4372,
 /**/
     4371,