diff src/testdir/test_expr.vim @ 27457:4c16acb2525f v8.2.4257

patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent Commit: https://github.com/vim/vim/commit/62aec93bfdb9e1b40d03a6d2e8e9511f8b1bdb2d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 29 21:45:34 2022 +0000 patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent Problem: Vim9: finding global function without g: prefix but not finding global variable is inconsistent. Solution: Require using g: for a global function. Change the vim9.vim script into a Vim9 script with exports. Fix that import in legacy script does not work.
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Jan 2022 23:00:05 +0100
parents 31c23760d590
children fb4c30606b4a
line wrap: on
line diff
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -1,7 +1,7 @@
 " Tests for expressions.
 
 source check.vim
-source vim9.vim
+import './vim9.vim' as v9
 
 func Test_equal()
   let base = {}
@@ -51,12 +51,12 @@ func Test_op_trinary()
       call assert_fails('echo [1] ? "yes" : "no"', 'E745:')
       call assert_fails('echo {} ? "yes" : "no"', 'E728:')
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   call assert_equal('no', 'x' ? 'yes' : 'no')
-  call CheckDefAndScriptFailure(["'x' ? 'yes' : 'no'"], 'E1135:')
+  call v9.CheckDefAndScriptFailure(["'x' ? 'yes' : 'no'"], 'E1135:')
   call assert_equal('yes', '1x' ? 'yes' : 'no')
-  call CheckDefAndScriptFailure(["'1x' ? 'yes' : 'no'"], 'E1135:')
+  call v9.CheckDefAndScriptFailure(["'1x' ? 'yes' : 'no'"], 'E1135:')
 endfunc
 
 func Test_op_falsy()
@@ -81,7 +81,7 @@ func Test_op_falsy()
         call assert_equal(456, 0.0 ?? 456)
       endif
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_dict()
@@ -101,9 +101,9 @@ func Test_dict()
       LET d[ 'b' ] = 'bbb'
       call assert_equal('bbb', d[ 'b' ])
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
-  call CheckLegacyAndVim9Failure(["VAR i = has_key([], 'a')"], ['E715:', 'E1013:', 'E1206:'])
+  call v9.CheckLegacyAndVim9Failure(["VAR i = has_key([], 'a')"], ['E715:', 'E1013:', 'E1206:'])
 endfunc
 
 func Test_strgetchar()
@@ -116,10 +116,10 @@ func Test_strgetchar()
       call assert_equal(-1, strgetchar('axb', 3))
       call assert_equal(-1, strgetchar('', 0))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
-  call CheckLegacyAndVim9Failure(["VAR c = strgetchar([], 1)"], ['E730:', 'E1013:', 'E1174:'])
-  call CheckLegacyAndVim9Failure(["VAR c = strgetchar('axb', [])"], ['E745:', 'E1013:', 'E1210:'])
+  call v9.CheckLegacyAndVim9Failure(["VAR c = strgetchar([], 1)"], ['E730:', 'E1013:', 'E1174:'])
+  call v9.CheckLegacyAndVim9Failure(["VAR c = strgetchar('axb', [])"], ['E745:', 'E1013:', 'E1210:'])
 endfunc
 
 func Test_strcharpart()
@@ -138,7 +138,7 @@ func Test_strcharpart()
 
       call assert_equal('edit', "editor"[-10 : 3])
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_getreg_empty_list()
@@ -150,9 +150,9 @@ func Test_getreg_empty_list()
       call add(x, 'foo')
       call assert_equal(['foo'], y)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
-  call CheckLegacyAndVim9Failure(['call getreg([])'], ['E730:', 'E1013:', 'E1174:'])
+  call v9.CheckLegacyAndVim9Failure(['call getreg([])'], ['E730:', 'E1013:', 'E1174:'])
 endfunc
 
 func Test_loop_over_null_list()
@@ -162,19 +162,19 @@ func Test_loop_over_null_list()
         call assert_report('should not get here')
       endfor
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_setreg_null_list()
   let lines =<< trim END
       call setreg('x', test_null_list())
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_special_char()
   " The failure is only visible using valgrind.
-  call CheckLegacyAndVim9Failure(['echo "\<C-">'], ['E15:', 'E1004:', 'E1004:'])
+  call v9.CheckLegacyAndVim9Failure(['echo "\<C-">'], ['E15:', 'E1004:', 'E1004:'])
 endfunc
 
 func Test_method_with_prefix()
@@ -182,13 +182,13 @@ func Test_method_with_prefix()
       call assert_equal(TRUE, !range(5)->empty())
       call assert_equal(FALSE, !-3)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   call assert_equal([0, 1, 2], --3->range())
-  call CheckDefAndScriptFailure(['eval --3->range()'], 'E15')
+  call v9.CheckDefAndScriptFailure(['eval --3->range()'], 'E15')
 
   call assert_equal(1, !+-+0)
-  call CheckDefAndScriptFailure(['eval !+-+0'], 'E15')
+  call v9.CheckDefAndScriptFailure(['eval !+-+0'], 'E15')
 endfunc
 
 func Test_option_value()
@@ -214,7 +214,7 @@ func Test_option_value()
       call assert_equal("abcdefgi", &cpo)
       set cpo&vim
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_printf_misc()
@@ -407,9 +407,9 @@ func Test_printf_misc()
       call assert_equal('1%', printf('%d%%', 1))
       call assert_notequal('', printf('%p', "abc"))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
-  call CheckLegacyAndVim9Failure(["call printf('123', 3)"], "E767:")
+  call v9.CheckLegacyAndVim9Failure(["call printf('123', 3)"], "E767:")
 endfunc
 
 func Test_printf_float()
@@ -519,21 +519,21 @@ func Test_printf_float()
         call assert_equal('nan', printf('%S', 0.0 / 0.0))
         call assert_equal('nan', printf('%S', -0.0 / 0.0))
     END
-    call CheckLegacyAndVim9Success(lines)
+    call v9.CheckLegacyAndVim9Success(lines)
 
-    call CheckLegacyAndVim9Failure(['echo printf("%f", "a")'], 'E807:')
+    call v9.CheckLegacyAndVim9Failure(['echo printf("%f", "a")'], 'E807:')
   endif
 endfunc
 
 func Test_printf_errors()
-  call CheckLegacyAndVim9Failure(['echo printf("%d", {})'], 'E728:')
-  call CheckLegacyAndVim9Failure(['echo printf("%d", [])'], 'E745:')
-  call CheckLegacyAndVim9Failure(['echo printf("%d", 1, 2)'], 'E767:')
-  call CheckLegacyAndVim9Failure(['echo printf("%*d", 1)'], 'E766:')
-  call CheckLegacyAndVim9Failure(['echo printf("%s")'], 'E766:')
+  call v9.CheckLegacyAndVim9Failure(['echo printf("%d", {})'], 'E728:')
+  call v9.CheckLegacyAndVim9Failure(['echo printf("%d", [])'], 'E745:')
+  call v9.CheckLegacyAndVim9Failure(['echo printf("%d", 1, 2)'], 'E767:')
+  call v9.CheckLegacyAndVim9Failure(['echo printf("%*d", 1)'], 'E766:')
+  call v9.CheckLegacyAndVim9Failure(['echo printf("%s")'], 'E766:')
   if has('float')
-    call CheckLegacyAndVim9Failure(['echo printf("%d", 1.2)'], 'E805:')
-    call CheckLegacyAndVim9Failure(['echo printf("%f")'], 'E766:')
+    call v9.CheckLegacyAndVim9Failure(['echo printf("%d", 1.2)'], 'E805:')
+    call v9.CheckLegacyAndVim9Failure(['echo printf("%f")'], 'E766:')
   endif
 endfunc
 
@@ -541,7 +541,7 @@ func Test_printf_64bit()
   let lines =<< trim END
       call assert_equal("123456789012345", printf('%d', 123456789012345))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_printf_spec_s()
@@ -571,7 +571,7 @@ func Test_printf_spec_s()
       #" partial
       call assert_equal(string(function('printf', ['%s'])), printf('%s', function('printf', ['%s'])))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_printf_spec_b()
@@ -587,14 +587,14 @@ func Test_printf_spec_b()
       call assert_equal("11100000100100010000110000011011101111101111001", printf('%b', 123456789012345))
       call assert_equal("1111111111111111111111111111111111111111111111111111111111111111", printf('%b', -1))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_max_min_errors()
-  call CheckLegacyAndVim9Failure(['call max(v:true)'], ['E712:', 'E1013:', 'E1227:'])
-  call CheckLegacyAndVim9Failure(['call max(v:true)'], ['max()', 'E1013:', 'E1227:'])
-  call CheckLegacyAndVim9Failure(['call min(v:true)'], ['E712:', 'E1013:', 'E1227:'])
-  call CheckLegacyAndVim9Failure(['call min(v:true)'], ['min()', 'E1013:', 'E1227:'])
+  call v9.CheckLegacyAndVim9Failure(['call max(v:true)'], ['E712:', 'E1013:', 'E1227:'])
+  call v9.CheckLegacyAndVim9Failure(['call max(v:true)'], ['max()', 'E1013:', 'E1227:'])
+  call v9.CheckLegacyAndVim9Failure(['call min(v:true)'], ['E712:', 'E1013:', 'E1227:'])
+  call v9.CheckLegacyAndVim9Failure(['call min(v:true)'], ['min()', 'E1013:', 'E1227:'])
 endfunc
 
 func Test_function_with_funcref()
@@ -615,9 +615,9 @@ func Test_function_with_funcref()
       call execute('VAR Ref = ' .. name)
       call assert_equal(4, Ref('text'))
   END
-  call CheckTransLegacySuccess(lines)
+  call v9.CheckTransLegacySuccess(lines)
   " cannot create s: variable in :def function
-  call CheckTransVim9Success(lines)
+  call v9.CheckTransVim9Success(lines)
 endfunc
 
 func Test_funcref()
@@ -668,9 +668,9 @@ func Test_setmatches()
       eval set->setmatches()
       call assert_equal(exp, getmatches())
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
-  call CheckLegacyAndVim9Failure(['VAR m = setmatches([], [])'], ['E745:', 'E1013:', 'E1210:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR m = setmatches([], [])'], ['E745:', 'E1013:', 'E1210:'])
 endfunc
 
 func Test_empty_concatenate()
@@ -678,19 +678,19 @@ func Test_empty_concatenate()
       call assert_equal('b', 'a'[4 : 0] .. 'b')
       call assert_equal('b', 'b' .. 'a'[4 : 0])
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_broken_number()
-  call CheckLegacyAndVim9Failure(['VAR X = "bad"', 'echo 1X'], 'E15:')
-  call CheckLegacyAndVim9Failure(['VAR X = "bad"', 'echo 0b1X'], 'E15:')
-  call CheckLegacyAndVim9Failure(['echo 0b12'], 'E15:')
-  call CheckLegacyAndVim9Failure(['VAR X = "bad"', 'echo 0x1X'], 'E15:')
-  call CheckLegacyAndVim9Failure(['VAR X = "bad"', 'echo 011X'], 'E15:')
+  call v9.CheckLegacyAndVim9Failure(['VAR X = "bad"', 'echo 1X'], 'E15:')
+  call v9.CheckLegacyAndVim9Failure(['VAR X = "bad"', 'echo 0b1X'], 'E15:')
+  call v9.CheckLegacyAndVim9Failure(['echo 0b12'], 'E15:')
+  call v9.CheckLegacyAndVim9Failure(['VAR X = "bad"', 'echo 0x1X'], 'E15:')
+  call v9.CheckLegacyAndVim9Failure(['VAR X = "bad"', 'echo 011X'], 'E15:')
 
-  call CheckLegacyAndVim9Success(['call assert_equal(2, str2nr("2a"))'])
+  call v9.CheckLegacyAndVim9Success(['call assert_equal(2, str2nr("2a"))'])
 
-  call CheckLegacyAndVim9Failure(['inoremap <Char-0b1z> b'], 'E474:')
+  call v9.CheckLegacyAndVim9Failure(['inoremap <Char-0b1z> b'], 'E474:')
 endfunc
 
 func Test_eval_after_if()
@@ -783,11 +783,11 @@ endfunc
 
 " Test for errors in expression evaluation
 func Test_expr_eval_error()
-  call CheckLegacyAndVim9Failure(["VAR i = 'abc' .. []"], ['E730:', 'E1105:', 'E730:'])
-  call CheckLegacyAndVim9Failure(["VAR l = [] + 10"], ['E745:', 'E1051:', 'E745'])
-  call CheckLegacyAndVim9Failure(["VAR v = 10 + []"], ['E745:', 'E1051:', 'E745:'])
-  call CheckLegacyAndVim9Failure(["VAR v = 10 / []"], ['E745:', 'E1036:', 'E745:'])
-  call CheckLegacyAndVim9Failure(["VAR v = -{}"], ['E728:', 'E1012:', 'E728:'])
+  call v9.CheckLegacyAndVim9Failure(["VAR i = 'abc' .. []"], ['E730:', 'E1105:', 'E730:'])
+  call v9.CheckLegacyAndVim9Failure(["VAR l = [] + 10"], ['E745:', 'E1051:', 'E745'])
+  call v9.CheckLegacyAndVim9Failure(["VAR v = 10 + []"], ['E745:', 'E1051:', 'E745:'])
+  call v9.CheckLegacyAndVim9Failure(["VAR v = 10 / []"], ['E745:', 'E1036:', 'E745:'])
+  call v9.CheckLegacyAndVim9Failure(["VAR v = -{}"], ['E728:', 'E1012:', 'E728:'])
 endfunc
 
 func Test_white_in_function_call()
@@ -795,13 +795,13 @@ func Test_white_in_function_call()
       VAR text = substitute ( 'some text' , 't' , 'T' , 'g' )
       call assert_equal('some TexT', text)
   END
-  call CheckTransLegacySuccess(lines)
+  call v9.CheckTransLegacySuccess(lines)
 
   let lines =<< trim END
       var text = substitute ( 'some text' , 't' , 'T' , 'g' )
       call assert_equal('some TexT', text)
   END
-  call CheckDefAndScriptFailure(lines, ['E1001:', 'E121:'])
+  call v9.CheckDefAndScriptFailure(lines, ['E1001:', 'E121:'])
 endfunc
 
 " Test for float value comparison
@@ -825,7 +825,7 @@ func Test_float_compare()
       #" +infinity != -infinity
       call assert_true((1.0 / 0) != -(2.0 / 0))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 " vim: shiftwidth=2 sts=2 expandtab