comparison src/testdir/test_vim9_script.vim @ 26650:a07323eb647f v8.2.3854

patch 8.2.3854: Vim9: inconsistent arguments for test functions Commit: https://github.com/vim/vim/commit/86b3ab4fa0de3e8884ab6a6ced2a70592b937d0f Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 19 18:33:23 2021 +0000 patch 8.2.3854: Vim9: inconsistent arguments for test functions Problem: Vim9: inconsistent arguments for test functions. Solution: When :def function and script have different arguments use a list with two items instead of a separate function.
author Bram Moolenaar <Bram@vim.org>
date Sun, 19 Dec 2021 19:45:03 +0100
parents dff04b7fa6b2
children ed73553992bf
comparison
equal deleted inserted replaced
26649:8a10ad703e92 26650:a07323eb647f
1509 writefile([], 'Xfoo.vim') 1509 writefile([], 'Xfoo.vim')
1510 var lines =<< trim END 1510 var lines =<< trim END
1511 import * as foo from './Xfoo.vim' 1511 import * as foo from './Xfoo.vim'
1512 foo = 'bar' 1512 foo = 'bar'
1513 END 1513 END
1514 CheckDefAndScriptFailure2(lines, 'E1094:', 'E1236: Cannot use foo itself') 1514 CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use foo itself'])
1515 lines =<< trim END 1515 lines =<< trim END
1516 vim9script 1516 vim9script
1517 import * as foo from './Xfoo.vim' 1517 import * as foo from './Xfoo.vim'
1518 var that = foo 1518 var that = foo
1519 END 1519 END
1547 writefile([], 'Xthat.vim') 1547 writefile([], 'Xthat.vim')
1548 lines =<< trim END 1548 lines =<< trim END
1549 import * as That from './Xthat.vim' 1549 import * as That from './Xthat.vim'
1550 That() 1550 That()
1551 END 1551 END
1552 CheckDefAndScriptFailure2(lines, 'E1094:', 'E1236: Cannot use That itself') 1552 CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use That itself'])
1553 delete('Xthat.vim') 1553 delete('Xthat.vim')
1554 enddef 1554 enddef
1555 1555
1556 def Test_import_as() 1556 def Test_import_as()
1557 var export_lines =<< trim END 1557 var export_lines =<< trim END
2850 END 2850 END
2851 CheckDefAndScriptSuccess(lines) 2851 CheckDefAndScriptSuccess(lines)
2852 enddef 2852 enddef
2853 2853
2854 def Test_for_loop_fails() 2854 def Test_for_loop_fails()
2855 CheckDefAndScriptFailure2(['for '], 'E1097:', 'E690:') 2855 CheckDefAndScriptFailure(['for '], ['E1097:', 'E690:'])
2856 CheckDefAndScriptFailure2(['for x'], 'E1097:', 'E690:') 2856 CheckDefAndScriptFailure(['for x'], ['E1097:', 'E690:'])
2857 CheckDefAndScriptFailure2(['for x in'], 'E1097:', 'E15:') 2857 CheckDefAndScriptFailure(['for x in'], ['E1097:', 'E15:'])
2858 CheckDefAndScriptFailure(['for # in range(5)'], 'E690:') 2858 CheckDefAndScriptFailure(['for # in range(5)'], 'E690:')
2859 CheckDefAndScriptFailure(['for i In range(5)'], 'E690:') 2859 CheckDefAndScriptFailure(['for i In range(5)'], 'E690:')
2860 CheckDefAndScriptFailure2(['var x = 5', 'for x in range(5)', 'endfor'], 'E1017:', 'E1041:') 2860 CheckDefAndScriptFailure(['var x = 5', 'for x in range(5)', 'endfor'], ['E1017:', 'E1041:'])
2861 CheckScriptFailure(['vim9script', 'var x = 5', 'for x in range(5)', '# comment', 'endfor'], 'E1041:', 3) 2861 CheckScriptFailure(['vim9script', 'var x = 5', 'for x in range(5)', '# comment', 'endfor'], 'E1041:', 3)
2862 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:') 2862 CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:')
2863 delfunc! g:Func 2863 delfunc! g:Func
2864 CheckDefFailure(['for i in xxx'], 'E1001:') 2864 CheckDefFailure(['for i in xxx'], 'E1001:')
2865 CheckDefFailure(['endfor'], 'E588:') 2865 CheckDefFailure(['endfor'], 'E588:')
2877 var d: list<dict<any>> = [{a: 0}] 2877 var d: list<dict<any>> = [{a: 0}]
2878 for e in d 2878 for e in d
2879 e = {a: 0, b: ''} 2879 e = {a: 0, b: ''}
2880 endfor 2880 endfor
2881 END 2881 END
2882 CheckDefAndScriptFailure2(lines, 'E1018:', 'E46:', 3) 2882 CheckDefAndScriptFailure(lines, ['E1018:', 'E46:'], 3)
2883 2883
2884 lines =<< trim END 2884 lines =<< trim END
2885 for nr: number in ['foo'] 2885 for nr: number in ['foo']
2886 endfor 2886 endfor
2887 END 2887 END
2906 var i = 0 2906 var i = 0
2907 for i in [1, 2, 3] 2907 for i in [1, 2, 3]
2908 echo i 2908 echo i
2909 endfor 2909 endfor
2910 END 2910 END
2911 CheckDefExecAndScriptFailure2(lines, 'E1017:', 'E1041:') 2911 CheckDefExecAndScriptFailure(lines, ['E1017:', 'E1041:'])
2912 2912
2913 lines =<< trim END 2913 lines =<< trim END
2914 var l = [0] 2914 var l = [0]
2915 for l[0] in [1, 2, 3] 2915 for l[0] in [1, 2, 3]
2916 echo l[0] 2916 echo l[0]
2917 endfor 2917 endfor
2918 END 2918 END
2919 CheckDefExecAndScriptFailure2(lines, 'E461:', 'E1017:') 2919 CheckDefExecAndScriptFailure(lines, ['E461:', 'E1017:'])
2920 2920
2921 lines =<< trim END 2921 lines =<< trim END
2922 var d = {x: 0} 2922 var d = {x: 0}
2923 for d.x in [1, 2, 3] 2923 for d.x in [1, 2, 3]
2924 echo d.x 2924 echo d.x
2925 endfor 2925 endfor
2926 END 2926 END
2927 CheckDefExecAndScriptFailure2(lines, 'E461:', 'E1017:') 2927 CheckDefExecAndScriptFailure(lines, ['E461:', 'E1017:'])
2928 enddef 2928 enddef
2929 2929
2930 def Test_for_loop_script_var() 2930 def Test_for_loop_script_var()
2931 # cannot use s:var in a :def function 2931 # cannot use s:var in a :def function
2932 CheckDefFailure(['for s:var in range(3)', 'echo 3'], 'E461:') 2932 CheckDefFailure(['for s:var in range(3)', 'echo 3'], 'E461:')