Mercurial > vim
annotate src/testdir/test_vim9_func.vim @ 22274:1634ca41e4d3 v8.2.1686
patch 8.2.1686: Vim9: "const!" not sufficiently tested
Commit: https://github.com/vim/vim/commit/71abe4828974af495602ffaff63cf643a16de84b
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Sep 14 22:28:30 2020 +0200
patch 8.2.1686: Vim9: "const!" not sufficiently tested
Problem: Vim9: "const!" not sufficiently tested.
Solution: Add a few more test cases. Fix type checking.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 14 Sep 2020 22:30:03 +0200 |
parents | e0a4d029cb87 |
children | 6b385c2b9ff5 |
rev | line source |
---|---|
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1 " Test various aspects of the Vim9 script language. |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
2 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
3 source check.vim |
22155
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
4 source term_util.vim |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
5 source view_util.vim |
20279
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
6 source vim9.vim |
21172
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
7 source screendump.vim |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
8 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
9 func Test_def_basic() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
10 def SomeFunc(): string |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
11 return 'yes' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
12 enddef |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
13 call SomeFunc()->assert_equal('yes') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
14 endfunc |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
15 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
16 def ReturnString(): string |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
17 return 'string' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
18 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
19 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
20 def ReturnNumber(): number |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
21 return 123 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
22 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
23 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
24 let g:notNumber = 'string' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
25 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
26 def ReturnGlobal(): number |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
27 return g:notNumber |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
28 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
29 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
30 def Test_return_something() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
31 ReturnString()->assert_equal('string') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
32 ReturnNumber()->assert_equal(123) |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
33 assert_fails('ReturnGlobal()', 'E1029: Expected number but got string', '', 1, 'ReturnGlobal') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
34 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
35 |
20909
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
36 def Test_missing_return() |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
37 CheckDefFailure(['def Missing(): number', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
38 ' if g:cond', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
39 ' echo "no return"', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
40 ' else', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
41 ' return 0', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
42 ' endif' |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
43 'enddef'], 'E1027:') |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
44 CheckDefFailure(['def Missing(): number', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
45 ' if g:cond', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
46 ' return 1', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
47 ' else', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
48 ' echo "no return"', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
49 ' endif' |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
50 'enddef'], 'E1027:') |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
51 CheckDefFailure(['def Missing(): number', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
52 ' if g:cond', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
53 ' return 1', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
54 ' else', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
55 ' return 2', |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
56 ' endif' |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
57 ' return 3' |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
58 'enddef'], 'E1095:') |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
59 enddef |
0d7465881b06
patch 8.2.1006: Vim9: require unnecessary return statement
Bram Moolenaar <Bram@vim.org>
parents:
20903
diff
changeset
|
60 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
61 let s:nothing = 0 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
62 def ReturnNothing() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
63 s:nothing = 1 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
64 if true |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
65 return |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
66 endif |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
67 s:nothing = 2 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
68 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
69 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
70 def Test_return_nothing() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
71 ReturnNothing() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
72 s:nothing->assert_equal(1) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
73 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
74 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
75 func Increment() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
76 let g:counter += 1 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
77 endfunc |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
78 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
79 def Test_call_ufunc_count() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
80 g:counter = 1 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
81 Increment() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
82 Increment() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
83 Increment() |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21347
diff
changeset
|
84 # works with and without :call |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
85 g:counter->assert_equal(4) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
86 eval g:counter->assert_equal(4) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
87 unlet g:counter |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
88 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
89 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
90 def MyVarargs(arg: string, ...rest: list<string>): string |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
91 let res = arg |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
92 for s in rest |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
93 res ..= ',' .. s |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
94 endfor |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
95 return res |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
96 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
97 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
98 def Test_call_varargs() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
99 MyVarargs('one')->assert_equal('one') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
100 MyVarargs('one', 'two')->assert_equal('one,two') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
101 MyVarargs('one', 'two', 'three')->assert_equal('one,two,three') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
102 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
103 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
104 def MyDefaultArgs(name = 'string'): string |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
105 return name |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
106 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
107 |
21345
5dd4cbc1e9e6
patch 8.2.1223: Vim9: invalid type error for function default value
Bram Moolenaar <Bram@vim.org>
parents:
21335
diff
changeset
|
108 def MyDefaultSecond(name: string, second: bool = true): string |
5dd4cbc1e9e6
patch 8.2.1223: Vim9: invalid type error for function default value
Bram Moolenaar <Bram@vim.org>
parents:
21335
diff
changeset
|
109 return second ? name : 'none' |
5dd4cbc1e9e6
patch 8.2.1223: Vim9: invalid type error for function default value
Bram Moolenaar <Bram@vim.org>
parents:
21335
diff
changeset
|
110 enddef |
5dd4cbc1e9e6
patch 8.2.1223: Vim9: invalid type error for function default value
Bram Moolenaar <Bram@vim.org>
parents:
21335
diff
changeset
|
111 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
112 def Test_call_default_args() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
113 MyDefaultArgs()->assert_equal('string') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
114 MyDefaultArgs('one')->assert_equal('one') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
115 assert_fails('MyDefaultArgs("one", "two")', 'E118:', '', 3, 'Test_call_default_args') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
116 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
117 MyDefaultSecond('test')->assert_equal('test') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
118 MyDefaultSecond('test', true)->assert_equal('test') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
119 MyDefaultSecond('test', false)->assert_equal('none') |
21345
5dd4cbc1e9e6
patch 8.2.1223: Vim9: invalid type error for function default value
Bram Moolenaar <Bram@vim.org>
parents:
21335
diff
changeset
|
120 |
20528
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20433
diff
changeset
|
121 CheckScriptFailure(['def Func(arg: number = asdf)', 'enddef', 'defcompile'], 'E1001:') |
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20433
diff
changeset
|
122 CheckScriptFailure(['def Func(arg: number = "text")', 'enddef', 'defcompile'], 'E1013: argument 1: type mismatch, expected number but got string') |
20279
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
123 enddef |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
124 |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
125 def Test_nested_function() |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
126 def Nested(arg: string): string |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
127 return 'nested ' .. arg |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
128 enddef |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
129 Nested('function')->assert_equal('nested function') |
20279
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
130 |
20281
ab8c8fd0f868
patch 8.2.0696: Vim9: nested function does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
20279
diff
changeset
|
131 CheckDefFailure(['def Nested()', 'enddef', 'Nested(66)'], 'E118:') |
ab8c8fd0f868
patch 8.2.0696: Vim9: nested function does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
20279
diff
changeset
|
132 CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:') |
ab8c8fd0f868
patch 8.2.0696: Vim9: nested function does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
20279
diff
changeset
|
133 |
20279
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
134 CheckDefFailure(['func Nested()', 'endfunc'], 'E1086:') |
21602
7028f45bf0ea
patch 8.2.1351: Vim9: no proper error if using namespace for nested function
Bram Moolenaar <Bram@vim.org>
parents:
21588
diff
changeset
|
135 CheckDefFailure(['def s:Nested()', 'enddef'], 'E1075:') |
7028f45bf0ea
patch 8.2.1351: Vim9: no proper error if using namespace for nested function
Bram Moolenaar <Bram@vim.org>
parents:
21588
diff
changeset
|
136 CheckDefFailure(['def b:Nested()', 'enddef'], 'E1075:') |
22216
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
137 |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
138 CheckDefFailure([ |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
139 'def Outer()', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
140 ' def Inner()', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
141 ' # comment', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
142 ' enddef', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
143 ' def Inner()', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
144 ' enddef', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
145 'enddef'], 'E1073:') |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
146 CheckDefFailure([ |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
147 'def Outer()', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
148 ' def Inner()', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
149 ' # comment', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
150 ' enddef', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
151 ' def! Inner()', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
152 ' enddef', |
f9b4576a618b
patch 8.2.1657: Vim9: no proper error for nested ":def!"
Bram Moolenaar <Bram@vim.org>
parents:
22214
diff
changeset
|
153 'enddef'], 'E1117:') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
154 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
155 |
21566
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
156 func Test_call_default_args_from_func() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
157 call MyDefaultArgs()->assert_equal('string') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
158 call MyDefaultArgs('one')->assert_equal('one') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
159 call assert_fails('call MyDefaultArgs("one", "two")', 'E118:', '', 3, 'Test_call_default_args_from_func') |
21566
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
160 endfunc |
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
161 |
21558
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
162 def Test_nested_global_function() |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
163 let lines =<< trim END |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
164 vim9script |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
165 def Outer() |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
166 def g:Inner(): string |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
167 return 'inner' |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
168 enddef |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
169 enddef |
21566
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
170 defcompile |
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
171 Outer() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
172 g:Inner()->assert_equal('inner') |
21566
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
173 delfunc g:Inner |
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
174 Outer() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
175 g:Inner()->assert_equal('inner') |
21566
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
176 delfunc g:Inner |
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
177 Outer() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
178 g:Inner()->assert_equal('inner') |
21566
1e3e5058041c
patch 8.2.1333: Vim9: memory leak when using nested global function
Bram Moolenaar <Bram@vim.org>
parents:
21564
diff
changeset
|
179 delfunc g:Inner |
21558
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
180 END |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
181 CheckScriptSuccess(lines) |
21588
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
182 |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
183 lines =<< trim END |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
184 vim9script |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
185 def Outer() |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
186 def g:Inner(): string |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
187 return 'inner' |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
188 enddef |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
189 enddef |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
190 defcompile |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
191 Outer() |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
192 Outer() |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
193 END |
9ade1da22402
patch 8.2.1344: Vim9: No test for trying to redefine global function
Bram Moolenaar <Bram@vim.org>
parents:
21586
diff
changeset
|
194 CheckScriptFailure(lines, "E122:") |
21604
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
195 |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
196 lines =<< trim END |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
197 vim9script |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
198 def Func() |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
199 echo 'script' |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
200 enddef |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
201 def Outer() |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
202 def Func() |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
203 echo 'inner' |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
204 enddef |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
205 enddef |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
206 defcompile |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
207 END |
d9c45474cac1
patch 8.2.1352: Vim9: no error for shadowing a script-local function
Bram Moolenaar <Bram@vim.org>
parents:
21602
diff
changeset
|
208 CheckScriptFailure(lines, "E1073:") |
21558
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
209 enddef |
1c4d4aa22b37
patch 8.2.1329: Vim9: cannot define global function inside :def function
Bram Moolenaar <Bram@vim.org>
parents:
21544
diff
changeset
|
210 |
21586
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
211 def Test_global_local_function() |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
212 let lines =<< trim END |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
213 vim9script |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
214 def g:Func(): string |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
215 return 'global' |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
216 enddef |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
217 def Func(): string |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
218 return 'local' |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
219 enddef |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
220 g:Func()->assert_equal('global') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
221 Func()->assert_equal('local') |
21586
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
222 END |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
223 CheckScriptSuccess(lines) |
21747
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
224 |
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
225 lines =<< trim END |
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
226 vim9script |
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
227 def g:Funcy() |
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
228 echo 'funcy' |
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
229 enddef |
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
230 s:Funcy() |
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
231 END |
7e1316c6d0eb
patch 8.2.1423: Vim9: find global function when looking for script-local
Bram Moolenaar <Bram@vim.org>
parents:
21693
diff
changeset
|
232 CheckScriptFailure(lines, 'E117:') |
21586
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
233 enddef |
5470c36ed7e6
patch 8.2.1343: Vim9: cannot find global function when using g:
Bram Moolenaar <Bram@vim.org>
parents:
21566
diff
changeset
|
234 |
22236
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
235 def Test_local_function_shadows_global() |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
236 let lines =<< trim END |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
237 vim9script |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
238 def g:Gfunc(): string |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
239 return 'global' |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
240 enddef |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
241 def AnotherFunc(): number |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
242 let Gfunc = function('len') |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
243 return Gfunc('testing') |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
244 enddef |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
245 g:Gfunc()->assert_equal('global') |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
246 AnotherFunc()->assert_equal(7) |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
247 delfunc g:Gfunc |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
248 END |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
249 CheckScriptSuccess(lines) |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
250 |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
251 lines =<< trim END |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
252 vim9script |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
253 def g:Func(): string |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
254 return 'global' |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
255 enddef |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
256 def AnotherFunc() |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
257 g:Func = function('len') |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
258 enddef |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
259 AnotherFunc() |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
260 END |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
261 CheckScriptFailure(lines, 'E705:') |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
262 delfunc g:Func |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
263 enddef |
3d0632b260fd
patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents:
22222
diff
changeset
|
264 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
265 func TakesOneArg(arg) |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
266 echo a:arg |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
267 endfunc |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
268 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
269 def Test_call_wrong_args() |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
270 CheckDefFailure(['TakesOneArg()'], 'E119:') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
271 CheckDefFailure(['TakesOneArg(11, 22)'], 'E118:') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
272 CheckDefFailure(['bufnr(xxx)'], 'E1001:') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
273 CheckScriptFailure(['def Func(Ref: func(s: string))'], 'E475:') |
21969
ba2415df82d7
patch 8.2.1534: Vim9: type error for argument type is not at call position
Bram Moolenaar <Bram@vim.org>
parents:
21967
diff
changeset
|
274 |
ba2415df82d7
patch 8.2.1534: Vim9: type error for argument type is not at call position
Bram Moolenaar <Bram@vim.org>
parents:
21967
diff
changeset
|
275 let lines =<< trim END |
ba2415df82d7
patch 8.2.1534: Vim9: type error for argument type is not at call position
Bram Moolenaar <Bram@vim.org>
parents:
21967
diff
changeset
|
276 vim9script |
ba2415df82d7
patch 8.2.1534: Vim9: type error for argument type is not at call position
Bram Moolenaar <Bram@vim.org>
parents:
21967
diff
changeset
|
277 def Func(s: string) |
ba2415df82d7
patch 8.2.1534: Vim9: type error for argument type is not at call position
Bram Moolenaar <Bram@vim.org>
parents:
21967
diff
changeset
|
278 echo s |
ba2415df82d7
patch 8.2.1534: Vim9: type error for argument type is not at call position
Bram Moolenaar <Bram@vim.org>
parents:
21967
diff
changeset
|
279 enddef |
ba2415df82d7
patch 8.2.1534: Vim9: type error for argument type is not at call position
Bram Moolenaar <Bram@vim.org>
parents:
21967
diff
changeset
|
280 Func([]) |
ba2415df82d7
patch 8.2.1534: Vim9: type error for argument type is not at call position
Bram Moolenaar <Bram@vim.org>
parents:
21967
diff
changeset
|
281 END |
22264
e0a4d029cb87
patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents:
22236
diff
changeset
|
282 CheckScriptFailure(lines, 'E1013: argument 1: type mismatch, expected string but got list<unknown>', 5) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
283 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
284 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
285 " Default arg and varargs |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
286 def MyDefVarargs(one: string, two = 'foo', ...rest: list<string>): string |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
287 let res = one .. ',' .. two |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
288 for s in rest |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
289 res ..= ',' .. s |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
290 endfor |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
291 return res |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
292 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
293 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
294 def Test_call_def_varargs() |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
295 assert_fails('MyDefVarargs()', 'E119:', '', 1, 'Test_call_def_varargs') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
296 MyDefVarargs('one')->assert_equal('one,foo') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
297 MyDefVarargs('one', 'two')->assert_equal('one,two') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
298 MyDefVarargs('one', 'two', 'three')->assert_equal('one,two,three') |
21481
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
299 CheckDefFailure(['MyDefVarargs("one", 22)'], |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
300 'E1013: argument 2: type mismatch, expected string but got number') |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
301 CheckDefFailure(['MyDefVarargs("one", "two", 123)'], |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
302 'E1013: argument 3: type mismatch, expected string but got number') |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
303 |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
304 let lines =<< trim END |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
305 vim9script |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
306 def Func(...l: list<string>) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
307 echo l |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
308 enddef |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
309 Func('a', 'b', 'c') |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
310 END |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
311 CheckScriptSuccess(lines) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
312 |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
313 lines =<< trim END |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
314 vim9script |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
315 def Func(...l: list<string>) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
316 echo l |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
317 enddef |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
318 Func() |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
319 END |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
320 CheckScriptSuccess(lines) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
321 |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
322 lines =<< trim END |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
323 vim9script |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
324 def Func(...l: list<string>) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
325 echo l |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
326 enddef |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
327 Func(1, 2, 3) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
328 END |
22004
a9e60176dcd3
patch 8.2.1551: Vim9: error for argument type does not mention the number
Bram Moolenaar <Bram@vim.org>
parents:
22002
diff
changeset
|
329 CheckScriptFailure(lines, 'E1013: argument 1: type mismatch') |
21481
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
330 |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
331 lines =<< trim END |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
332 vim9script |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
333 def Func(...l: list<string>) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
334 echo l |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
335 enddef |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
336 Func('a', 9) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
337 END |
22004
a9e60176dcd3
patch 8.2.1551: Vim9: error for argument type does not mention the number
Bram Moolenaar <Bram@vim.org>
parents:
22002
diff
changeset
|
338 CheckScriptFailure(lines, 'E1013: argument 2: type mismatch') |
21481
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
339 |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
340 lines =<< trim END |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
341 vim9script |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
342 def Func(...l: list<string>) |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
343 echo l |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
344 enddef |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
345 Func(1, 'a') |
279b3415947f
patch 8.2.1291: Vim9: type of varargs items is not checked
Bram Moolenaar <Bram@vim.org>
parents:
21475
diff
changeset
|
346 END |
22004
a9e60176dcd3
patch 8.2.1551: Vim9: error for argument type does not mention the number
Bram Moolenaar <Bram@vim.org>
parents:
22002
diff
changeset
|
347 CheckScriptFailure(lines, 'E1013: argument 1: type mismatch') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
348 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
349 |
21751
cc8188c22a47
patch 8.2.1425: Vim9: cannot use call() without :call
Bram Moolenaar <Bram@vim.org>
parents:
21747
diff
changeset
|
350 def Test_call_call() |
cc8188c22a47
patch 8.2.1425: Vim9: cannot use call() without :call
Bram Moolenaar <Bram@vim.org>
parents:
21747
diff
changeset
|
351 let l = [3, 2, 1] |
cc8188c22a47
patch 8.2.1425: Vim9: cannot use call() without :call
Bram Moolenaar <Bram@vim.org>
parents:
21747
diff
changeset
|
352 call('reverse', [l]) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
353 l->assert_equal([1, 2, 3]) |
21751
cc8188c22a47
patch 8.2.1425: Vim9: cannot use call() without :call
Bram Moolenaar <Bram@vim.org>
parents:
21747
diff
changeset
|
354 enddef |
cc8188c22a47
patch 8.2.1425: Vim9: cannot use call() without :call
Bram Moolenaar <Bram@vim.org>
parents:
21747
diff
changeset
|
355 |
19975
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
356 let s:value = '' |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
357 |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
358 def FuncOneDefArg(opt = 'text') |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
359 s:value = opt |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
360 enddef |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
361 |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
362 def FuncTwoDefArg(nr = 123, opt = 'text'): string |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
363 return nr .. opt |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
364 enddef |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
365 |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
366 def FuncVarargs(...arg: list<string>): string |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
367 return join(arg, ',') |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
368 enddef |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
369 |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
370 def Test_func_type_varargs() |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
371 let RefDefArg: func(?string) |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
372 RefDefArg = FuncOneDefArg |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
373 RefDefArg() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
374 s:value->assert_equal('text') |
19975
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
375 RefDefArg('some') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
376 s:value->assert_equal('some') |
19975
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
377 |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
378 let RefDef2Arg: func(?number, ?string): string |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
379 RefDef2Arg = FuncTwoDefArg |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
380 RefDef2Arg()->assert_equal('123text') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
381 RefDef2Arg(99)->assert_equal('99text') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
382 RefDef2Arg(77, 'some')->assert_equal('77some') |
19975
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
383 |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
384 CheckDefFailure(['let RefWrong: func(string?)'], 'E1010:') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
385 CheckDefFailure(['let RefWrong: func(?string, string)'], 'E1007:') |
19975
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
386 |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
387 let RefVarargs: func(...list<string>): string |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
388 RefVarargs = FuncVarargs |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
389 RefVarargs()->assert_equal('') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
390 RefVarargs('one')->assert_equal('one') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
391 RefVarargs('one', 'two')->assert_equal('one,two') |
19975
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
392 |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
393 CheckDefFailure(['let RefWrong: func(...list<string>, string)'], 'E110:') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
394 CheckDefFailure(['let RefWrong: func(...list<string>, ?string)'], 'E110:') |
19975
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
395 enddef |
4e8e0ce576af
patch 8.2.0543: Vim9: function with varargs does not work properly
Bram Moolenaar <Bram@vim.org>
parents:
19946
diff
changeset
|
396 |
19944
3055cd26e139
patch 8.2.0528: Vim9: function arguments insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19942
diff
changeset
|
397 " Only varargs |
3055cd26e139
patch 8.2.0528: Vim9: function arguments insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19942
diff
changeset
|
398 def MyVarargsOnly(...args: list<string>): string |
3055cd26e139
patch 8.2.0528: Vim9: function arguments insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19942
diff
changeset
|
399 return join(args, ',') |
3055cd26e139
patch 8.2.0528: Vim9: function arguments insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19942
diff
changeset
|
400 enddef |
3055cd26e139
patch 8.2.0528: Vim9: function arguments insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19942
diff
changeset
|
401 |
3055cd26e139
patch 8.2.0528: Vim9: function arguments insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19942
diff
changeset
|
402 def Test_call_varargs_only() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
403 MyVarargsOnly()->assert_equal('') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
404 MyVarargsOnly('one')->assert_equal('one') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
405 MyVarargsOnly('one', 'two')->assert_equal('one,two') |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
406 CheckDefFailure(['MyVarargsOnly(1)'], 'E1013: argument 1: type mismatch, expected string but got number') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
407 CheckDefFailure(['MyVarargsOnly("one", 2)'], 'E1013: argument 2: type mismatch, expected string but got number') |
19944
3055cd26e139
patch 8.2.0528: Vim9: function arguments insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19942
diff
changeset
|
408 enddef |
3055cd26e139
patch 8.2.0528: Vim9: function arguments insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19942
diff
changeset
|
409 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
410 def Test_using_var_as_arg() |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
411 writefile(['def Func(x: number)', 'let x = 234', 'enddef', 'defcompile'], 'Xdef') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
412 assert_fails('so Xdef', 'E1006:', '', 1, 'Func') |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
413 delete('Xdef') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
414 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
415 |
20355
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
416 def DictArg(arg: dict<string>) |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
417 arg['key'] = 'value' |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
418 enddef |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
419 |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
420 def ListArg(arg: list<string>) |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
421 arg[0] = 'value' |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
422 enddef |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
423 |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
424 def Test_assign_to_argument() |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21347
diff
changeset
|
425 # works for dict and list |
20355
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
426 let d: dict<string> = {} |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
427 DictArg(d) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
428 d['key']->assert_equal('value') |
20355
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
429 let l: list<string> = [] |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
430 ListArg(l) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
431 l[0]->assert_equal('value') |
20355
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
432 |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
433 CheckScriptFailure(['def Func(arg: number)', 'arg = 3', 'enddef', 'defcompile'], 'E1090:') |
20355
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
434 enddef |
fc2d76e0994c
patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Bram Moolenaar <Bram@vim.org>
parents:
20303
diff
changeset
|
435 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
436 def Test_call_func_defined_later() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
437 g:DefinedLater('one')->assert_equal('one') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
438 assert_fails('NotDefined("one")', 'E117:', '', 2, 'Test_call_func_defined_later') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
439 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
440 |
20140
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
441 func DefinedLater(arg) |
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
442 return a:arg |
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
443 endfunc |
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
444 |
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
445 def Test_call_funcref() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
446 g:SomeFunc('abc')->assert_equal(3) |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
447 assert_fails('NotAFunc()', 'E117:', '', 2, 'Test_call_funcref') # comment after call |
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
448 assert_fails('g:NotAFunc()', 'E117:', '', 3, 'Test_call_funcref') |
21439
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
449 |
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
450 let lines =<< trim END |
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
451 vim9script |
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
452 def RetNumber(): number |
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
453 return 123 |
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
454 enddef |
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
455 let Funcref: func: number = function('RetNumber') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
456 Funcref()->assert_equal(123) |
21439
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
457 END |
166c15374bda
patch 8.2.1270: Vim9: not skipping over function type declaration
Bram Moolenaar <Bram@vim.org>
parents:
21383
diff
changeset
|
458 CheckScriptSuccess(lines) |
21441
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
459 |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
460 lines =<< trim END |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
461 vim9script |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
462 def RetNumber(): number |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
463 return 123 |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
464 enddef |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
465 def Bar(F: func: number): number |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
466 return F() |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
467 enddef |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
468 let Funcref = function('RetNumber') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
469 Bar(Funcref)->assert_equal(123) |
21441
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
470 END |
78d97ee2c707
patch 8.2.1271: Vim9: Error for Funcref function argument type
Bram Moolenaar <Bram@vim.org>
parents:
21439
diff
changeset
|
471 CheckScriptSuccess(lines) |
21467
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
472 |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
473 lines =<< trim END |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
474 vim9script |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
475 def UseNumber(nr: number) |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
476 echo nr |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
477 enddef |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
478 let Funcref: func(number) = function('UseNumber') |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
479 Funcref(123) |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
480 END |
49072a858baf
patch 8.2.1284: Vim9: skipping over type includes following white space
Bram Moolenaar <Bram@vim.org>
parents:
21463
diff
changeset
|
481 CheckScriptSuccess(lines) |
21469
4d156aead799
patch 8.2.1285: Vim9: argument types are not checked on assignment
Bram Moolenaar <Bram@vim.org>
parents:
21467
diff
changeset
|
482 |
4d156aead799
patch 8.2.1285: Vim9: argument types are not checked on assignment
Bram Moolenaar <Bram@vim.org>
parents:
21467
diff
changeset
|
483 lines =<< trim END |
4d156aead799
patch 8.2.1285: Vim9: argument types are not checked on assignment
Bram Moolenaar <Bram@vim.org>
parents:
21467
diff
changeset
|
484 vim9script |
4d156aead799
patch 8.2.1285: Vim9: argument types are not checked on assignment
Bram Moolenaar <Bram@vim.org>
parents:
21467
diff
changeset
|
485 def UseNumber(nr: number) |
4d156aead799
patch 8.2.1285: Vim9: argument types are not checked on assignment
Bram Moolenaar <Bram@vim.org>
parents:
21467
diff
changeset
|
486 echo nr |
4d156aead799
patch 8.2.1285: Vim9: argument types are not checked on assignment
Bram Moolenaar <Bram@vim.org>
parents:
21467
diff
changeset
|
487 enddef |
4d156aead799
patch 8.2.1285: Vim9: argument types are not checked on assignment
Bram Moolenaar <Bram@vim.org>
parents:
21467
diff
changeset
|
488 let Funcref: func(string) = function('UseNumber') |
4d156aead799
patch 8.2.1285: Vim9: argument types are not checked on assignment
Bram Moolenaar <Bram@vim.org>
parents:
21467
diff
changeset
|
489 END |
21821
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
490 CheckScriptFailure(lines, 'E1012: type mismatch, expected func(string) but got func(number)') |
21500
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
491 |
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
492 lines =<< trim END |
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
493 vim9script |
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
494 def EchoNr(nr = 34) |
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
495 g:echo = nr |
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
496 enddef |
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
497 let Funcref: func(?number) = function('EchoNr') |
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
498 Funcref() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
499 g:echo->assert_equal(34) |
21500
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
500 Funcref(123) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
501 g:echo->assert_equal(123) |
21500
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
502 END |
574517d682cf
patch 8.2.1300: Vim9: optional argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21481
diff
changeset
|
503 CheckScriptSuccess(lines) |
21502
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
504 |
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
505 lines =<< trim END |
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
506 vim9script |
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
507 def EchoList(...l: list<number>) |
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
508 g:echo = l |
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
509 enddef |
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
510 let Funcref: func(...list<number>) = function('EchoList') |
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
511 Funcref() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
512 g:echo->assert_equal([]) |
21502
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
513 Funcref(1, 2, 3) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
514 g:echo->assert_equal([1, 2, 3]) |
21502
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
515 END |
179697662a5a
patch 8.2.1301: Vim9: varargs argument type not parsed properly
Bram Moolenaar <Bram@vim.org>
parents:
21500
diff
changeset
|
516 CheckScriptSuccess(lines) |
21504
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
517 |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
518 lines =<< trim END |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
519 vim9script |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
520 def OptAndVar(nr: number, opt = 12, ...l: list<number>): number |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
521 g:optarg = opt |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
522 g:listarg = l |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
523 return nr |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
524 enddef |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
525 let Funcref: func(number, ?number, ...list<number>): number = function('OptAndVar') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
526 Funcref(10)->assert_equal(10) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
527 g:optarg->assert_equal(12) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
528 g:listarg->assert_equal([]) |
21504
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
529 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
530 Funcref(11, 22)->assert_equal(11) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
531 g:optarg->assert_equal(22) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
532 g:listarg->assert_equal([]) |
21504
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
533 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
534 Funcref(17, 18, 1, 2, 3)->assert_equal(17) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
535 g:optarg->assert_equal(18) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
536 g:listarg->assert_equal([1, 2, 3]) |
21504
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
537 END |
e87a97868bbc
patch 8.2.1302: Vim9: varargs arg after optional arg does not work
Bram Moolenaar <Bram@vim.org>
parents:
21502
diff
changeset
|
538 CheckScriptSuccess(lines) |
20140
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
539 enddef |
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
540 |
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
541 let SomeFunc = function('len') |
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
542 let NotAFunc = 'text' |
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
543 |
19993
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
544 def CombineFuncrefTypes() |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21347
diff
changeset
|
545 # same arguments, different return type |
19993
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
546 let Ref1: func(bool): string |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
547 let Ref2: func(bool): number |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
548 let Ref3: func(bool): any |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
549 Ref3 = g:cond ? Ref1 : Ref2 |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
550 |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21347
diff
changeset
|
551 # different number of arguments |
19993
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
552 let Refa1: func(bool): number |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
553 let Refa2: func(bool, number): number |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
554 let Refa3: func: number |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
555 Refa3 = g:cond ? Refa1 : Refa2 |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
556 |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21347
diff
changeset
|
557 # different argument types |
19993
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
558 let Refb1: func(bool, string): number |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
559 let Refb2: func(string, number): number |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
560 let Refb3: func(any, any): number |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
561 Refb3 = g:cond ? Refb1 : Refb2 |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
562 enddef |
efe864a7ce4f
patch 8.2.0552: Vim9: some errors not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
19985
diff
changeset
|
563 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
564 def FuncWithForwardCall() |
20140
39a18a0df429
patch 8.2.0625: Vim9: confusing error when calling unknown function
Bram Moolenaar <Bram@vim.org>
parents:
20029
diff
changeset
|
565 return g:DefinedEvenLater("yes") |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
566 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
567 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
568 def DefinedEvenLater(arg: string): string |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
569 return arg |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
570 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
571 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
572 def Test_error_in_nested_function() |
21353
fb8c8fcb7b60
patch 8.2.1227: Vim9: allowing both quoted and # comments is confusing
Bram Moolenaar <Bram@vim.org>
parents:
21347
diff
changeset
|
573 # Error in called function requires unwinding the call stack. |
22165
c512e6f57ff2
patch 8.2.1632: not checking the context of test_fails()
Bram Moolenaar <Bram@vim.org>
parents:
22163
diff
changeset
|
574 assert_fails('FuncWithForwardCall()', 'E1096:', '', 1, 'FuncWithForwardCall') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
575 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
576 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
577 def Test_return_type_wrong() |
21693
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
578 CheckScriptFailure([ |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
579 'def Func(): number', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
580 'return "a"', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
581 'enddef', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
582 'defcompile'], 'expected number but got string') |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
583 CheckScriptFailure([ |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
584 'def Func(): string', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
585 'return 1', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
586 'enddef', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
587 'defcompile'], 'expected string but got number') |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
588 CheckScriptFailure([ |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
589 'def Func(): void', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
590 'return "a"', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
591 'enddef', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
592 'defcompile'], |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
593 'E1096: Returning a value in a function without a return type') |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
594 CheckScriptFailure([ |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
595 'def Func()', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
596 'return "a"', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
597 'enddef', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
598 'defcompile'], |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
599 'E1096: Returning a value in a function without a return type') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
600 |
21693
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
601 CheckScriptFailure([ |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
602 'def Func(): number', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
603 'return', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
604 'enddef', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
605 'defcompile'], 'E1003:') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
606 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
607 CheckScriptFailure(['def Func(): list', 'return []', 'enddef'], 'E1008:') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
608 CheckScriptFailure(['def Func(): dict', 'return {}', 'enddef'], 'E1008:') |
19932
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
609 CheckScriptFailure(['def Func()', 'return 1'], 'E1057:') |
21693
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
610 |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
611 CheckScriptFailure([ |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
612 'vim9script', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
613 'def FuncB()', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
614 ' return 123', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
615 'enddef', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
616 'def FuncA()', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
617 ' FuncB()', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
618 'enddef', |
4e4fd845553d
patch 8.2.1396: Vim9: no error for unexpectedly returning a value
Bram Moolenaar <Bram@vim.org>
parents:
21689
diff
changeset
|
619 'defcompile'], 'E1096:') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
620 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
621 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
622 def Test_arg_type_wrong() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
623 CheckScriptFailure(['def Func3(items: list)', 'echo "a"', 'enddef'], 'E1008: Missing <type>') |
19932
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
624 CheckScriptFailure(['def Func4(...)', 'echo "a"', 'enddef'], 'E1055: Missing name after ...') |
20142
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
625 CheckScriptFailure(['def Func5(items:string)', 'echo "a"'], 'E1069:') |
20029
8fb1cf4c44d5
patch 8.2.0570: Vim9: no error when omitting type from argument
Bram Moolenaar <Bram@vim.org>
parents:
20023
diff
changeset
|
626 CheckScriptFailure(['def Func5(items)', 'echo "a"'], 'E1077:') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
627 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
628 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
629 def Test_vim9script_call() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
630 let lines =<< trim END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
631 vim9script |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
632 let var = '' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
633 def MyFunc(arg: string) |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
634 var = arg |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
635 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
636 MyFunc('foobar') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
637 var->assert_equal('foobar') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
638 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
639 let str = 'barfoo' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
640 str->MyFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
641 var->assert_equal('barfoo') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
642 |
20945
0653b9b72091
patch 8.2.1024: Vim9: no error for using "let g:var = val"
Bram Moolenaar <Bram@vim.org>
parents:
20909
diff
changeset
|
643 g:value = 'value' |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
644 g:value->MyFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
645 var->assert_equal('value') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
646 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
647 let listvar = [] |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
648 def ListFunc(arg: list<number>) |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
649 listvar = arg |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
650 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
651 [1, 2, 3]->ListFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
652 listvar->assert_equal([1, 2, 3]) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
653 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
654 let dictvar = {} |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
655 def DictFunc(arg: dict<number>) |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
656 dictvar = arg |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
657 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
658 {'a': 1, 'b': 2}->DictFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
659 dictvar->assert_equal(#{a: 1, b: 2}) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
660 def CompiledDict() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
661 {'a': 3, 'b': 4}->DictFunc() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
662 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
663 CompiledDict() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
664 dictvar->assert_equal(#{a: 3, b: 4}) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
665 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
666 #{a: 3, b: 4}->DictFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
667 dictvar->assert_equal(#{a: 3, b: 4}) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
668 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
669 ('text')->MyFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
670 var->assert_equal('text') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
671 ("some")->MyFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
672 var->assert_equal('some') |
21118
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
673 |
21475
eec2d2120cde
patch 8.2.1288: Vim9: cannot use mark in range
Bram Moolenaar <Bram@vim.org>
parents:
21469
diff
changeset
|
674 # line starting with single quote is not a mark |
21544
6c67c86a202a
patch 8.2.1322: Vim9: method on double quoted string doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
21504
diff
changeset
|
675 # line starting with double quote can be a method call |
21335
af3663df42bf
patch 8.2.1218: Vim9: cannot use 'text'->func()
Bram Moolenaar <Bram@vim.org>
parents:
21303
diff
changeset
|
676 'asdfasdf'->MyFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
677 var->assert_equal('asdfasdf') |
21544
6c67c86a202a
patch 8.2.1322: Vim9: method on double quoted string doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
21504
diff
changeset
|
678 "xyz"->MyFunc() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
679 var->assert_equal('xyz') |
21335
af3663df42bf
patch 8.2.1218: Vim9: cannot use 'text'->func()
Bram Moolenaar <Bram@vim.org>
parents:
21303
diff
changeset
|
680 |
af3663df42bf
patch 8.2.1218: Vim9: cannot use 'text'->func()
Bram Moolenaar <Bram@vim.org>
parents:
21303
diff
changeset
|
681 def UseString() |
af3663df42bf
patch 8.2.1218: Vim9: cannot use 'text'->func()
Bram Moolenaar <Bram@vim.org>
parents:
21303
diff
changeset
|
682 'xyork'->MyFunc() |
af3663df42bf
patch 8.2.1218: Vim9: cannot use 'text'->func()
Bram Moolenaar <Bram@vim.org>
parents:
21303
diff
changeset
|
683 enddef |
af3663df42bf
patch 8.2.1218: Vim9: cannot use 'text'->func()
Bram Moolenaar <Bram@vim.org>
parents:
21303
diff
changeset
|
684 UseString() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
685 var->assert_equal('xyork') |
21335
af3663df42bf
patch 8.2.1218: Vim9: cannot use 'text'->func()
Bram Moolenaar <Bram@vim.org>
parents:
21303
diff
changeset
|
686 |
21544
6c67c86a202a
patch 8.2.1322: Vim9: method on double quoted string doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
21504
diff
changeset
|
687 def UseString2() |
6c67c86a202a
patch 8.2.1322: Vim9: method on double quoted string doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
21504
diff
changeset
|
688 "knife"->MyFunc() |
6c67c86a202a
patch 8.2.1322: Vim9: method on double quoted string doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
21504
diff
changeset
|
689 enddef |
6c67c86a202a
patch 8.2.1322: Vim9: method on double quoted string doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
21504
diff
changeset
|
690 UseString2() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
691 var->assert_equal('knife') |
21544
6c67c86a202a
patch 8.2.1322: Vim9: method on double quoted string doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
21504
diff
changeset
|
692 |
21475
eec2d2120cde
patch 8.2.1288: Vim9: cannot use mark in range
Bram Moolenaar <Bram@vim.org>
parents:
21469
diff
changeset
|
693 # prepending a colon makes it a mark |
eec2d2120cde
patch 8.2.1288: Vim9: cannot use mark in range
Bram Moolenaar <Bram@vim.org>
parents:
21469
diff
changeset
|
694 new |
eec2d2120cde
patch 8.2.1288: Vim9: cannot use mark in range
Bram Moolenaar <Bram@vim.org>
parents:
21469
diff
changeset
|
695 setline(1, ['aaa', 'bbb', 'ccc']) |
eec2d2120cde
patch 8.2.1288: Vim9: cannot use mark in range
Bram Moolenaar <Bram@vim.org>
parents:
21469
diff
changeset
|
696 normal! 3Gmt1G |
eec2d2120cde
patch 8.2.1288: Vim9: cannot use mark in range
Bram Moolenaar <Bram@vim.org>
parents:
21469
diff
changeset
|
697 :'t |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
698 getcurpos()[1]->assert_equal(3) |
21475
eec2d2120cde
patch 8.2.1288: Vim9: cannot use mark in range
Bram Moolenaar <Bram@vim.org>
parents:
21469
diff
changeset
|
699 bwipe! |
eec2d2120cde
patch 8.2.1288: Vim9: cannot use mark in range
Bram Moolenaar <Bram@vim.org>
parents:
21469
diff
changeset
|
700 |
21118
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
701 MyFunc( |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
702 'continued' |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
703 ) |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
704 assert_equal('continued', |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
705 var |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
706 ) |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
707 |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
708 call MyFunc( |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
709 'more' |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
710 .. |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
711 'lines' |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
712 ) |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
713 assert_equal( |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
714 'morelines', |
b0baa80cb53f
patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents:
21089
diff
changeset
|
715 var) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
716 END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
717 writefile(lines, 'Xcall.vim') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
718 source Xcall.vim |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
719 delete('Xcall.vim') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
720 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
721 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
722 def Test_vim9script_call_fail_decl() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
723 let lines =<< trim END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
724 vim9script |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
725 let var = '' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
726 def MyFunc(arg: string) |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
727 let var = 123 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
728 enddef |
20528
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20433
diff
changeset
|
729 defcompile |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
730 END |
21463
7f36d36f7195
patch 8.2.1282: Vim9: crash when using CheckScriptFailure()
Bram Moolenaar <Bram@vim.org>
parents:
21441
diff
changeset
|
731 CheckScriptFailure(lines, 'E1054:') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
732 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
733 |
21383
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
734 def Test_vim9script_call_fail_type() |
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
735 let lines =<< trim END |
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
736 vim9script |
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
737 def MyFunc(arg: string) |
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
738 echo arg |
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
739 enddef |
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
740 MyFunc(1234) |
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
741 END |
22004
a9e60176dcd3
patch 8.2.1551: Vim9: error for argument type does not mention the number
Bram Moolenaar <Bram@vim.org>
parents:
22002
diff
changeset
|
742 CheckScriptFailure(lines, 'E1013: argument 1: type mismatch, expected string but got number') |
21383
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
743 enddef |
f25d007f90ac
patch 8.2.1242: Vim9: no error if calling a function with wrong type
Bram Moolenaar <Bram@vim.org>
parents:
21353
diff
changeset
|
744 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
745 def Test_vim9script_call_fail_const() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
746 let lines =<< trim END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
747 vim9script |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
748 const var = '' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
749 def MyFunc(arg: string) |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
750 var = 'asdf' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
751 enddef |
20528
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20433
diff
changeset
|
752 defcompile |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
753 END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
754 writefile(lines, 'Xcall_const.vim') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
755 assert_fails('source Xcall_const.vim', 'E46:', '', 1, 'MyFunc') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
756 delete('Xcall_const.vim') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
757 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
758 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
759 " Test that inside :function a Python function can be defined, :def is not |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
760 " recognized. |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
761 func Test_function_python() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
762 CheckFeature python3 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
763 let py = 'python3' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
764 execute py "<< EOF" |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
765 def do_something(): |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
766 return 1 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
767 EOF |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
768 endfunc |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
769 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
770 def Test_delfunc() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
771 let lines =<< trim END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
772 vim9script |
20189
63cc54100ae4
patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
773 def g:GoneSoon() |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
774 echo 'hello' |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
775 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
776 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
777 def CallGoneSoon() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
778 GoneSoon() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
779 enddef |
20528
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20433
diff
changeset
|
780 defcompile |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
781 |
20189
63cc54100ae4
patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents:
20142
diff
changeset
|
782 delfunc g:GoneSoon |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
783 CallGoneSoon() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
784 END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
785 writefile(lines, 'XToDelFunc') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
786 assert_fails('so XToDelFunc', 'E933:', '', 1, 'CallGoneSoon') |
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
787 assert_fails('so XToDelFunc', 'E933:', '', 1, 'CallGoneSoon') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
788 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
789 delete('XToDelFunc') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
790 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
791 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
792 def Test_redef_failure() |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
793 writefile(['def Func0(): string', 'return "Func0"', 'enddef'], 'Xdef') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
794 so Xdef |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
795 writefile(['def Func1(): string', 'return "Func1"', 'enddef'], 'Xdef') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
796 so Xdef |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
797 writefile(['def! Func0(): string', 'enddef', 'defcompile'], 'Xdef') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
798 assert_fails('so Xdef', 'E1027:', '', 1, 'Func0') |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
799 writefile(['def Func2(): string', 'return "Func2"', 'enddef'], 'Xdef') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
800 so Xdef |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
801 delete('Xdef') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
802 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
803 g:Func0()->assert_equal(0) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
804 g:Func1()->assert_equal('Func1') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
805 g:Func2()->assert_equal('Func2') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
806 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
807 delfunc! Func0 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
808 delfunc! Func1 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
809 delfunc! Func2 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
810 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
811 |
20142
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
812 def Test_vim9script_func() |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
813 let lines =<< trim END |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
814 vim9script |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
815 func Func(arg) |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
816 echo a:arg |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
817 endfunc |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
818 Func('text') |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
819 END |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
820 writefile(lines, 'XVim9Func') |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
821 so XVim9Func |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
822 |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
823 delete('XVim9Func') |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
824 enddef |
fe8d0a4344df
patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Bram Moolenaar <Bram@vim.org>
parents:
20140
diff
changeset
|
825 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
826 " Test for internal functions returning different types |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
827 func Test_InternalFuncRetType() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
828 let lines =<< trim END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
829 def RetFloat(): float |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
830 return ceil(1.456) |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
831 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
832 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
833 def RetListAny(): list<any> |
21759
25b659fa5ca5
patch 8.2.1429: Vim9: no error for missing white after : in dict
Bram Moolenaar <Bram@vim.org>
parents:
21751
diff
changeset
|
834 return items({'k': 'v'}) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
835 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
836 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
837 def RetListString(): list<string> |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
838 return split('a:b:c', ':') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
839 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
840 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
841 def RetListDictAny(): list<dict<any>> |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
842 return getbufinfo() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
843 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
844 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
845 def RetDictNumber(): dict<number> |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
846 return wordcount() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
847 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
848 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
849 def RetDictString(): dict<string> |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
850 return environ() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
851 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
852 END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
853 call writefile(lines, 'Xscript') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
854 source Xscript |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
855 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
856 call RetFloat()->assert_equal(2.0) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
857 call RetListAny()->assert_equal([['k', 'v']]) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
858 call RetListString()->assert_equal(['a', 'b', 'c']) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
859 call RetListDictAny()->assert_notequal([]) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
860 call RetDictNumber()->assert_notequal({}) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
861 call RetDictString()->assert_notequal({}) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
862 call delete('Xscript') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
863 endfunc |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
864 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
865 " Test for passing too many or too few arguments to internal functions |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
866 func Test_internalfunc_arg_error() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
867 let l =<< trim END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
868 def! FArgErr(): float |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
869 return ceil(1.1, 2) |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
870 enddef |
20528
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20433
diff
changeset
|
871 defcompile |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
872 END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
873 call writefile(l, 'Xinvalidarg') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
874 call assert_fails('so Xinvalidarg', 'E118:', '', 1, 'FArgErr') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
875 let l =<< trim END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
876 def! FArgErr(): float |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
877 return ceil() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
878 enddef |
20528
489cb75c76b6
patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
20433
diff
changeset
|
879 defcompile |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
880 END |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
881 call writefile(l, 'Xinvalidarg') |
22163
b6d36f0b4f03
patch 8.2.1631: test_fails() does not check the context of the line number
Bram Moolenaar <Bram@vim.org>
parents:
22159
diff
changeset
|
882 call assert_fails('so Xinvalidarg', 'E119:', '', 1, 'FArgErr') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
883 call delete('Xinvalidarg') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
884 endfunc |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
885 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
886 let s:funcResult = 0 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
887 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
888 def FuncNoArgNoRet() |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
889 s:funcResult = 11 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
890 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
891 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
892 def FuncNoArgRetNumber(): number |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
893 s:funcResult = 22 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
894 return 1234 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
895 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
896 |
19942
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
897 def FuncNoArgRetString(): string |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
898 s:funcResult = 45 |
19942
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
899 return 'text' |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
900 enddef |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
901 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
902 def FuncOneArgNoRet(arg: number) |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
903 s:funcResult = arg |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
904 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
905 |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
906 def FuncOneArgRetNumber(arg: number): number |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
907 s:funcResult = arg |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
908 return arg |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
909 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
910 |
19985
f863aa96cae5
patch 8.2.0548: Vim9: not all possible func type errors tested
Bram Moolenaar <Bram@vim.org>
parents:
19975
diff
changeset
|
911 def FuncTwoArgNoRet(one: bool, two: number) |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
912 s:funcResult = two |
19985
f863aa96cae5
patch 8.2.0548: Vim9: not all possible func type errors tested
Bram Moolenaar <Bram@vim.org>
parents:
19975
diff
changeset
|
913 enddef |
f863aa96cae5
patch 8.2.0548: Vim9: not all possible func type errors tested
Bram Moolenaar <Bram@vim.org>
parents:
19975
diff
changeset
|
914 |
19942
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
915 def FuncOneArgRetString(arg: string): string |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
916 return arg |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
917 enddef |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
918 |
19926
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
919 def FuncOneArgRetAny(arg: any): any |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
920 return arg |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
921 enddef |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
922 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
923 def Test_func_type() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
924 let Ref1: func() |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
925 s:funcResult = 0 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
926 Ref1 = FuncNoArgNoRet |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
927 Ref1() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
928 s:funcResult->assert_equal(11) |
19922
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
929 |
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
930 let Ref2: func |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
931 s:funcResult = 0 |
19922
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
932 Ref2 = FuncNoArgNoRet |
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
933 Ref2() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
934 s:funcResult->assert_equal(11) |
19922
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
935 |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
936 s:funcResult = 0 |
19922
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
937 Ref2 = FuncOneArgNoRet |
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
938 Ref2(12) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
939 s:funcResult->assert_equal(12) |
19922
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
940 |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
941 s:funcResult = 0 |
19922
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
942 Ref2 = FuncNoArgRetNumber |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
943 Ref2()->assert_equal(1234) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
944 s:funcResult->assert_equal(22) |
19922
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
945 |
21921
e420f3cf60e2
patch 8.2.1510: using "var" in :def function may refer to legacy script var
Bram Moolenaar <Bram@vim.org>
parents:
21913
diff
changeset
|
946 s:funcResult = 0 |
19922
1f42c49c3d29
patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Bram Moolenaar <Bram@vim.org>
parents:
19912
diff
changeset
|
947 Ref2 = FuncOneArgRetNumber |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
948 Ref2(13)->assert_equal(13) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
949 s:funcResult->assert_equal(13) |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
950 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
951 |
21162
3158cc2384cc
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21160
diff
changeset
|
952 def Test_repeat_return_type() |
3158cc2384cc
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21160
diff
changeset
|
953 let res = 0 |
3158cc2384cc
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21160
diff
changeset
|
954 for n in repeat([1], 3) |
3158cc2384cc
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21160
diff
changeset
|
955 res += n |
3158cc2384cc
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21160
diff
changeset
|
956 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
957 res->assert_equal(3) |
21164
4a190861f0cc
patch 8.2.1133: Vim9: return type of add() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21162
diff
changeset
|
958 |
4a190861f0cc
patch 8.2.1133: Vim9: return type of add() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21162
diff
changeset
|
959 res = 0 |
4a190861f0cc
patch 8.2.1133: Vim9: return type of add() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21162
diff
changeset
|
960 for n in add([1, 2], 3) |
4a190861f0cc
patch 8.2.1133: Vim9: return type of add() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21162
diff
changeset
|
961 res += n |
4a190861f0cc
patch 8.2.1133: Vim9: return type of add() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21162
diff
changeset
|
962 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
963 res->assert_equal(6) |
21162
3158cc2384cc
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21160
diff
changeset
|
964 enddef |
3158cc2384cc
patch 8.2.1132: Vim9: return type of repeat() is not specific enough
Bram Moolenaar <Bram@vim.org>
parents:
21160
diff
changeset
|
965 |
21170
8c494353c6bc
patch 8.2.1136: Vim9: return type of argv() is always any
Bram Moolenaar <Bram@vim.org>
parents:
21164
diff
changeset
|
966 def Test_argv_return_type() |
8c494353c6bc
patch 8.2.1136: Vim9: return type of argv() is always any
Bram Moolenaar <Bram@vim.org>
parents:
21164
diff
changeset
|
967 next fileone filetwo |
8c494353c6bc
patch 8.2.1136: Vim9: return type of argv() is always any
Bram Moolenaar <Bram@vim.org>
parents:
21164
diff
changeset
|
968 let res = '' |
8c494353c6bc
patch 8.2.1136: Vim9: return type of argv() is always any
Bram Moolenaar <Bram@vim.org>
parents:
21164
diff
changeset
|
969 for name in argv() |
8c494353c6bc
patch 8.2.1136: Vim9: return type of argv() is always any
Bram Moolenaar <Bram@vim.org>
parents:
21164
diff
changeset
|
970 res ..= name |
8c494353c6bc
patch 8.2.1136: Vim9: return type of argv() is always any
Bram Moolenaar <Bram@vim.org>
parents:
21164
diff
changeset
|
971 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
972 res->assert_equal('fileonefiletwo') |
21170
8c494353c6bc
patch 8.2.1136: Vim9: return type of argv() is always any
Bram Moolenaar <Bram@vim.org>
parents:
21164
diff
changeset
|
973 enddef |
8c494353c6bc
patch 8.2.1136: Vim9: return type of argv() is always any
Bram Moolenaar <Bram@vim.org>
parents:
21164
diff
changeset
|
974 |
19942
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
975 def Test_func_type_part() |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
976 let RefVoid: func: void |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
977 RefVoid = FuncNoArgNoRet |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
978 RefVoid = FuncOneArgNoRet |
21821
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
979 CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetNumber'], 'E1012: type mismatch, expected func() but got func(): number') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
980 CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetString'], 'E1012: type mismatch, expected func() but got func(): string') |
19942
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
981 |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
982 let RefAny: func(): any |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
983 RefAny = FuncNoArgRetNumber |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
984 RefAny = FuncNoArgRetString |
21821
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
985 CheckDefFailure(['let RefAny: func(): any', 'RefAny = FuncNoArgNoRet'], 'E1012: type mismatch, expected func(): any but got func()') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
986 CheckDefFailure(['let RefAny: func(): any', 'RefAny = FuncOneArgNoRet'], 'E1012: type mismatch, expected func(): any but got func(number)') |
19942
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
987 |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
988 let RefNr: func: number |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
989 RefNr = FuncNoArgRetNumber |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
990 RefNr = FuncOneArgRetNumber |
21821
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
991 CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgNoRet'], 'E1012: type mismatch, expected func(): number but got func()') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
992 CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1012: type mismatch, expected func(): number but got func(): string') |
19942
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
993 |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
994 let RefStr: func: string |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
995 RefStr = FuncNoArgRetString |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
996 RefStr = FuncOneArgRetString |
21821
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
997 CheckDefFailure(['let RefStr: func: string', 'RefStr = FuncNoArgNoRet'], 'E1012: type mismatch, expected func(): string but got func()') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
998 CheckDefFailure(['let RefStr: func: string', 'RefStr = FuncNoArgRetNumber'], 'E1012: type mismatch, expected func(): string but got func(): number') |
19942
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
999 enddef |
b471038ec3ea
patch 8.2.0527: Vim9: function types insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19932
diff
changeset
|
1000 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1001 def Test_func_type_fails() |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1002 CheckDefFailure(['let ref1: func()'], 'E704:') |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1003 |
21821
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
1004 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncNoArgRetNumber'], 'E1012: type mismatch, expected func() but got func(): number') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
1005 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgNoRet'], 'E1012: type mismatch, expected func() but got func(number)') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
1006 CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1012: type mismatch, expected func() but got func(number): number') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
1007 CheckDefFailure(['let Ref1: func(bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: type mismatch, expected func(bool) but got func(bool, number)') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
1008 CheckDefFailure(['let Ref1: func(?bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: type mismatch, expected func(?bool) but got func(bool, number)') |
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
1009 CheckDefFailure(['let Ref1: func(...bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: type mismatch, expected func(...bool) but got func(bool, number)') |
19985
f863aa96cae5
patch 8.2.0548: Vim9: not all possible func type errors tested
Bram Moolenaar <Bram@vim.org>
parents:
19975
diff
changeset
|
1010 |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
1011 CheckDefFailure(['let RefWrong: func(string ,number)'], 'E1068:') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
1012 CheckDefFailure(['let RefWrong: func(string,number)'], 'E1069:') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
1013 CheckDefFailure(['let RefWrong: func(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'], 'E1005:') |
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
1014 CheckDefFailure(['let RefWrong: func(bool):string'], 'E1069:') |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1015 enddef |
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1016 |
19926
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1017 def Test_func_return_type() |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1018 let nr: number |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1019 nr = FuncNoArgRetNumber() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1020 nr->assert_equal(1234) |
19926
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1021 |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1022 nr = FuncOneArgRetAny(122) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1023 nr->assert_equal(122) |
19926
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1024 |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1025 let str: string |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1026 str = FuncOneArgRetAny('yes') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1027 str->assert_equal('yes') |
19926
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1028 |
21821
0deb6f96a5a3
patch 8.2.1460: error messages are spread out
Bram Moolenaar <Bram@vim.org>
parents:
21795
diff
changeset
|
1029 CheckDefFailure(['let str: string', 'str = FuncNoArgRetNumber()'], 'E1012: type mismatch, expected string but got number') |
19926
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1030 enddef |
d286bfc44149
patch 8.2.0519: Vim9: return type not properly checked
Bram Moolenaar <Bram@vim.org>
parents:
19922
diff
changeset
|
1031 |
20015
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1032 def MultiLine( |
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1033 arg1: string, |
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1034 arg2 = 1234, |
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1035 ...rest: list<string> |
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1036 ): string |
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1037 return arg1 .. arg2 .. join(rest, '-') |
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1038 enddef |
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1039 |
20023
c85d4e173cc9
patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents:
20017
diff
changeset
|
1040 def MultiLineComment( |
c85d4e173cc9
patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents:
20017
diff
changeset
|
1041 arg1: string, # comment |
c85d4e173cc9
patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents:
20017
diff
changeset
|
1042 arg2 = 1234, # comment |
c85d4e173cc9
patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents:
20017
diff
changeset
|
1043 ...rest: list<string> # comment |
c85d4e173cc9
patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents:
20017
diff
changeset
|
1044 ): string # comment |
c85d4e173cc9
patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents:
20017
diff
changeset
|
1045 return arg1 .. arg2 .. join(rest, '-') |
c85d4e173cc9
patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents:
20017
diff
changeset
|
1046 enddef |
c85d4e173cc9
patch 8.2.0567: Vim9: cannot put comments halfway expressions
Bram Moolenaar <Bram@vim.org>
parents:
20017
diff
changeset
|
1047 |
20015
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1048 def Test_multiline() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1049 MultiLine('text')->assert_equal('text1234') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1050 MultiLine('text', 777)->assert_equal('text777') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1051 MultiLine('text', 777, 'one')->assert_equal('text777one') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1052 MultiLine('text', 777, 'one', 'two')->assert_equal('text777one-two') |
20015
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1053 enddef |
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1054 |
20017
ee823254dda5
patch 8.2.0564: Vim9: calling a def function from non-vim9 may fail
Bram Moolenaar <Bram@vim.org>
parents:
20015
diff
changeset
|
1055 func Test_multiline_not_vim9() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1056 call MultiLine('text')->assert_equal('text1234') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1057 call MultiLine('text', 777)->assert_equal('text777') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1058 call MultiLine('text', 777, 'one')->assert_equal('text777one') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1059 call MultiLine('text', 777, 'one', 'two')->assert_equal('text777one-two') |
20017
ee823254dda5
patch 8.2.0564: Vim9: calling a def function from non-vim9 may fail
Bram Moolenaar <Bram@vim.org>
parents:
20015
diff
changeset
|
1060 endfunc |
ee823254dda5
patch 8.2.0564: Vim9: calling a def function from non-vim9 may fail
Bram Moolenaar <Bram@vim.org>
parents:
20015
diff
changeset
|
1061 |
20015
c001ee73519a
patch 8.2.0563: Vim9: cannot split a function line
Bram Moolenaar <Bram@vim.org>
parents:
19993
diff
changeset
|
1062 |
19932
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1063 " When using CheckScriptFailure() for the below test, E1010 is generated instead |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1064 " of E1056. |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1065 func Test_E1056_1059() |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1066 let caught_1056 = 0 |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1067 try |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1068 def F(): |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1069 return 1 |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1070 enddef |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1071 catch /E1056:/ |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1072 let caught_1056 = 1 |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1073 endtry |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1074 eval caught_1056->assert_equal(1) |
19932
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1075 |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1076 let caught_1059 = 0 |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1077 try |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1078 def F5(items : list) |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1079 echo 'a' |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1080 enddef |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1081 catch /E1059:/ |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1082 let caught_1059 = 1 |
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1083 endtry |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1084 eval caught_1059->assert_equal(1) |
19932
2c4d9ca33769
patch 8.2.0522: several errors are not tested for
Bram Moolenaar <Bram@vim.org>
parents:
19926
diff
changeset
|
1085 endfunc |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1086 |
20287
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1087 func DelMe() |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1088 echo 'DelMe' |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1089 endfunc |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1090 |
21685
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1091 def Test_error_reporting() |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1092 # comment lines at the start of the function |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1093 let lines =<< trim END |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1094 " comment |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1095 def Func() |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1096 # comment |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1097 # comment |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1098 invalid |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1099 enddef |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1100 defcompile |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1101 END |
22264
e0a4d029cb87
patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents:
22236
diff
changeset
|
1102 writefile(lines, 'Xdef') |
21685
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1103 try |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1104 source Xdef |
21793
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1105 assert_report('should have failed') |
21685
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1106 catch /E476:/ |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1107 v:exception->assert_match('Invalid command: invalid') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1108 v:throwpoint->assert_match(', line 3$') |
21685
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1109 endtry |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1110 |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1111 # comment lines after the start of the function |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1112 lines =<< trim END |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1113 " comment |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1114 def Func() |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1115 let x = 1234 |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1116 # comment |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1117 # comment |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1118 invalid |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1119 enddef |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1120 defcompile |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1121 END |
22264
e0a4d029cb87
patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents:
22236
diff
changeset
|
1122 writefile(lines, 'Xdef') |
21685
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1123 try |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1124 source Xdef |
21793
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1125 assert_report('should have failed') |
21685
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1126 catch /E476:/ |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1127 v:exception->assert_match('Invalid command: invalid') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1128 v:throwpoint->assert_match(', line 4$') |
21685
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1129 endtry |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1130 |
21793
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1131 lines =<< trim END |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1132 vim9script |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1133 def Func() |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1134 let db = #{foo: 1, bar: 2} |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1135 # comment |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1136 let x = db.asdf |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1137 enddef |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1138 defcompile |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1139 Func() |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1140 END |
22264
e0a4d029cb87
patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents:
22236
diff
changeset
|
1141 writefile(lines, 'Xdef') |
21793
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1142 try |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1143 source Xdef |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1144 assert_report('should have failed') |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1145 catch /E716:/ |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1146 v:throwpoint->assert_match('_Func, line 3$') |
21793
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1147 endtry |
0706bd071fa3
patch 8.2.1446: Vim9: line number in error message is not correct
Bram Moolenaar <Bram@vim.org>
parents:
21759
diff
changeset
|
1148 |
22264
e0a4d029cb87
patch 8.2.1681: Vim9: unnessary :call commands in tests
Bram Moolenaar <Bram@vim.org>
parents:
22236
diff
changeset
|
1149 delete('Xdef') |
21685
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1150 enddef |
26a4b53c4587
patch 8.2.1392: Vim9: line number incorrect after skipping over comment lines
Bram Moolenaar <Bram@vim.org>
parents:
21660
diff
changeset
|
1151 |
20287
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1152 def Test_deleted_function() |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1153 CheckDefExecFailure([ |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1154 'let RefMe: func = function("g:DelMe")', |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1155 'delfunc g:DelMe', |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1156 'echo RefMe()'], 'E117:') |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1157 enddef |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1158 |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1159 def Test_unknown_function() |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1160 CheckDefExecFailure([ |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1161 'let Ref: func = function("NotExist")', |
21265
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
21263
diff
changeset
|
1162 'delfunc g:NotExist'], 'E700:') |
20287
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1163 enddef |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20281
diff
changeset
|
1164 |
20244
23d75968ca5e
patch 8.2.0677: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20189
diff
changeset
|
1165 def RefFunc(Ref: func(string): string): string |
23d75968ca5e
patch 8.2.0677: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20189
diff
changeset
|
1166 return Ref('more') |
23d75968ca5e
patch 8.2.0677: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20189
diff
changeset
|
1167 enddef |
23d75968ca5e
patch 8.2.0677: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20189
diff
changeset
|
1168 |
23d75968ca5e
patch 8.2.0677: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20189
diff
changeset
|
1169 def Test_closure_simple() |
23d75968ca5e
patch 8.2.0677: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20189
diff
changeset
|
1170 let local = 'some ' |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1171 RefFunc({s -> local .. s})->assert_equal('some more') |
20244
23d75968ca5e
patch 8.2.0677: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20189
diff
changeset
|
1172 enddef |
23d75968ca5e
patch 8.2.0677: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20189
diff
changeset
|
1173 |
20247
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1174 def MakeRef() |
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1175 let local = 'some ' |
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1176 g:Ref = {s -> local .. s} |
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1177 enddef |
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1178 |
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1179 def Test_closure_ref_after_return() |
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1180 MakeRef() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1181 g:Ref('thing')->assert_equal('some thing') |
20247
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1182 unlet g:Ref |
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1183 enddef |
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1184 |
20255
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1185 def MakeTwoRefs() |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1186 let local = ['some'] |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1187 g:Extend = {s -> local->add(s)} |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1188 g:Read = {-> local} |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1189 enddef |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1190 |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1191 def Test_closure_two_refs() |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1192 MakeTwoRefs() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1193 join(g:Read(), ' ')->assert_equal('some') |
20255
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1194 g:Extend('more') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1195 join(g:Read(), ' ')->assert_equal('some more') |
20255
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1196 g:Extend('even') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1197 join(g:Read(), ' ')->assert_equal('some more even') |
20255
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1198 |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1199 unlet g:Extend |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1200 unlet g:Read |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1201 enddef |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1202 |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1203 def ReadRef(Ref: func(): list<string>): string |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1204 return join(Ref(), ' ') |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1205 enddef |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1206 |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1207 def ExtendRef(Ref: func(string), add: string) |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1208 Ref(add) |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1209 enddef |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1210 |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1211 def Test_closure_two_indirect_refs() |
20257
683c2da4982b
patch 8.2.0684: Vim9: memory leak when using lambda
Bram Moolenaar <Bram@vim.org>
parents:
20255
diff
changeset
|
1212 MakeTwoRefs() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1213 ReadRef(g:Read)->assert_equal('some') |
20255
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1214 ExtendRef(g:Extend, 'more') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1215 ReadRef(g:Read)->assert_equal('some more') |
20255
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1216 ExtendRef(g:Extend, 'even') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1217 ReadRef(g:Read)->assert_equal('some more even') |
20255
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1218 |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1219 unlet g:Extend |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1220 unlet g:Read |
aac52c32a91f
patch 8.2.0683: Vim9: parsing type does not always work
Bram Moolenaar <Bram@vim.org>
parents:
20253
diff
changeset
|
1221 enddef |
20247
e46e72aaff74
patch 8.2.0679: Vim9: incomplete support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20244
diff
changeset
|
1222 |
20275
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1223 def MakeArgRefs(theArg: string) |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1224 let local = 'loc_val' |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1225 g:UseArg = {s -> theArg .. '/' .. local .. '/' .. s} |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1226 enddef |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1227 |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1228 def MakeArgRefsVarargs(theArg: string, ...rest: list<string>) |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1229 let local = 'the_loc' |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1230 g:UseVararg = {s -> theArg .. '/' .. local .. '/' .. s .. '/' .. join(rest)} |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1231 enddef |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1232 |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1233 def Test_closure_using_argument() |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1234 MakeArgRefs('arg_val') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1235 g:UseArg('call_val')->assert_equal('arg_val/loc_val/call_val') |
20275
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1236 |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1237 MakeArgRefsVarargs('arg_val', 'one', 'two') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1238 g:UseVararg('call_val')->assert_equal('arg_val/the_loc/call_val/one two') |
20275
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1239 |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1240 unlet g:UseArg |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1241 unlet g:UseVararg |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1242 enddef |
350bb78345ba
patch 8.2.0693: closure using argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
20257
diff
changeset
|
1243 |
20295
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1244 def MakeGetAndAppendRefs() |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1245 let local = 'a' |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1246 |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1247 def Append(arg: string) |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1248 local ..= arg |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1249 enddef |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1250 g:Append = Append |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1251 |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1252 def Get(): string |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1253 return local |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1254 enddef |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1255 g:Get = Get |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1256 enddef |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1257 |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1258 def Test_closure_append_get() |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1259 MakeGetAndAppendRefs() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1260 g:Get()->assert_equal('a') |
20295
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1261 g:Append('-b') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1262 g:Get()->assert_equal('a-b') |
20295
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1263 g:Append('-c') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1264 g:Get()->assert_equal('a-b-c') |
20295
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1265 |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1266 unlet g:Append |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1267 unlet g:Get |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1268 enddef |
bc2c9ea94ec1
patch 8.2.0703: Vim9: closure cannot store value in outer context
Bram Moolenaar <Bram@vim.org>
parents:
20287
diff
changeset
|
1269 |
20279
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
1270 def Test_nested_closure() |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
1271 let local = 'text' |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
1272 def Closure(arg: string): string |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
1273 return local .. arg |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
1274 enddef |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1275 Closure('!!!')->assert_equal('text!!!') |
20279
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
1276 enddef |
49b50843e725
patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents:
20275
diff
changeset
|
1277 |
20433
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1278 func GetResult(Ref) |
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1279 return a:Ref('some') |
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1280 endfunc |
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1281 |
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1282 def Test_call_closure_not_compiled() |
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1283 let text = 'text' |
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1284 g:Ref = {s -> s .. text} |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1285 GetResult(g:Ref)->assert_equal('sometext') |
20433
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1286 enddef |
5950284a517f
patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Bram Moolenaar <Bram@vim.org>
parents:
20355
diff
changeset
|
1287 |
20903
54ffae914876
patch 8.2.1003: Vim9: return type of sort() is too generic
Bram Moolenaar <Bram@vim.org>
parents:
20532
diff
changeset
|
1288 def Test_sort_return_type() |
54ffae914876
patch 8.2.1003: Vim9: return type of sort() is too generic
Bram Moolenaar <Bram@vim.org>
parents:
20532
diff
changeset
|
1289 let res: list<number> |
54ffae914876
patch 8.2.1003: Vim9: return type of sort() is too generic
Bram Moolenaar <Bram@vim.org>
parents:
20532
diff
changeset
|
1290 res = [1, 2, 3]->sort() |
54ffae914876
patch 8.2.1003: Vim9: return type of sort() is too generic
Bram Moolenaar <Bram@vim.org>
parents:
20532
diff
changeset
|
1291 enddef |
54ffae914876
patch 8.2.1003: Vim9: return type of sort() is too generic
Bram Moolenaar <Bram@vim.org>
parents:
20532
diff
changeset
|
1292 |
21089
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1293 def Test_getqflist_return_type() |
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1294 let l = getqflist() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1295 l->assert_equal([]) |
21089
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1296 |
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1297 let d = getqflist(#{items: 0}) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1298 d->assert_equal(#{items: []}) |
21089
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1299 enddef |
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1300 |
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1301 def Test_getloclist_return_type() |
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1302 let l = getloclist(1) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1303 l->assert_equal([]) |
21089
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1304 |
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1305 let d = getloclist(1, #{items: 0}) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1306 d->assert_equal(#{items: []}) |
21089
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1307 enddef |
d69ead03ba93
patch 8.2.1096: Vim9: return type of getqflist() is wrong
Bram Moolenaar <Bram@vim.org>
parents:
20972
diff
changeset
|
1308 |
21174
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1309 def Test_copy_return_type() |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1310 let l = copy([1, 2, 3]) |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1311 let res = 0 |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1312 for n in l |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1313 res += n |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1314 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1315 res->assert_equal(6) |
21174
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1316 |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1317 let dl = deepcopy([1, 2, 3]) |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1318 res = 0 |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1319 for n in dl |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1320 res += n |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1321 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1322 res->assert_equal(6) |
22101
0ee66f232839
patch 8.2.1600: Vim9: cannot use "true" with deepcopy()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
1323 |
0ee66f232839
patch 8.2.1600: Vim9: cannot use "true" with deepcopy()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
1324 dl = deepcopy([1, 2, 3], true) |
21174
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1325 enddef |
95abb4b22905
patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any
Bram Moolenaar <Bram@vim.org>
parents:
21172
diff
changeset
|
1326 |
21178
fab2085e417f
patch 8.2.1140: Vim9: return type of extend() is any
Bram Moolenaar <Bram@vim.org>
parents:
21176
diff
changeset
|
1327 def Test_extend_return_type() |
fab2085e417f
patch 8.2.1140: Vim9: return type of extend() is any
Bram Moolenaar <Bram@vim.org>
parents:
21176
diff
changeset
|
1328 let l = extend([1, 2], [3]) |
fab2085e417f
patch 8.2.1140: Vim9: return type of extend() is any
Bram Moolenaar <Bram@vim.org>
parents:
21176
diff
changeset
|
1329 let res = 0 |
fab2085e417f
patch 8.2.1140: Vim9: return type of extend() is any
Bram Moolenaar <Bram@vim.org>
parents:
21176
diff
changeset
|
1330 for n in l |
fab2085e417f
patch 8.2.1140: Vim9: return type of extend() is any
Bram Moolenaar <Bram@vim.org>
parents:
21176
diff
changeset
|
1331 res += n |
fab2085e417f
patch 8.2.1140: Vim9: return type of extend() is any
Bram Moolenaar <Bram@vim.org>
parents:
21176
diff
changeset
|
1332 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1333 res->assert_equal(6) |
21178
fab2085e417f
patch 8.2.1140: Vim9: return type of extend() is any
Bram Moolenaar <Bram@vim.org>
parents:
21176
diff
changeset
|
1334 enddef |
fab2085e417f
patch 8.2.1140: Vim9: return type of extend() is any
Bram Moolenaar <Bram@vim.org>
parents:
21176
diff
changeset
|
1335 |
22103
0825ae9948f7
patch 8.2.1601: Vim9: cannot use 'true" with garbagecollect()
Bram Moolenaar <Bram@vim.org>
parents:
22101
diff
changeset
|
1336 def Test_garbagecollect() |
0825ae9948f7
patch 8.2.1601: Vim9: cannot use 'true" with garbagecollect()
Bram Moolenaar <Bram@vim.org>
parents:
22101
diff
changeset
|
1337 garbagecollect(true) |
0825ae9948f7
patch 8.2.1601: Vim9: cannot use 'true" with garbagecollect()
Bram Moolenaar <Bram@vim.org>
parents:
22101
diff
changeset
|
1338 enddef |
0825ae9948f7
patch 8.2.1601: Vim9: cannot use 'true" with garbagecollect()
Bram Moolenaar <Bram@vim.org>
parents:
22101
diff
changeset
|
1339 |
21182
7289c8b9a620
patch 8.2.1142: Vim9: return type of insert() is any
Bram Moolenaar <Bram@vim.org>
parents:
21180
diff
changeset
|
1340 def Test_insert_return_type() |
7289c8b9a620
patch 8.2.1142: Vim9: return type of insert() is any
Bram Moolenaar <Bram@vim.org>
parents:
21180
diff
changeset
|
1341 let l = insert([2, 1], 3) |
7289c8b9a620
patch 8.2.1142: Vim9: return type of insert() is any
Bram Moolenaar <Bram@vim.org>
parents:
21180
diff
changeset
|
1342 let res = 0 |
7289c8b9a620
patch 8.2.1142: Vim9: return type of insert() is any
Bram Moolenaar <Bram@vim.org>
parents:
21180
diff
changeset
|
1343 for n in l |
7289c8b9a620
patch 8.2.1142: Vim9: return type of insert() is any
Bram Moolenaar <Bram@vim.org>
parents:
21180
diff
changeset
|
1344 res += n |
7289c8b9a620
patch 8.2.1142: Vim9: return type of insert() is any
Bram Moolenaar <Bram@vim.org>
parents:
21180
diff
changeset
|
1345 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1346 res->assert_equal(6) |
21182
7289c8b9a620
patch 8.2.1142: Vim9: return type of insert() is any
Bram Moolenaar <Bram@vim.org>
parents:
21180
diff
changeset
|
1347 enddef |
7289c8b9a620
patch 8.2.1142: Vim9: return type of insert() is any
Bram Moolenaar <Bram@vim.org>
parents:
21180
diff
changeset
|
1348 |
21795
51d4e0bc2eb7
patch 8.2.1447: Vim9: return type of keys() is list<any>
Bram Moolenaar <Bram@vim.org>
parents:
21793
diff
changeset
|
1349 def Test_keys_return_type() |
51d4e0bc2eb7
patch 8.2.1447: Vim9: return type of keys() is list<any>
Bram Moolenaar <Bram@vim.org>
parents:
21793
diff
changeset
|
1350 const var: list<string> = #{a: 1, b: 2}->keys() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1351 var->assert_equal(['a', 'b']) |
21795
51d4e0bc2eb7
patch 8.2.1447: Vim9: return type of keys() is list<any>
Bram Moolenaar <Bram@vim.org>
parents:
21793
diff
changeset
|
1352 enddef |
51d4e0bc2eb7
patch 8.2.1447: Vim9: return type of keys() is list<any>
Bram Moolenaar <Bram@vim.org>
parents:
21793
diff
changeset
|
1353 |
21186
34667dc9207b
patch 8.2.1144: Vim9: return type of reverse() is any
Bram Moolenaar <Bram@vim.org>
parents:
21184
diff
changeset
|
1354 def Test_reverse_return_type() |
34667dc9207b
patch 8.2.1144: Vim9: return type of reverse() is any
Bram Moolenaar <Bram@vim.org>
parents:
21184
diff
changeset
|
1355 let l = reverse([1, 2, 3]) |
34667dc9207b
patch 8.2.1144: Vim9: return type of reverse() is any
Bram Moolenaar <Bram@vim.org>
parents:
21184
diff
changeset
|
1356 let res = 0 |
34667dc9207b
patch 8.2.1144: Vim9: return type of reverse() is any
Bram Moolenaar <Bram@vim.org>
parents:
21184
diff
changeset
|
1357 for n in l |
34667dc9207b
patch 8.2.1144: Vim9: return type of reverse() is any
Bram Moolenaar <Bram@vim.org>
parents:
21184
diff
changeset
|
1358 res += n |
34667dc9207b
patch 8.2.1144: Vim9: return type of reverse() is any
Bram Moolenaar <Bram@vim.org>
parents:
21184
diff
changeset
|
1359 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1360 res->assert_equal(6) |
21186
34667dc9207b
patch 8.2.1144: Vim9: return type of reverse() is any
Bram Moolenaar <Bram@vim.org>
parents:
21184
diff
changeset
|
1361 enddef |
34667dc9207b
patch 8.2.1144: Vim9: return type of reverse() is any
Bram Moolenaar <Bram@vim.org>
parents:
21184
diff
changeset
|
1362 |
21184
2113e94dc726
patch 8.2.1143: Vim9: return type of remove() is any
Bram Moolenaar <Bram@vim.org>
parents:
21182
diff
changeset
|
1363 def Test_remove_return_type() |
2113e94dc726
patch 8.2.1143: Vim9: return type of remove() is any
Bram Moolenaar <Bram@vim.org>
parents:
21182
diff
changeset
|
1364 let l = remove(#{one: [1, 2], two: [3, 4]}, 'one') |
2113e94dc726
patch 8.2.1143: Vim9: return type of remove() is any
Bram Moolenaar <Bram@vim.org>
parents:
21182
diff
changeset
|
1365 let res = 0 |
2113e94dc726
patch 8.2.1143: Vim9: return type of remove() is any
Bram Moolenaar <Bram@vim.org>
parents:
21182
diff
changeset
|
1366 for n in l |
2113e94dc726
patch 8.2.1143: Vim9: return type of remove() is any
Bram Moolenaar <Bram@vim.org>
parents:
21182
diff
changeset
|
1367 res += n |
2113e94dc726
patch 8.2.1143: Vim9: return type of remove() is any
Bram Moolenaar <Bram@vim.org>
parents:
21182
diff
changeset
|
1368 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1369 res->assert_equal(3) |
21184
2113e94dc726
patch 8.2.1143: Vim9: return type of remove() is any
Bram Moolenaar <Bram@vim.org>
parents:
21182
diff
changeset
|
1370 enddef |
2113e94dc726
patch 8.2.1143: Vim9: return type of remove() is any
Bram Moolenaar <Bram@vim.org>
parents:
21182
diff
changeset
|
1371 |
21180
dde4c2e84f5c
patch 8.2.1141: Vim9: return type of filter() is any
Bram Moolenaar <Bram@vim.org>
parents:
21178
diff
changeset
|
1372 def Test_filter_return_type() |
dde4c2e84f5c
patch 8.2.1141: Vim9: return type of filter() is any
Bram Moolenaar <Bram@vim.org>
parents:
21178
diff
changeset
|
1373 let l = filter([1, 2, 3], {-> 1}) |
dde4c2e84f5c
patch 8.2.1141: Vim9: return type of filter() is any
Bram Moolenaar <Bram@vim.org>
parents:
21178
diff
changeset
|
1374 let res = 0 |
dde4c2e84f5c
patch 8.2.1141: Vim9: return type of filter() is any
Bram Moolenaar <Bram@vim.org>
parents:
21178
diff
changeset
|
1375 for n in l |
dde4c2e84f5c
patch 8.2.1141: Vim9: return type of filter() is any
Bram Moolenaar <Bram@vim.org>
parents:
21178
diff
changeset
|
1376 res += n |
dde4c2e84f5c
patch 8.2.1141: Vim9: return type of filter() is any
Bram Moolenaar <Bram@vim.org>
parents:
21178
diff
changeset
|
1377 endfor |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1378 res->assert_equal(6) |
21180
dde4c2e84f5c
patch 8.2.1141: Vim9: return type of filter() is any
Bram Moolenaar <Bram@vim.org>
parents:
21178
diff
changeset
|
1379 enddef |
dde4c2e84f5c
patch 8.2.1141: Vim9: return type of filter() is any
Bram Moolenaar <Bram@vim.org>
parents:
21178
diff
changeset
|
1380 |
21855
c8456ff7a4c3
patch 8.2.1477: Vim9: error when using bufnr('%')
Bram Moolenaar <Bram@vim.org>
parents:
21821
diff
changeset
|
1381 def Test_bufnr() |
c8456ff7a4c3
patch 8.2.1477: Vim9: error when using bufnr('%')
Bram Moolenaar <Bram@vim.org>
parents:
21821
diff
changeset
|
1382 let buf = bufnr() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1383 bufnr('%')->assert_equal(buf) |
22081
2b9a2bc77b42
patch 8.2.1590: Vim9: bufnr() doesn't take "true" argument
Bram Moolenaar <Bram@vim.org>
parents:
22055
diff
changeset
|
1384 |
2b9a2bc77b42
patch 8.2.1590: Vim9: bufnr() doesn't take "true" argument
Bram Moolenaar <Bram@vim.org>
parents:
22055
diff
changeset
|
1385 buf = bufnr('Xdummy', true) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1386 buf->assert_notequal(-1) |
22081
2b9a2bc77b42
patch 8.2.1590: Vim9: bufnr() doesn't take "true" argument
Bram Moolenaar <Bram@vim.org>
parents:
22055
diff
changeset
|
1387 exe 'bwipe! ' .. buf |
21855
c8456ff7a4c3
patch 8.2.1477: Vim9: error when using bufnr('%')
Bram Moolenaar <Bram@vim.org>
parents:
21821
diff
changeset
|
1388 enddef |
c8456ff7a4c3
patch 8.2.1477: Vim9: error when using bufnr('%')
Bram Moolenaar <Bram@vim.org>
parents:
21821
diff
changeset
|
1389 |
21899
8fe86125dcba
patch 8.2.1499: Vim9: error when using "$" with col()
Bram Moolenaar <Bram@vim.org>
parents:
21879
diff
changeset
|
1390 def Test_col() |
8fe86125dcba
patch 8.2.1499: Vim9: error when using "$" with col()
Bram Moolenaar <Bram@vim.org>
parents:
21879
diff
changeset
|
1391 new |
8fe86125dcba
patch 8.2.1499: Vim9: error when using "$" with col()
Bram Moolenaar <Bram@vim.org>
parents:
21879
diff
changeset
|
1392 setline(1, 'asdf') |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1393 col([1, '$'])->assert_equal(5) |
21899
8fe86125dcba
patch 8.2.1499: Vim9: error when using "$" with col()
Bram Moolenaar <Bram@vim.org>
parents:
21879
diff
changeset
|
1394 enddef |
8fe86125dcba
patch 8.2.1499: Vim9: error when using "$" with col()
Bram Moolenaar <Bram@vim.org>
parents:
21879
diff
changeset
|
1395 |
22085
79dd6062d15c
patch 8.2.1592: Vim9: passing "true" to char2nr() fails
Bram Moolenaar <Bram@vim.org>
parents:
22081
diff
changeset
|
1396 def Test_char2nr() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1397 char2nr('あ', true)->assert_equal(12354) |
22085
79dd6062d15c
patch 8.2.1592: Vim9: passing "true" to char2nr() fails
Bram Moolenaar <Bram@vim.org>
parents:
22081
diff
changeset
|
1398 enddef |
79dd6062d15c
patch 8.2.1592: Vim9: passing "true" to char2nr() fails
Bram Moolenaar <Bram@vim.org>
parents:
22081
diff
changeset
|
1399 |
21660
9a2ce62b93e9
patch 8.2.1380: Vim9: return type of getreg() is always a string
Bram Moolenaar <Bram@vim.org>
parents:
21630
diff
changeset
|
1400 def Test_getreg_return_type() |
9a2ce62b93e9
patch 8.2.1380: Vim9: return type of getreg() is always a string
Bram Moolenaar <Bram@vim.org>
parents:
21630
diff
changeset
|
1401 let s1: string = getreg('"') |
9a2ce62b93e9
patch 8.2.1380: Vim9: return type of getreg() is always a string
Bram Moolenaar <Bram@vim.org>
parents:
21630
diff
changeset
|
1402 let s2: string = getreg('"', 1) |
9a2ce62b93e9
patch 8.2.1380: Vim9: return type of getreg() is always a string
Bram Moolenaar <Bram@vim.org>
parents:
21630
diff
changeset
|
1403 let s3: list<string> = getreg('"', 1, 1) |
9a2ce62b93e9
patch 8.2.1380: Vim9: return type of getreg() is always a string
Bram Moolenaar <Bram@vim.org>
parents:
21630
diff
changeset
|
1404 enddef |
9a2ce62b93e9
patch 8.2.1380: Vim9: return type of getreg() is always a string
Bram Moolenaar <Bram@vim.org>
parents:
21630
diff
changeset
|
1405 |
21301
60011b87aae1
patch 8.2.1201: Vim9: crash when passing number as dict key
Bram Moolenaar <Bram@vim.org>
parents:
21281
diff
changeset
|
1406 def Wrong_dict_key_type(items: list<number>): list<number> |
60011b87aae1
patch 8.2.1201: Vim9: crash when passing number as dict key
Bram Moolenaar <Bram@vim.org>
parents:
21281
diff
changeset
|
1407 return filter(items, {_, val -> get({val: 1}, 'x')}) |
60011b87aae1
patch 8.2.1201: Vim9: crash when passing number as dict key
Bram Moolenaar <Bram@vim.org>
parents:
21281
diff
changeset
|
1408 enddef |
60011b87aae1
patch 8.2.1201: Vim9: crash when passing number as dict key
Bram Moolenaar <Bram@vim.org>
parents:
21281
diff
changeset
|
1409 |
60011b87aae1
patch 8.2.1201: Vim9: crash when passing number as dict key
Bram Moolenaar <Bram@vim.org>
parents:
21281
diff
changeset
|
1410 def Test_wrong_dict_key_type() |
60011b87aae1
patch 8.2.1201: Vim9: crash when passing number as dict key
Bram Moolenaar <Bram@vim.org>
parents:
21281
diff
changeset
|
1411 assert_fails('Wrong_dict_key_type([1, 2, 3])', 'E1029:') |
60011b87aae1
patch 8.2.1201: Vim9: crash when passing number as dict key
Bram Moolenaar <Bram@vim.org>
parents:
21281
diff
changeset
|
1412 enddef |
60011b87aae1
patch 8.2.1201: Vim9: crash when passing number as dict key
Bram Moolenaar <Bram@vim.org>
parents:
21281
diff
changeset
|
1413 |
20972
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1414 def Line_continuation_in_def(dir: string = ''): string |
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1415 let path: string = empty(dir) |
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1416 \ ? 'empty' |
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1417 \ : 'full' |
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1418 return path |
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1419 enddef |
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1420 |
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1421 def Test_line_continuation_in_def() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1422 Line_continuation_in_def('.')->assert_equal('full') |
20972
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1423 enddef |
d561e3c6cd65
patch 8.2.1037: Vim9: crash when using line continuation inside :def
Bram Moolenaar <Bram@vim.org>
parents:
20945
diff
changeset
|
1424 |
21208
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1425 def Line_continuation_in_lambda(): list<number> |
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1426 let x = range(97, 100) |
21263
71bd2f9adb61
patch 8.2.1182: Vim9: no check for whitespace after comma in lambda
Bram Moolenaar <Bram@vim.org>
parents:
21208
diff
changeset
|
1427 ->map({_, v -> nr2char(v) |
21208
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1428 ->toupper()}) |
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1429 ->reverse() |
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1430 return x |
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1431 enddef |
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1432 |
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1433 def Test_line_continuation_in_lambda() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1434 Line_continuation_in_lambda()->assert_equal(['D', 'C', 'B', 'A']) |
21208
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1435 enddef |
09377fd59b2e
patch 8.2.1155: Vim9: cannot handle line break inside lambda
Bram Moolenaar <Bram@vim.org>
parents:
21186
diff
changeset
|
1436 |
21176
54c665ad2db3
patch 8.2.1139: Vim9: test for silent echo fails in some environments
Bram Moolenaar <Bram@vim.org>
parents:
21174
diff
changeset
|
1437 func Test_silent_echo() |
21172
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1438 CheckScreendump |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1439 |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1440 let lines =<< trim END |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1441 vim9script |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1442 def EchoNothing() |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1443 silent echo '' |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1444 enddef |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1445 defcompile |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1446 END |
21176
54c665ad2db3
patch 8.2.1139: Vim9: test for silent echo fails in some environments
Bram Moolenaar <Bram@vim.org>
parents:
21174
diff
changeset
|
1447 call writefile(lines, 'XTest_silent_echo') |
21172
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1448 |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1449 " Check that the balloon shows up after a mouse move |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1450 let buf = RunVimInTerminal('-S XTest_silent_echo', {'rows': 6}) |
21176
54c665ad2db3
patch 8.2.1139: Vim9: test for silent echo fails in some environments
Bram Moolenaar <Bram@vim.org>
parents:
21174
diff
changeset
|
1451 call term_sendkeys(buf, ":abc") |
21172
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1452 call VerifyScreenDump(buf, 'Test_vim9_silent_echo', {}) |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1453 |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1454 " clean up |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1455 call StopVimInTerminal(buf) |
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1456 call delete('XTest_silent_echo') |
21176
54c665ad2db3
patch 8.2.1139: Vim9: test for silent echo fails in some environments
Bram Moolenaar <Bram@vim.org>
parents:
21174
diff
changeset
|
1457 endfunc |
21172
96ae8622cfb6
patch 8.2.1137: Vim9: modifiers not cleared after compiling function
Bram Moolenaar <Bram@vim.org>
parents:
21170
diff
changeset
|
1458 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1459 """"""" builtin functions that behave differently in Vim9 |
21861
cd8dafe937ba
patch 8.2.1480: Vim9: skip expression in search() gives error
Bram Moolenaar <Bram@vim.org>
parents:
21855
diff
changeset
|
1460 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1461 def Test_bufname() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1462 split SomeFile |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1463 bufname('%')->assert_equal('SomeFile') |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1464 edit OtherFile |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1465 bufname('#')->assert_equal('SomeFile') |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1466 close |
21879
172b1746489c
patch 8.2.1489: Vim9: error when setting an option with setbufvar()
Bram Moolenaar <Bram@vim.org>
parents:
21873
diff
changeset
|
1467 enddef |
172b1746489c
patch 8.2.1489: Vim9: error when setting an option with setbufvar()
Bram Moolenaar <Bram@vim.org>
parents:
21873
diff
changeset
|
1468 |
22039
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1469 def Test_bufwinid() |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1470 let origwin = win_getid() |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1471 below split SomeFile |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1472 let SomeFileID = win_getid() |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1473 below split OtherFile |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1474 below split SomeFile |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1475 bufwinid('SomeFile')->assert_equal(SomeFileID) |
22039
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1476 |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1477 win_gotoid(origwin) |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1478 only |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1479 bwipe SomeFile |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1480 bwipe OtherFile |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1481 enddef |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1482 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1483 def Test_count() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1484 count('ABC ABC ABC', 'b', true)->assert_equal(3) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1485 count('ABC ABC ABC', 'b', false)->assert_equal(0) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1486 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1487 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1488 def Test_expand() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1489 split SomeFile |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1490 expand('%', true, true)->assert_equal(['SomeFile']) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1491 close |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1492 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1493 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1494 def Test_getbufinfo() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1495 let bufinfo = getbufinfo(bufnr()) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1496 getbufinfo('%')->assert_equal(bufinfo) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1497 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1498 edit Xtestfile1 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1499 hide edit Xtestfile2 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1500 hide enew |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1501 getbufinfo(#{bufloaded: true, buflisted: true, bufmodified: false}) |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1502 ->len()->assert_equal(3) |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1503 bwipe Xtestfile1 Xtestfile2 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1504 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1505 |
22039
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1506 def Test_getbufline() |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1507 e SomeFile |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1508 let buf = bufnr() |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1509 e # |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1510 let lines = ['aaa', 'bbb', 'ccc'] |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1511 setbufline(buf, 1, lines) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1512 getbufline('#', 1, '$')->assert_equal(lines) |
22039
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1513 |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1514 bwipe! |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1515 enddef |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1516 |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1517 def Test_getchangelist() |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1518 new |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1519 setline(1, 'some text') |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1520 let changelist = bufnr()->getchangelist() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1521 getchangelist('%')->assert_equal(changelist) |
22039
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1522 bwipe! |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1523 enddef |
f040df1bd219
patch 8.2.1569: Vim9: fixes not tested; failure in getchangelist()
Bram Moolenaar <Bram@vim.org>
parents:
22027
diff
changeset
|
1524 |
22107
679269735ec3
patch 8.2.1603: Vim9: cannot use "true" with getchar()
Bram Moolenaar <Bram@vim.org>
parents:
22105
diff
changeset
|
1525 def Test_getchar() |
22115
6c3123ea53c3
patch 8.2.1607: Vim9: getchar() test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
22113
diff
changeset
|
1526 while getchar(0) |
6c3123ea53c3
patch 8.2.1607: Vim9: getchar() test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
22113
diff
changeset
|
1527 endwhile |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1528 getchar(true)->assert_equal(0) |
22107
679269735ec3
patch 8.2.1603: Vim9: cannot use "true" with getchar()
Bram Moolenaar <Bram@vim.org>
parents:
22105
diff
changeset
|
1529 enddef |
679269735ec3
patch 8.2.1603: Vim9: cannot use "true" with getchar()
Bram Moolenaar <Bram@vim.org>
parents:
22105
diff
changeset
|
1530 |
22109
3785043f8768
patch 8.2.1604: Vim9: cannot use "true" with getcompletion()
Bram Moolenaar <Bram@vim.org>
parents:
22107
diff
changeset
|
1531 def Test_getcompletion() |
3785043f8768
patch 8.2.1604: Vim9: cannot use "true" with getcompletion()
Bram Moolenaar <Bram@vim.org>
parents:
22107
diff
changeset
|
1532 set wildignore=*.vim,*~ |
3785043f8768
patch 8.2.1604: Vim9: cannot use "true" with getcompletion()
Bram Moolenaar <Bram@vim.org>
parents:
22107
diff
changeset
|
1533 let l = getcompletion('run', 'file', true) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1534 l->assert_equal([]) |
22109
3785043f8768
patch 8.2.1604: Vim9: cannot use "true" with getcompletion()
Bram Moolenaar <Bram@vim.org>
parents:
22107
diff
changeset
|
1535 set wildignore& |
3785043f8768
patch 8.2.1604: Vim9: cannot use "true" with getcompletion()
Bram Moolenaar <Bram@vim.org>
parents:
22107
diff
changeset
|
1536 enddef |
3785043f8768
patch 8.2.1604: Vim9: cannot use "true" with getcompletion()
Bram Moolenaar <Bram@vim.org>
parents:
22107
diff
changeset
|
1537 |
22047
ed6165395d7b
patch 8.2.1573: Vim9: getreg() does not take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22045
diff
changeset
|
1538 def Test_getreg() |
ed6165395d7b
patch 8.2.1573: Vim9: getreg() does not take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22045
diff
changeset
|
1539 let lines = ['aaa', 'bbb', 'ccc'] |
ed6165395d7b
patch 8.2.1573: Vim9: getreg() does not take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22045
diff
changeset
|
1540 setreg('a', lines) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1541 getreg('a', true, true)->assert_equal(lines) |
22047
ed6165395d7b
patch 8.2.1573: Vim9: getreg() does not take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22045
diff
changeset
|
1542 enddef |
ed6165395d7b
patch 8.2.1573: Vim9: getreg() does not take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22045
diff
changeset
|
1543 |
22049
2b04c5bf4dc3
patch 8.2.1574: Vim9: glob() doesnot take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22047
diff
changeset
|
1544 def Test_glob() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1545 glob('runtest.vim', true, true, true)->assert_equal(['runtest.vim']) |
22049
2b04c5bf4dc3
patch 8.2.1574: Vim9: glob() doesnot take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22047
diff
changeset
|
1546 enddef |
2b04c5bf4dc3
patch 8.2.1574: Vim9: glob() doesnot take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22047
diff
changeset
|
1547 |
22051
342bcb9f7d34
patch 8.2.1575: Vim9: globpath() doesnot take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22049
diff
changeset
|
1548 def Test_globpath() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1549 globpath('.', 'runtest.vim', true, true, true)->assert_equal(['./runtest.vim']) |
22051
342bcb9f7d34
patch 8.2.1575: Vim9: globpath() doesnot take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22049
diff
changeset
|
1550 enddef |
342bcb9f7d34
patch 8.2.1575: Vim9: globpath() doesnot take "true" as argument
Bram Moolenaar <Bram@vim.org>
parents:
22049
diff
changeset
|
1551 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1552 def Test_has() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1553 has('eval', true)->assert_equal(1) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1554 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1555 |
22055
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1556 def Test_hasmapto() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1557 hasmapto('foobar', 'i', true)->assert_equal(0) |
22055
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1558 iabbrev foo foobar |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1559 hasmapto('foobar', 'i', true)->assert_equal(1) |
22055
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1560 iunabbrev foo |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1561 enddef |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1562 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1563 def Test_index() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1564 index(['a', 'b', 'a', 'B'], 'b', 2, true)->assert_equal(3) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1565 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1566 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1567 def Test_list2str_str2list_utf8() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1568 let s = "\u3042\u3044" |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1569 let l = [0x3042, 0x3044] |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1570 str2list(s, true)->assert_equal(l) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1571 list2str(l, true)->assert_equal(s) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1572 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1573 |
22055
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1574 def SID(): number |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1575 return expand('<SID>') |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1576 ->matchstr('<SNR>\zs\d\+\ze_$') |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1577 ->str2nr() |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1578 enddef |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1579 |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1580 def Test_maparg() |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1581 let lnum = str2nr(expand('<sflnum>')) |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1582 map foo bar |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1583 maparg('foo', '', false, true)->assert_equal(#{ |
22055
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1584 lnum: lnum + 1, |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1585 script: 0, |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1586 mode: ' ', |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1587 silent: 0, |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1588 noremap: 0, |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1589 lhs: 'foo', |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1590 lhsraw: 'foo', |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1591 nowait: 0, |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1592 expr: 0, |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1593 sid: SID(), |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1594 rhs: 'bar', |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1595 buffer: 0}) |
22055
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1596 unmap foo |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1597 enddef |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1598 |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1599 def Test_mapcheck() |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1600 iabbrev foo foobar |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1601 mapcheck('foo', 'i', true)->assert_equal('foobar') |
22055
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1602 iunabbrev foo |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1603 enddef |
88bedbb4ba75
patch 8.2.1577: Vim9: hasmapto()/mapcheck()/maparg() do nottake "true" arg
Bram Moolenaar <Bram@vim.org>
parents:
22053
diff
changeset
|
1604 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1605 def Test_nr2char() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1606 nr2char(97, true)->assert_equal('a') |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1607 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1608 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1609 def Test_readdir() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1610 eval expand('sautest')->readdir({e -> e[0] !=# '.'}) |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1611 eval expand('sautest')->readdirex({e -> e.name[0] !=# '.'}) |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1612 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1613 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1614 def Test_search() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1615 new |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1616 setline(1, ['foo', 'bar']) |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1617 let val = 0 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1618 # skip expr returns boolean |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1619 search('bar', 'W', 0, 0, {-> val == 1})->assert_equal(2) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1620 :1 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1621 search('bar', 'W', 0, 0, {-> val == 0})->assert_equal(0) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1622 # skip expr returns number, only 0 and 1 are accepted |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1623 :1 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1624 search('bar', 'W', 0, 0, {-> 0})->assert_equal(2) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1625 :1 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1626 search('bar', 'W', 0, 0, {-> 1})->assert_equal(0) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1627 assert_fails("search('bar', '', 0, 0, {-> -1})", 'E1023:') |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1628 assert_fails("search('bar', '', 0, 0, {-> -1})", 'E1023:') |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1629 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1630 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1631 def Test_searchcount() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1632 new |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1633 setline(1, "foo bar") |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1634 :/foo |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1635 searchcount(#{recompute: true}) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1636 ->assert_equal(#{ |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1637 exact_match: 1, |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1638 current: 1, |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1639 total: 1, |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1640 maxcount: 99, |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1641 incomplete: 0}) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1642 bwipe! |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1643 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1644 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1645 def Test_searchdecl() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1646 searchdecl('blah', true, true)->assert_equal(1) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1647 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1648 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1649 def Test_setbufvar() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1650 setbufvar(bufnr('%'), '&syntax', 'vim') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1651 &syntax->assert_equal('vim') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1652 setbufvar(bufnr('%'), '&ts', 16) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1653 &ts->assert_equal(16) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1654 settabwinvar(1, 1, '&syntax', 'vam') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1655 &syntax->assert_equal('vam') |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1656 settabwinvar(1, 1, '&ts', 15) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1657 &ts->assert_equal(15) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1658 setlocal ts=8 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1659 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1660 setbufvar('%', 'myvar', 123) |
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1661 getbufvar('%', 'myvar')->assert_equal(123) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1662 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1663 |
22137
faaf88167b58
patch 8.2.1618: Vim9: cannot pass "true" to setloclist()
Bram Moolenaar <Bram@vim.org>
parents:
22135
diff
changeset
|
1664 def Test_setloclist() |
faaf88167b58
patch 8.2.1618: Vim9: cannot pass "true" to setloclist()
Bram Moolenaar <Bram@vim.org>
parents:
22135
diff
changeset
|
1665 let items = [#{filename: '/tmp/file', lnum: 1, valid: true}] |
faaf88167b58
patch 8.2.1618: Vim9: cannot pass "true" to setloclist()
Bram Moolenaar <Bram@vim.org>
parents:
22135
diff
changeset
|
1666 let what = #{items: items} |
faaf88167b58
patch 8.2.1618: Vim9: cannot pass "true" to setloclist()
Bram Moolenaar <Bram@vim.org>
parents:
22135
diff
changeset
|
1667 setqflist([], ' ', what) |
faaf88167b58
patch 8.2.1618: Vim9: cannot pass "true" to setloclist()
Bram Moolenaar <Bram@vim.org>
parents:
22135
diff
changeset
|
1668 setloclist(0, [], ' ', what) |
faaf88167b58
patch 8.2.1618: Vim9: cannot pass "true" to setloclist()
Bram Moolenaar <Bram@vim.org>
parents:
22135
diff
changeset
|
1669 enddef |
faaf88167b58
patch 8.2.1618: Vim9: cannot pass "true" to setloclist()
Bram Moolenaar <Bram@vim.org>
parents:
22135
diff
changeset
|
1670 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1671 def Test_setreg() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1672 setreg('a', ['aaa', 'bbb', 'ccc']) |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1673 let reginfo = getreginfo('a') |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1674 setreg('a', reginfo) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1675 getreginfo('a')->assert_equal(reginfo) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1676 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1677 |
22139
c7fb7361df33
patch 8.2.1619: Vim9: cannot pass "true" to spellsuggest()
Bram Moolenaar <Bram@vim.org>
parents:
22137
diff
changeset
|
1678 def Test_spellsuggest() |
c7fb7361df33
patch 8.2.1619: Vim9: cannot pass "true" to spellsuggest()
Bram Moolenaar <Bram@vim.org>
parents:
22137
diff
changeset
|
1679 if !has('spell') |
c7fb7361df33
patch 8.2.1619: Vim9: cannot pass "true" to spellsuggest()
Bram Moolenaar <Bram@vim.org>
parents:
22137
diff
changeset
|
1680 MissingFeature 'spell' |
c7fb7361df33
patch 8.2.1619: Vim9: cannot pass "true" to spellsuggest()
Bram Moolenaar <Bram@vim.org>
parents:
22137
diff
changeset
|
1681 else |
c7fb7361df33
patch 8.2.1619: Vim9: cannot pass "true" to spellsuggest()
Bram Moolenaar <Bram@vim.org>
parents:
22137
diff
changeset
|
1682 spellsuggest('marrch', 1, true)->assert_equal(['March']) |
c7fb7361df33
patch 8.2.1619: Vim9: cannot pass "true" to spellsuggest()
Bram Moolenaar <Bram@vim.org>
parents:
22137
diff
changeset
|
1683 endif |
c7fb7361df33
patch 8.2.1619: Vim9: cannot pass "true" to spellsuggest()
Bram Moolenaar <Bram@vim.org>
parents:
22137
diff
changeset
|
1684 enddef |
c7fb7361df33
patch 8.2.1619: Vim9: cannot pass "true" to spellsuggest()
Bram Moolenaar <Bram@vim.org>
parents:
22137
diff
changeset
|
1685 |
22149
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1686 def Test_split() |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1687 split(' aa bb ', '\W\+', true)->assert_equal(['', 'aa', 'bb', '']) |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1688 enddef |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1689 |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1690 def Test_str2nr() |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1691 str2nr("1'000'000", 10, true)->assert_equal(1000000) |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1692 enddef |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1693 |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1694 def Test_strchars() |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1695 strchars("A\u20dd", true)->assert_equal(1) |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1696 enddef |
49b3a95adf04
patch 8.2.1624: Vim9: cannot pass "true" to split(), str2nr() and strchars()
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1697 |
22155
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1698 def Test_submatch() |
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1699 let pat = 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)' |
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1700 let Rep = {-> range(10)->map({_, v -> submatch(v, true)})->string()} |
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1701 let actual = substitute('A123456789', pat, Rep, '') |
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1702 let expected = "[['A123456789'], ['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9']]" |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1703 actual->assert_equal(expected) |
22155
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1704 enddef |
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1705 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1706 def Test_synID() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1707 new |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1708 setline(1, "text") |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1709 synID(1, 1, true)->assert_equal(0) |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1710 bwipe! |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1711 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1712 |
22155
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1713 def Test_term_gettty() |
22159
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1714 if !has('terminal') |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1715 MissingFeature 'terminal' |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1716 else |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1717 let buf = Run_shell_in_terminal({}) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1718 term_gettty(buf, true)->assert_notequal('') |
22159
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1719 StopShellInTerminal(buf) |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1720 endif |
22155
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1721 enddef |
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1722 |
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1723 def Test_term_start() |
22159
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1724 if !has('terminal') |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1725 MissingFeature 'terminal' |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1726 else |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1727 botright new |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1728 let winnr = winnr() |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1729 term_start(&shell, #{curwin: true}) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1730 winnr()->assert_equal(winnr) |
22159
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1731 bwipe! |
4b5f7869b8c0
patch 8.2.1629: test fails without terminal feature
Bram Moolenaar <Bram@vim.org>
parents:
22157
diff
changeset
|
1732 endif |
22155
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1733 enddef |
de47cb7b41e6
patch 8.2.1627: Vim9: cannot pass "true" to submatch/term_gettty/term_start
Bram Moolenaar <Bram@vim.org>
parents:
22149
diff
changeset
|
1734 |
22157
ba81f5e300b7
patch 8.2.1628: Vim9: cannot pass "true" to timer_paused()
Bram Moolenaar <Bram@vim.org>
parents:
22155
diff
changeset
|
1735 def Test_timer_paused() |
ba81f5e300b7
patch 8.2.1628: Vim9: cannot pass "true" to timer_paused()
Bram Moolenaar <Bram@vim.org>
parents:
22155
diff
changeset
|
1736 let id = timer_start(50, {-> 0}) |
ba81f5e300b7
patch 8.2.1628: Vim9: cannot pass "true" to timer_paused()
Bram Moolenaar <Bram@vim.org>
parents:
22155
diff
changeset
|
1737 timer_pause(id, true) |
ba81f5e300b7
patch 8.2.1628: Vim9: cannot pass "true" to timer_paused()
Bram Moolenaar <Bram@vim.org>
parents:
22155
diff
changeset
|
1738 let info = timer_info(id) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1739 info[0]['paused']->assert_equal(1) |
22157
ba81f5e300b7
patch 8.2.1628: Vim9: cannot pass "true" to timer_paused()
Bram Moolenaar <Bram@vim.org>
parents:
22155
diff
changeset
|
1740 timer_stop(id) |
ba81f5e300b7
patch 8.2.1628: Vim9: cannot pass "true" to timer_paused()
Bram Moolenaar <Bram@vim.org>
parents:
22155
diff
changeset
|
1741 enddef |
ba81f5e300b7
patch 8.2.1628: Vim9: cannot pass "true" to timer_paused()
Bram Moolenaar <Bram@vim.org>
parents:
22155
diff
changeset
|
1742 |
22135
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1743 def Test_win_splitmove() |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1744 split |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1745 win_splitmove(1, 2, #{vertical: true, rightbelow: true}) |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1746 close |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1747 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1748 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1749 """"""" end of builtin functions |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1750 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1751 def Fibonacci(n: number): number |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1752 if n < 2 |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1753 return n |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1754 else |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1755 return Fibonacci(n - 1) + Fibonacci(n - 2) |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1756 endif |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1757 enddef |
f45127fbe9ba
patch 8.2.1617: Vim9: cannot pass "true" to win_splitmove()
Bram Moolenaar <Bram@vim.org>
parents:
22133
diff
changeset
|
1758 |
21281
13b1567ae0c6
patch 8.2.1191: Vim9: crash when function calls itself
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
1759 def Test_recursive_call() |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1760 Fibonacci(20)->assert_equal(6765) |
21281
13b1567ae0c6
patch 8.2.1191: Vim9: crash when function calls itself
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
1761 enddef |
13b1567ae0c6
patch 8.2.1191: Vim9: crash when function calls itself
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
1762 |
21303
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1763 def TreeWalk(dir: string): list<any> |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1764 return readdir(dir)->map({_, val -> |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1765 fnamemodify(dir .. '/' .. val, ':p')->isdirectory() |
21630
3c6c52fbc8ea
patch 8.2.1365: Vim9: no error for missing white space around operator
Bram Moolenaar <Bram@vim.org>
parents:
21604
diff
changeset
|
1766 ? {val: TreeWalk(dir .. '/' .. val)} |
21303
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1767 : val |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1768 }) |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1769 enddef |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1770 |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1771 def Test_closure_in_map() |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1772 mkdir('XclosureDir/tdir', 'p') |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1773 writefile(['111'], 'XclosureDir/file1') |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1774 writefile(['222'], 'XclosureDir/file2') |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1775 writefile(['333'], 'XclosureDir/tdir/file3') |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1776 |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1777 TreeWalk('XclosureDir')->assert_equal(['file1', 'file2', {'tdir': ['file3']}]) |
21303
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1778 |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1779 delete('XclosureDir', 'rf') |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1780 enddef |
7c50dfe302f8
patch 8.2.1202: Vim9: crash when calling a closure from a builtin function
Bram Moolenaar <Bram@vim.org>
parents:
21301
diff
changeset
|
1781 |
21347
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1782 def Test_partial_call() |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1783 let Xsetlist = function('setloclist', [0]) |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1784 Xsetlist([], ' ', {'title': 'test'}) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1785 getloclist(0, {'title': 1})->assert_equal({'title': 'test'}) |
21347
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1786 |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1787 Xsetlist = function('setloclist', [0, [], ' ']) |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1788 Xsetlist({'title': 'test'}) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1789 getloclist(0, {'title': 1})->assert_equal({'title': 'test'}) |
21347
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1790 |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1791 Xsetlist = function('setqflist') |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1792 Xsetlist([], ' ', {'title': 'test'}) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1793 getqflist({'title': 1})->assert_equal({'title': 'test'}) |
21347
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1794 |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1795 Xsetlist = function('setqflist', [[], ' ']) |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1796 Xsetlist({'title': 'test'}) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1797 getqflist({'title': 1})->assert_equal({'title': 'test'}) |
21347
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1798 enddef |
d636c7bbe9ab
patch 8.2.1224: Vim9: arguments from partial are not used
Bram Moolenaar <Bram@vim.org>
parents:
21345
diff
changeset
|
1799 |
21689
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1800 def Test_cmd_modifier() |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1801 tab echo '0' |
22147
d55008685870
patch 8.2.1623: Vim9: using :call where it is not needed
Bram Moolenaar <Bram@vim.org>
parents:
22139
diff
changeset
|
1802 CheckDefFailure(['5tab echo 3'], 'E16:') |
21689
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1803 enddef |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1804 |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1805 def Test_restore_modifiers() |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1806 # check that when compiling a :def function command modifiers are not messed |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1807 # up. |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1808 let lines =<< trim END |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1809 vim9script |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1810 set eventignore= |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1811 autocmd QuickFixCmdPost * copen |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1812 def AutocmdsDisabled() |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1813 eval 0 |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1814 enddef |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1815 func Func() |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1816 noautocmd call s:AutocmdsDisabled() |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1817 let g:ei_after = &eventignore |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1818 endfunc |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1819 Func() |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1820 END |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1821 CheckScriptSuccess(lines) |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1822 g:ei_after->assert_equal('') |
21689
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1823 enddef |
10866fd07595
patch 8.2.1394: Vim9: compiling a function interferes with command modifiers
Bram Moolenaar <Bram@vim.org>
parents:
21685
diff
changeset
|
1824 |
22214
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1825 def StackTop() |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1826 eval 1 |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1827 eval 2 |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1828 # call not on fourth line |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1829 StackBot() |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1830 enddef |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1831 |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1832 def StackBot() |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1833 # throw an error |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1834 eval [][0] |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1835 enddef |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1836 |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1837 def Test_callstack_def() |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1838 try |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1839 StackTop() |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1840 catch |
22222
7b9e8fd7ea5b
patch 8.2.1660: assert functions require passing expected as first argument
Bram Moolenaar <Bram@vim.org>
parents:
22216
diff
changeset
|
1841 v:throwpoint->assert_match('Test_callstack_def\[2\]..StackTop\[4\]..StackBot, line 2') |
22214
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1842 endtry |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1843 enddef |
efa1511a5bf3
patch 8.2.1656: Vim9: callstack wrong if :def function calls :def function
Bram Moolenaar <Bram@vim.org>
parents:
22165
diff
changeset
|
1844 |
20257
683c2da4982b
patch 8.2.0684: Vim9: memory leak when using lambda
Bram Moolenaar <Bram@vim.org>
parents:
20255
diff
changeset
|
1845 |
19912
d4fa9db88d16
patch 8.2.0512: Vim9: no optional arguments in func type
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1846 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker |