Mercurial > vim
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:') |