Mercurial > vim
comparison src/testdir/test_vim9_builtin.vim @ 25252:acda780ffc3e v8.2.3162
patch 8.2.3162: Vim9: argument types are not checked at compile time
Commit: https://github.com/vim/vim/commit/1a71d31bf34b0b2b08517903826004ec6fd440e5
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Thu Jul 15 12:49:58 2021 +0200
patch 8.2.3162: Vim9: argument types are not checked at compile time
Problem: Vim9: argument types are not checked at compile time.
Solution: Add more type checks. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/8560)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 15 Jul 2021 13:00:06 +0200 |
parents | 532faf893d37 |
children | a3c07227ffde |
comparison
equal
deleted
inserted
replaced
25251:6024f64e0d2b | 25252:acda780ffc3e |
---|---|
73 assert_equal(2.0, abs(-2.0)) | 73 assert_equal(2.0, abs(-2.0)) |
74 assert_equal(3.0, abs(3.0)) | 74 assert_equal(3.0, abs(3.0)) |
75 endif | 75 endif |
76 enddef | 76 enddef |
77 | 77 |
78 def Test_add_blob() | |
79 var b1: blob = 0z12 | |
80 add(b1, 0x34) | |
81 assert_equal(0z1234, b1) | |
82 | |
83 var b2: blob # defaults to empty blob | |
84 add(b2, 0x67) | |
85 assert_equal(0z67, b2) | |
86 | |
87 var lines =<< trim END | |
88 var b: blob | |
89 add(b, "x") | |
90 END | |
91 CheckDefFailure(lines, 'E1012:', 2) | |
92 | |
93 lines =<< trim END | |
94 add(test_null_blob(), 123) | |
95 END | |
96 CheckDefExecAndScriptFailure(lines, 'E1131:', 1) | |
97 | |
98 lines =<< trim END | |
99 var b: blob = test_null_blob() | |
100 add(b, 123) | |
101 END | |
102 CheckDefExecFailure(lines, 'E1131:', 2) | |
103 | |
104 # Getting variable with NULL blob allocates a new blob at script level | |
105 lines =<< trim END | |
106 vim9script | |
107 var b: blob = test_null_blob() | |
108 add(b, 123) | |
109 END | |
110 CheckScriptSuccess(lines) | |
111 enddef | |
112 | |
78 def Test_add_list() | 113 def Test_add_list() |
79 var l: list<number> # defaults to empty list | 114 var l: list<number> # defaults to empty list |
80 add(l, 9) | 115 add(l, 9) |
81 assert_equal([9], l) | 116 assert_equal([9], l) |
82 | 117 |
116 vim9script | 151 vim9script |
117 var l: list<string> | 152 var l: list<string> |
118 l->add(123) | 153 l->add(123) |
119 END | 154 END |
120 CheckScriptFailure(lines, 'E1012: Type mismatch; expected string but got number', 3) | 155 CheckScriptFailure(lines, 'E1012: Type mismatch; expected string but got number', 3) |
121 enddef | |
122 | |
123 def Test_add_blob() | |
124 var b1: blob = 0z12 | |
125 add(b1, 0x34) | |
126 assert_equal(0z1234, b1) | |
127 | |
128 var b2: blob # defaults to empty blob | |
129 add(b2, 0x67) | |
130 assert_equal(0z67, b2) | |
131 | |
132 var lines =<< trim END | |
133 var b: blob | |
134 add(b, "x") | |
135 END | |
136 CheckDefFailure(lines, 'E1012:', 2) | |
137 | |
138 lines =<< trim END | |
139 add(test_null_blob(), 123) | |
140 END | |
141 CheckDefExecAndScriptFailure(lines, 'E1131:', 1) | |
142 | |
143 lines =<< trim END | |
144 var b: blob = test_null_blob() | |
145 add(b, 123) | |
146 END | |
147 CheckDefExecFailure(lines, 'E1131:', 2) | |
148 | |
149 # Getting variable with NULL blob allocates a new blob at script level | |
150 lines =<< trim END | |
151 vim9script | |
152 var b: blob = test_null_blob() | |
153 add(b, 123) | |
154 END | |
155 CheckScriptSuccess(lines) | |
156 enddef | 156 enddef |
157 | 157 |
158 def Test_and() | 158 def Test_and() |
159 CheckDefAndScriptFailure2(['and("x", 0x2)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | 159 CheckDefAndScriptFailure2(['and("x", 0x2)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') |
160 CheckDefAndScriptFailure2(['and(0x1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | 160 CheckDefAndScriptFailure2(['and(0x1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1030: Using a String as a Number') |
169 assert_equal(false, res2) | 169 assert_equal(false, res2) |
170 assert_equal(['0', 'one', '1', 'two', '2'], getline(1, 6)) | 170 assert_equal(['0', 'one', '1', 'two', '2'], getline(1, 6)) |
171 | 171 |
172 append(0, 'zero') | 172 append(0, 'zero') |
173 assert_equal('zero', getline(1)) | 173 assert_equal('zero', getline(1)) |
174 append(0, {a: 10}) | |
175 assert_equal("{'a': 10}", getline(1)) | |
176 append(0, function('min')) | |
177 assert_equal("function('min')", getline(1)) | |
178 CheckDefAndScriptFailure2(['append([1], "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E745: Using a List as a Number') | |
179 bwipe! | |
180 enddef | |
181 | |
182 def Test_appendbufline() | |
183 new | |
184 var bnum: number = bufnr() | |
185 :wincmd w | |
186 appendbufline(bnum, 0, range(3)) | |
187 var res1: number = appendbufline(bnum, 1, 'one') | |
188 assert_equal(0, res1) | |
189 var res2: bool = appendbufline(bnum, 3, 'two') | |
190 assert_equal(false, res2) | |
191 assert_equal(['0', 'one', '1', 'two', '2', ''], getbufline(bnum, 1, '$')) | |
192 appendbufline(bnum, 0, 'zero') | |
193 assert_equal(['zero'], getbufline(bnum, 1)) | |
194 CheckDefFailure(['appendbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>') | |
195 CheckDefFailure(['appendbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list<number>') | |
196 CheckDefFailure(['appendbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict<number>') | |
197 bnum->bufwinid()->win_gotoid() | |
174 bwipe! | 198 bwipe! |
175 enddef | 199 enddef |
176 | 200 |
177 def Test_argc() | 201 def Test_argc() |
178 CheckDefFailure(['argc("x")'], 'E1013: Argument 1: type mismatch, expected number but got string') | 202 CheckDefFailure(['argc("x")'], 'E1013: Argument 1: type mismatch, expected number but got string') |
188 CheckDefFailure(['argv("x")'], 'E1013: Argument 1: type mismatch, expected number but got string') | 212 CheckDefFailure(['argv("x")'], 'E1013: Argument 1: type mismatch, expected number but got string') |
189 CheckDefFailure(['argv(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string') | 213 CheckDefFailure(['argv(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string') |
190 CheckDefFailure(['argv("x", "y")'], 'E1013: Argument 1: type mismatch, expected number but got string') | 214 CheckDefFailure(['argv("x", "y")'], 'E1013: Argument 1: type mismatch, expected number but got string') |
191 enddef | 215 enddef |
192 | 216 |
217 def Test_assert_beeps() | |
218 CheckDefAndScriptFailure2(['assert_beeps(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
219 enddef | |
220 | |
193 def Test_assert_equalfile() | 221 def Test_assert_equalfile() |
194 CheckDefFailure(['assert_equalfile(1, "f2")'], 'E1013: Argument 1: type mismatch, expected string but got number') | 222 CheckDefFailure(['assert_equalfile(1, "f2")'], 'E1013: Argument 1: type mismatch, expected string but got number') |
195 CheckDefFailure(['assert_equalfile("f1", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool') | 223 CheckDefFailure(['assert_equalfile("f1", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool') |
196 CheckDefFailure(['assert_equalfile("f1", "f2", ["a"])'], 'E1013: Argument 3: type mismatch, expected string but got list<string>') | 224 CheckDefFailure(['assert_equalfile("f1", "f2", ["a"])'], 'E1013: Argument 3: type mismatch, expected string but got list<string>') |
197 enddef | 225 enddef |
203 | 231 |
204 def Test_assert_match() | 232 def Test_assert_match() |
205 CheckDefFailure(['assert_match({}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>') | 233 CheckDefFailure(['assert_match({}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>') |
206 CheckDefFailure(['assert_match("a", 1)'], 'E1013: Argument 2: type mismatch, expected string but got number') | 234 CheckDefFailure(['assert_match("a", 1)'], 'E1013: Argument 2: type mismatch, expected string but got number') |
207 CheckDefFailure(['assert_match("a", "b", null)'], 'E1013: Argument 3: type mismatch, expected string but got special') | 235 CheckDefFailure(['assert_match("a", "b", null)'], 'E1013: Argument 3: type mismatch, expected string but got special') |
236 enddef | |
237 | |
238 def Test_assert_nobeep() | |
239 CheckDefAndScriptFailure2(['assert_nobeep(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
208 enddef | 240 enddef |
209 | 241 |
210 def Test_assert_notmatch() | 242 def Test_assert_notmatch() |
211 CheckDefFailure(['assert_notmatch({}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>') | 243 CheckDefFailure(['assert_notmatch({}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>') |
212 CheckDefFailure(['assert_notmatch("a", 1)'], 'E1013: Argument 2: type mismatch, expected string but got number') | 244 CheckDefFailure(['assert_notmatch("a", 1)'], 'E1013: Argument 2: type mismatch, expected string but got number') |
326 CheckDefFailure(['byte2line("1")'], 'E1013: Argument 1: type mismatch, expected number but got string') | 358 CheckDefFailure(['byte2line("1")'], 'E1013: Argument 1: type mismatch, expected number but got string') |
327 CheckDefFailure(['byte2line([])'], 'E1013: Argument 1: type mismatch, expected number but got list<unknown>') | 359 CheckDefFailure(['byte2line([])'], 'E1013: Argument 1: type mismatch, expected number but got list<unknown>') |
328 assert_equal(-1, byte2line(0)) | 360 assert_equal(-1, byte2line(0)) |
329 enddef | 361 enddef |
330 | 362 |
363 def Test_byteidx() | |
364 CheckDefAndScriptFailure2(['byteidx(1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
365 CheckDefAndScriptFailure2(['byteidx("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
366 enddef | |
367 | |
368 def Test_byteidxcomp() | |
369 CheckDefAndScriptFailure2(['byteidxcomp(1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
370 CheckDefAndScriptFailure2(['byteidxcomp("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
371 enddef | |
372 | |
331 def Test_call_call() | 373 def Test_call_call() |
332 var l = [3, 2, 1] | 374 var l = [3, 2, 1] |
333 call('reverse', [l]) | 375 call('reverse', [l]) |
334 l->assert_equal([1, 2, 3]) | 376 l->assert_equal([1, 2, 3]) |
335 enddef | 377 enddef |
353 CheckFeature channel | 395 CheckFeature channel |
354 endif | 396 endif |
355 CheckDefFailure(['ch_close_in(true)'], 'E1013: Argument 1: type mismatch, expected channel but got bool') | 397 CheckDefFailure(['ch_close_in(true)'], 'E1013: Argument 1: type mismatch, expected channel but got bool') |
356 enddef | 398 enddef |
357 | 399 |
400 def Test_ch_getjob() | |
401 CheckDefAndScriptFailure2(['ch_getjob(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E475: Invalid argument:') | |
402 CheckDefAndScriptFailure2(['ch_getjob({"a": 10})'], 'E1013: Argument 1: type mismatch, expected channel but got dict<number>', 'E731: Using a Dictionary as a String') | |
403 assert_equal(0, ch_getjob(test_null_channel())) | |
404 enddef | |
405 | |
358 def Test_ch_info() | 406 def Test_ch_info() |
359 if !has('channel') | 407 if !has('channel') |
360 CheckFeature channel | 408 CheckFeature channel |
361 endif | 409 endif |
362 CheckDefFailure(['ch_info([1])'], 'E1013: Argument 1: type mismatch, expected channel but got list<number>') | 410 CheckDefFailure(['ch_info([1])'], 'E1013: Argument 1: type mismatch, expected channel but got list<number>') |
377 if !has('channel') | 425 if !has('channel') |
378 CheckFeature channel | 426 CheckFeature channel |
379 endif | 427 endif |
380 CheckDefAndScriptFailure2(['ch_open({"a": 10}, "a")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') | 428 CheckDefAndScriptFailure2(['ch_open({"a": 10}, "a")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') |
381 CheckDefAndScriptFailure2(['ch_open("a", [1])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') | 429 CheckDefAndScriptFailure2(['ch_open("a", [1])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') |
430 enddef | |
431 | |
432 def Test_ch_read() | |
433 if !has('channel') | |
434 CheckFeature channel | |
435 endif | |
436 CheckDefAndScriptFailure2(['ch_read(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E475: Invalid argument') | |
437 CheckDefAndScriptFailure2(['ch_read(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E715: Dictionary required') | |
438 enddef | |
439 | |
440 def Test_ch_readblob() | |
441 if !has('channel') | |
442 CheckFeature channel | |
443 endif | |
444 CheckDefAndScriptFailure2(['ch_readblob(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E475: Invalid argument') | |
445 CheckDefAndScriptFailure2(['ch_readblob(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E715: Dictionary required') | |
446 enddef | |
447 | |
448 def Test_ch_readraw() | |
449 if !has('channel') | |
450 CheckFeature channel | |
451 endif | |
452 CheckDefAndScriptFailure2(['ch_readraw(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E475: Invalid argument') | |
453 CheckDefAndScriptFailure2(['ch_readraw(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E715: Dictionary required') | |
454 enddef | |
455 | |
456 def Test_ch_setoptions() | |
457 if !has('channel') | |
458 CheckFeature channel | |
459 endif | |
460 CheckDefAndScriptFailure2(['ch_setoptions(1, {})'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E475: Invalid argument') | |
461 CheckDefFailure(['ch_setoptions(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>') | |
462 enddef | |
463 | |
464 def Test_ch_status() | |
465 if !has('channel') | |
466 CheckFeature channel | |
467 endif | |
468 CheckDefAndScriptFailure2(['ch_status(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E475: Invalid argument') | |
469 CheckDefAndScriptFailure2(['ch_status(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E715: Dictionary required') | |
382 enddef | 470 enddef |
383 | 471 |
384 def Test_char2nr() | 472 def Test_char2nr() |
385 char2nr('あ', true)->assert_equal(12354) | 473 char2nr('あ', true)->assert_equal(12354) |
386 | 474 |
438 CheckDefFailure(['col({a: 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>') | 526 CheckDefFailure(['col({a: 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>') |
439 CheckDefFailure(['col(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool') | 527 CheckDefFailure(['col(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool') |
440 bw! | 528 bw! |
441 enddef | 529 enddef |
442 | 530 |
443 def Test_confirm() | |
444 if !has('dialog_con') && !has('dialog_gui') | |
445 CheckFeature dialog_con | |
446 endif | |
447 | |
448 assert_fails('confirm(true)', 'E1174:') | |
449 assert_fails('confirm("yes", true)', 'E1174:') | |
450 assert_fails('confirm("yes", "maybe", 2, true)', 'E1174:') | |
451 enddef | |
452 | |
453 def Test_complete_info() | 531 def Test_complete_info() |
454 CheckDefFailure(['complete_info("")'], 'E1013: Argument 1: type mismatch, expected list<string> but got string') | 532 CheckDefFailure(['complete_info("")'], 'E1013: Argument 1: type mismatch, expected list<string> but got string') |
455 CheckDefFailure(['complete_info({})'], 'E1013: Argument 1: type mismatch, expected list<string> but got dict<unknown>') | 533 CheckDefFailure(['complete_info({})'], 'E1013: Argument 1: type mismatch, expected list<string> but got dict<unknown>') |
456 assert_equal({'pum_visible': 0, 'mode': '', 'selected': -1, 'items': []}, complete_info()) | 534 assert_equal({'pum_visible': 0, 'mode': '', 'selected': -1, 'items': []}, complete_info()) |
457 assert_equal({'mode': '', 'items': []}, complete_info(['mode', 'items'])) | 535 assert_equal({'mode': '', 'items': []}, complete_info(['mode', 'items'])) |
536 enddef | |
537 | |
538 def Test_confirm() | |
539 if !has('dialog_con') && !has('dialog_gui') | |
540 CheckFeature dialog_con | |
541 endif | |
542 | |
543 assert_fails('confirm(true)', 'E1174:') | |
544 assert_fails('confirm("yes", true)', 'E1174:') | |
545 assert_fails('confirm("yes", "maybe", 2, true)', 'E1174:') | |
458 enddef | 546 enddef |
459 | 547 |
460 def Test_copy_return_type() | 548 def Test_copy_return_type() |
461 var l = copy([1, 2, 3]) | 549 var l = copy([1, 2, 3]) |
462 var res = 0 | 550 var res = 0 |
510 def Test_diff_filler() | 598 def Test_diff_filler() |
511 CheckDefFailure(['diff_filler([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>') | 599 CheckDefFailure(['diff_filler([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>') |
512 CheckDefFailure(['diff_filler(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool') | 600 CheckDefFailure(['diff_filler(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool') |
513 assert_equal(0, diff_filler(1)) | 601 assert_equal(0, diff_filler(1)) |
514 assert_equal(0, diff_filler('.')) | 602 assert_equal(0, diff_filler('.')) |
603 enddef | |
604 | |
605 def Test_echoraw() | |
606 CheckDefAndScriptFailure2(['echoraw(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
607 CheckDefAndScriptFailure2(['echoraw(["x"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') | |
515 enddef | 608 enddef |
516 | 609 |
517 def Test_escape() | 610 def Test_escape() |
518 CheckDefFailure(['escape("a", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') | 611 CheckDefFailure(['escape("a", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') |
519 CheckDefFailure(['escape(10, " ")'], 'E1013: Argument 1: type mismatch, expected string but got number') | 612 CheckDefFailure(['escape(10, " ")'], 'E1013: Argument 1: type mismatch, expected string but got number') |
602 | 695 |
603 CheckDefFailure(['extend([1], ["b"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>') | 696 CheckDefFailure(['extend([1], ["b"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>') |
604 CheckDefExecFailure(['extend([1], ["b", 1])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<any>') | 697 CheckDefExecFailure(['extend([1], ["b", 1])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<any>') |
605 enddef | 698 enddef |
606 | 699 |
607 def Test_extendnew() | 700 func g:ExtendDict(d) |
608 assert_equal([1, 2, 'a'], extendnew([1, 2], ['a'])) | 701 call extend(a:d, #{xx: 'x'}) |
609 assert_equal({one: 1, two: 'a'}, extendnew({one: 1}, {two: 'a'})) | 702 endfunc |
610 | 703 |
611 CheckDefFailure(['extendnew({a: 1}, 42)'], 'E1013: Argument 2: type mismatch, expected dict<number> but got number') | 704 def Test_extend_dict_item_type() |
612 CheckDefFailure(['extendnew({a: 1}, [42])'], 'E1013: Argument 2: type mismatch, expected dict<number> but got list<number>') | 705 var lines =<< trim END |
613 CheckDefFailure(['extendnew([1, 2], "x")'], 'E1013: Argument 2: type mismatch, expected list<number> but got string') | 706 var d: dict<number> = {a: 1} |
614 CheckDefFailure(['extendnew([1, 2], {x: 1})'], 'E1013: Argument 2: type mismatch, expected list<number> but got dict<number>') | 707 extend(d, {b: 2}) |
708 END | |
709 CheckDefAndScriptSuccess(lines) | |
710 | |
711 lines =<< trim END | |
712 var d: dict<number> = {a: 1} | |
713 extend(d, {b: 'x'}) | |
714 END | |
715 CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected dict<number> but got dict<string>', 2) | |
716 | |
717 lines =<< trim END | |
718 var d: dict<number> = {a: 1} | |
719 g:ExtendDict(d) | |
720 END | |
721 CheckDefExecFailure(lines, 'E1012: Type mismatch; expected number but got string', 0) | |
722 CheckScriptFailure(['vim9script'] + lines, 'E1012:', 1) | |
723 enddef | |
724 | |
725 func g:ExtendList(l) | |
726 call extend(a:l, ['x']) | |
727 endfunc | |
728 | |
729 def Test_extend_list_item_type() | |
730 var lines =<< trim END | |
731 var l: list<number> = [1] | |
732 extend(l, [2]) | |
733 END | |
734 CheckDefAndScriptSuccess(lines) | |
735 | |
736 lines =<< trim END | |
737 var l: list<number> = [1] | |
738 extend(l, ['x']) | |
739 END | |
740 CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>', 2) | |
741 | |
742 lines =<< trim END | |
743 var l: list<number> = [1] | |
744 g:ExtendList(l) | |
745 END | |
746 CheckDefExecFailure(lines, 'E1012: Type mismatch; expected number but got string', 0) | |
747 CheckScriptFailure(['vim9script'] + lines, 'E1012:', 1) | |
615 enddef | 748 enddef |
616 | 749 |
617 def Test_extend_return_type() | 750 def Test_extend_return_type() |
618 var l = extend([1, 2], [3]) | 751 var l = extend([1, 2], [3]) |
619 var res = 0 | 752 var res = 0 |
620 for n in l | 753 for n in l |
621 res += n | 754 res += n |
622 endfor | 755 endfor |
623 res->assert_equal(6) | 756 res->assert_equal(6) |
624 enddef | |
625 | |
626 func g:ExtendDict(d) | |
627 call extend(a:d, #{xx: 'x'}) | |
628 endfunc | |
629 | |
630 def Test_extend_dict_item_type() | |
631 var lines =<< trim END | |
632 var d: dict<number> = {a: 1} | |
633 extend(d, {b: 2}) | |
634 END | |
635 CheckDefAndScriptSuccess(lines) | |
636 | |
637 lines =<< trim END | |
638 var d: dict<number> = {a: 1} | |
639 extend(d, {b: 'x'}) | |
640 END | |
641 CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected dict<number> but got dict<string>', 2) | |
642 | |
643 lines =<< trim END | |
644 var d: dict<number> = {a: 1} | |
645 g:ExtendDict(d) | |
646 END | |
647 CheckDefExecFailure(lines, 'E1012: Type mismatch; expected number but got string', 0) | |
648 CheckScriptFailure(['vim9script'] + lines, 'E1012:', 1) | |
649 enddef | |
650 | |
651 func g:ExtendList(l) | |
652 call extend(a:l, ['x']) | |
653 endfunc | |
654 | |
655 def Test_extend_list_item_type() | |
656 var lines =<< trim END | |
657 var l: list<number> = [1] | |
658 extend(l, [2]) | |
659 END | |
660 CheckDefAndScriptSuccess(lines) | |
661 | |
662 lines =<< trim END | |
663 var l: list<number> = [1] | |
664 extend(l, ['x']) | |
665 END | |
666 CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>', 2) | |
667 | |
668 lines =<< trim END | |
669 var l: list<number> = [1] | |
670 g:ExtendList(l) | |
671 END | |
672 CheckDefExecFailure(lines, 'E1012: Type mismatch; expected number but got string', 0) | |
673 CheckScriptFailure(['vim9script'] + lines, 'E1012:', 1) | |
674 enddef | 757 enddef |
675 | 758 |
676 def Test_extend_with_error_function() | 759 def Test_extend_with_error_function() |
677 var lines =<< trim END | 760 var lines =<< trim END |
678 vim9script | 761 vim9script |
691 Test() | 774 Test() |
692 END | 775 END |
693 CheckScriptFailure(lines, 'E1001: Variable not found: m') | 776 CheckScriptFailure(lines, 'E1001: Variable not found: m') |
694 enddef | 777 enddef |
695 | 778 |
779 def Test_extendnew() | |
780 assert_equal([1, 2, 'a'], extendnew([1, 2], ['a'])) | |
781 assert_equal({one: 1, two: 'a'}, extendnew({one: 1}, {two: 'a'})) | |
782 | |
783 CheckDefFailure(['extendnew({a: 1}, 42)'], 'E1013: Argument 2: type mismatch, expected dict<number> but got number') | |
784 CheckDefFailure(['extendnew({a: 1}, [42])'], 'E1013: Argument 2: type mismatch, expected dict<number> but got list<number>') | |
785 CheckDefFailure(['extendnew([1, 2], "x")'], 'E1013: Argument 2: type mismatch, expected list<number> but got string') | |
786 CheckDefFailure(['extendnew([1, 2], {x: 1})'], 'E1013: Argument 2: type mismatch, expected list<number> but got dict<number>') | |
787 enddef | |
788 | |
696 def Test_feedkeys() | 789 def Test_feedkeys() |
697 CheckDefFailure(['feedkeys(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') | 790 CheckDefFailure(['feedkeys(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') |
698 CheckDefFailure(['feedkeys("x", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') | 791 CheckDefFailure(['feedkeys("x", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') |
699 CheckDefFailure(['feedkeys([], {})'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>') | 792 CheckDefFailure(['feedkeys([], {})'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>') |
700 g:TestVar = 1 | 793 g:TestVar = 1 |
701 feedkeys(":g:TestVar = 789\n", 'xt') | 794 feedkeys(":g:TestVar = 789\n", 'xt') |
702 assert_equal(789, g:TestVar) | 795 assert_equal(789, g:TestVar) |
703 unlet g:TestVar | 796 unlet g:TestVar |
704 enddef | |
705 | |
706 def Test_indent() | |
707 CheckDefAndScriptFailure2(['indent([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E745: Using a List as a Number') | |
708 CheckDefAndScriptFailure2(['indent(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1138: Using a Bool as a Number') | |
709 assert_equal(0, indent(1)) | |
710 enddef | |
711 | |
712 def Test_input() | |
713 CheckDefFailure(['input(5)'], 'E1013: Argument 1: type mismatch, expected string but got number') | |
714 CheckDefAndScriptFailure2(['input(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') | |
715 CheckDefFailure(['input("p", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') | |
716 CheckDefAndScriptFailure2(['input("p", "q", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E180: Invalid complete value') | |
717 enddef | |
718 | |
719 def Test_inputdialog() | |
720 CheckDefFailure(['inputdialog(5)'], 'E1013: Argument 1: type mismatch, expected string but got number') | |
721 CheckDefAndScriptFailure2(['inputdialog(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') | |
722 CheckDefFailure(['inputdialog("p", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') | |
723 CheckDefFailure(['inputdialog("p", "q", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number') | |
724 enddef | |
725 | |
726 def Test_job_info_return_type() | |
727 if has('job') | |
728 job_start(&shell) | |
729 var jobs = job_info() | |
730 assert_equal('list<job>', typename(jobs)) | |
731 assert_equal('dict<any>', typename(job_info(jobs[0]))) | |
732 job_stop(jobs[0]) | |
733 endif | |
734 enddef | 797 enddef |
735 | 798 |
736 def Test_filereadable() | 799 def Test_filereadable() |
737 assert_false(filereadable("")) | 800 assert_false(filereadable("")) |
738 assert_false(filereadable(test_null_string())) | 801 assert_false(filereadable(test_null_string())) |
926 assert_equal('', fullcommand('scg')) | 989 assert_equal('', fullcommand('scg')) |
927 enddef | 990 enddef |
928 | 991 |
929 def Test_garbagecollect() | 992 def Test_garbagecollect() |
930 garbagecollect(true) | 993 garbagecollect(true) |
994 CheckDefAndScriptFailure2(['garbagecollect("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1135: Using a String as a Bool') | |
995 CheckDefAndScriptFailure2(['garbagecollect(20)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1023: Using a Number as a Bool') | |
931 enddef | 996 enddef |
932 | 997 |
933 def Test_getbufinfo() | 998 def Test_getbufinfo() |
934 var bufinfo = getbufinfo(bufnr()) | 999 var bufinfo = getbufinfo(bufnr()) |
935 getbufinfo('%')->assert_equal(bufinfo) | 1000 getbufinfo('%')->assert_equal(bufinfo) |
965 | 1030 |
966 def Test_getchar() | 1031 def Test_getchar() |
967 while getchar(0) | 1032 while getchar(0) |
968 endwhile | 1033 endwhile |
969 getchar(true)->assert_equal(0) | 1034 getchar(true)->assert_equal(0) |
1035 getchar(1)->assert_equal(0) | |
1036 CheckDefAndScriptFailure2(['getchar(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1023: Using a Number as a Bool') | |
1037 CheckDefAndScriptFailure2(['getchar("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1135: Using a String as a Bool') | |
1038 enddef | |
1039 | |
1040 def Test_getcharpos() | |
1041 CheckDefAndScriptFailure2(['getcharpos(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') | |
1042 CheckDefAndScriptFailure2(['getcharpos(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
1043 enddef | |
1044 | |
1045 def Test_getcharstr() | |
1046 CheckDefAndScriptFailure2(['getcharstr(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1023: Using a Number as a Bool') | |
1047 CheckDefAndScriptFailure2(['getcharstr("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1135: Using a String as a Bool') | |
970 enddef | 1048 enddef |
971 | 1049 |
972 def Test_getenv() | 1050 def Test_getenv() |
973 if getenv('does-not_exist') == '' | 1051 if getenv('does-not_exist') == '' |
974 assert_report('getenv() should return null') | 1052 assert_report('getenv() should return null') |
999 | 1077 |
1000 def Test_getcwd() | 1078 def Test_getcwd() |
1001 CheckDefFailure(['getcwd("x")'], 'E1013: Argument 1: type mismatch, expected number but got string') | 1079 CheckDefFailure(['getcwd("x")'], 'E1013: Argument 1: type mismatch, expected number but got string') |
1002 CheckDefFailure(['getcwd("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string') | 1080 CheckDefFailure(['getcwd("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string') |
1003 CheckDefFailure(['getcwd(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string') | 1081 CheckDefFailure(['getcwd(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string') |
1004 enddef | |
1005 | |
1006 def Test_getloclist_return_type() | |
1007 var l = getloclist(1) | |
1008 l->assert_equal([]) | |
1009 | |
1010 var d = getloclist(1, {items: 0}) | |
1011 d->assert_equal({items: []}) | |
1012 enddef | 1082 enddef |
1013 | 1083 |
1014 def Test_getfontname() | 1084 def Test_getfontname() |
1015 CheckDefFailure(['getfontname(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') | 1085 CheckDefFailure(['getfontname(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') |
1016 enddef | 1086 enddef |
1070 echo getline('1') | 1140 echo getline('1') |
1071 END | 1141 END |
1072 CheckDefExecAndScriptFailure(lines, 'E1209:') | 1142 CheckDefExecAndScriptFailure(lines, 'E1209:') |
1073 enddef | 1143 enddef |
1074 | 1144 |
1145 def Test_getloclist() | |
1146 CheckDefAndScriptFailure2(['getloclist("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
1147 CheckDefAndScriptFailure2(['getloclist(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E715: Dictionary required') | |
1148 enddef | |
1149 | |
1150 def Test_getloclist_return_type() | |
1151 var l = getloclist(1) | |
1152 l->assert_equal([]) | |
1153 | |
1154 var d = getloclist(1, {items: 0}) | |
1155 d->assert_equal({items: []}) | |
1156 enddef | |
1157 | |
1075 def Test_getmarklist() | 1158 def Test_getmarklist() |
1076 CheckDefFailure(['getmarklist([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>') | 1159 CheckDefFailure(['getmarklist([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>') |
1077 assert_equal([], getmarklist(10000)) | 1160 assert_equal([], getmarklist(10000)) |
1078 assert_fails('getmarklist("a%b@#")', 'E94:') | 1161 assert_fails('getmarklist("a%b@#")', 'E94:') |
1079 enddef | 1162 enddef |
1195 CheckDefFailure(['histadd(":", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') | 1278 CheckDefFailure(['histadd(":", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') |
1196 histadd("search", 'skyblue') | 1279 histadd("search", 'skyblue') |
1197 assert_equal('skyblue', histget('/', -1)) | 1280 assert_equal('skyblue', histget('/', -1)) |
1198 enddef | 1281 enddef |
1199 | 1282 |
1283 def Test_histget() | |
1284 CheckDefAndScriptFailure2(['histget(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
1285 CheckDefAndScriptFailure2(['histget("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
1286 enddef | |
1287 | |
1200 def Test_histnr() | 1288 def Test_histnr() |
1201 CheckDefFailure(['histnr(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') | 1289 CheckDefFailure(['histnr(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') |
1202 assert_equal(-1, histnr('abc')) | 1290 assert_equal(-1, histnr('abc')) |
1203 enddef | 1291 enddef |
1204 | 1292 |
1217 CheckDefFailure(['iconv("abc", 10, "to")'], 'E1013: Argument 2: type mismatch, expected string but got number') | 1305 CheckDefFailure(['iconv("abc", 10, "to")'], 'E1013: Argument 2: type mismatch, expected string but got number') |
1218 CheckDefFailure(['iconv("abc", "from", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number') | 1306 CheckDefFailure(['iconv("abc", "from", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number') |
1219 assert_equal('abc', iconv('abc', 'fromenc', 'toenc')) | 1307 assert_equal('abc', iconv('abc', 'fromenc', 'toenc')) |
1220 enddef | 1308 enddef |
1221 | 1309 |
1310 def Test_indent() | |
1311 CheckDefAndScriptFailure2(['indent([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E745: Using a List as a Number') | |
1312 CheckDefAndScriptFailure2(['indent(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1138: Using a Bool as a Number') | |
1313 assert_equal(0, indent(1)) | |
1314 enddef | |
1315 | |
1222 def Test_index() | 1316 def Test_index() |
1223 index(['a', 'b', 'a', 'B'], 'b', 2, true)->assert_equal(3) | 1317 index(['a', 'b', 'a', 'B'], 'b', 2, true)->assert_equal(3) |
1318 enddef | |
1319 | |
1320 def Test_input() | |
1321 CheckDefFailure(['input(5)'], 'E1013: Argument 1: type mismatch, expected string but got number') | |
1322 CheckDefAndScriptFailure2(['input(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') | |
1323 CheckDefFailure(['input("p", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') | |
1324 CheckDefAndScriptFailure2(['input("p", "q", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E180: Invalid complete value') | |
1325 enddef | |
1326 | |
1327 def Test_inputdialog() | |
1328 CheckDefFailure(['inputdialog(5)'], 'E1013: Argument 1: type mismatch, expected string but got number') | |
1329 CheckDefAndScriptFailure2(['inputdialog(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') | |
1330 CheckDefFailure(['inputdialog("p", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number') | |
1331 CheckDefFailure(['inputdialog("p", "q", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number') | |
1224 enddef | 1332 enddef |
1225 | 1333 |
1226 def Test_inputlist() | 1334 def Test_inputlist() |
1227 CheckDefFailure(['inputlist(10)'], 'E1013: Argument 1: type mismatch, expected list<string> but got number') | 1335 CheckDefFailure(['inputlist(10)'], 'E1013: Argument 1: type mismatch, expected list<string> but got number') |
1228 CheckDefFailure(['inputlist("abc")'], 'E1013: Argument 1: type mismatch, expected list<string> but got string') | 1336 CheckDefFailure(['inputlist("abc")'], 'E1013: Argument 1: type mismatch, expected list<string> but got string') |
1287 def Test_isdirectory() | 1395 def Test_isdirectory() |
1288 CheckDefFailure(['isdirectory(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float') | 1396 CheckDefFailure(['isdirectory(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float') |
1289 assert_false(isdirectory('NonExistingDir')) | 1397 assert_false(isdirectory('NonExistingDir')) |
1290 enddef | 1398 enddef |
1291 | 1399 |
1400 def Test_islocked() | |
1401 CheckDefAndScriptFailure2(['islocked(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') | |
1402 CheckDefAndScriptFailure2(['var n1: number = 10', 'islocked(n1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
1403 g:v1 = 10 | |
1404 assert_false(islocked('g:v1')) | |
1405 lockvar g:v1 | |
1406 assert_true(islocked('g:v1')) | |
1407 unlet g:v1 | |
1408 enddef | |
1409 | |
1292 def Test_items() | 1410 def Test_items() |
1293 CheckDefFailure(['[]->items()'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>') | 1411 CheckDefFailure(['[]->items()'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>') |
1294 assert_equal([['a', 10], ['b', 20]], {'a': 10, 'b': 20}->items()) | 1412 assert_equal([['a', 10], ['b', 20]], {'a': 10, 'b': 20}->items()) |
1295 assert_equal([], {}->items()) | 1413 assert_equal([], {}->items()) |
1296 enddef | 1414 enddef |
1297 | 1415 |
1416 def Test_job_getchannel() | |
1417 CheckDefAndScriptFailure2(['job_getchannel("a")'], 'E1013: Argument 1: type mismatch, expected job but got string', 'E475: Invalid argument') | |
1418 assert_fails('job_getchannel(test_null_job())', 'E916: not a valid job') | |
1419 enddef | |
1420 | |
1421 def Test_job_info() | |
1422 CheckDefAndScriptFailure2(['job_info("a")'], 'E1013: Argument 1: type mismatch, expected job but got string', 'E475: Invalid argument') | |
1423 assert_fails('job_info(test_null_job())', 'E916: not a valid job') | |
1424 enddef | |
1425 | |
1426 def Test_job_info_return_type() | |
1427 if has('job') | |
1428 job_start(&shell) | |
1429 var jobs = job_info() | |
1430 assert_equal('list<job>', typename(jobs)) | |
1431 assert_equal('dict<any>', typename(job_info(jobs[0]))) | |
1432 job_stop(jobs[0]) | |
1433 endif | |
1434 enddef | |
1435 | |
1436 def Test_job_status() | |
1437 CheckDefAndScriptFailure2(['job_status("a")'], 'E1013: Argument 1: type mismatch, expected job but got string', 'E475: Invalid argument') | |
1438 assert_equal('fail', job_status(test_null_job())) | |
1439 enddef | |
1440 | |
1298 def Test_js_decode() | 1441 def Test_js_decode() |
1299 CheckDefFailure(['js_decode(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') | 1442 CheckDefFailure(['js_decode(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') |
1300 assert_equal([1, 2], js_decode('[1,2]')) | 1443 assert_equal([1, 2], js_decode('[1,2]')) |
1301 enddef | 1444 enddef |
1302 | 1445 |
1316 var->assert_equal(['a', 'b']) | 1459 var->assert_equal(['a', 'b']) |
1317 enddef | 1460 enddef |
1318 | 1461 |
1319 def Test_line() | 1462 def Test_line() |
1320 assert_fails('line(true)', 'E1174:') | 1463 assert_fails('line(true)', 'E1174:') |
1464 CheckDefAndScriptFailure2(['line(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
1465 CheckDefAndScriptFailure2(['line(".", "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
1321 enddef | 1466 enddef |
1322 | 1467 |
1323 def Test_line2byte() | 1468 def Test_line2byte() |
1324 CheckDefFailure(['line2byte(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool') | 1469 CheckDefFailure(['line2byte(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool') |
1325 assert_equal(-1, line2byte(1)) | 1470 assert_equal(-1, line2byte(1)) |
1474 g:flag = false | 1619 g:flag = false |
1475 var l2: list<number> = g:flag | 1620 var l2: list<number> = g:flag |
1476 ? [1, max([2, 3])] | 1621 ? [1, max([2, 3])] |
1477 : [4, 5] | 1622 : [4, 5] |
1478 assert_equal([4, 5], l2) | 1623 assert_equal([4, 5], l2) |
1624 CheckDefAndScriptFailure2(['max(5)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E712: Argument of max() must be a List or Dictionary') | |
1479 enddef | 1625 enddef |
1480 | 1626 |
1481 def Test_menu_info() | 1627 def Test_menu_info() |
1482 CheckDefFailure(['menu_info(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') | 1628 CheckDefFailure(['menu_info(10)'], 'E1013: Argument 1: type mismatch, expected string but got number') |
1483 CheckDefFailure(['menu_info(10, "n")'], 'E1013: Argument 1: type mismatch, expected string but got number') | 1629 CheckDefFailure(['menu_info(10, "n")'], 'E1013: Argument 1: type mismatch, expected string but got number') |
1495 g:flag = false | 1641 g:flag = false |
1496 var l2: list<number> = g:flag | 1642 var l2: list<number> = g:flag |
1497 ? [1, min([2, 3])] | 1643 ? [1, min([2, 3])] |
1498 : [4, 5] | 1644 : [4, 5] |
1499 assert_equal([4, 5], l2) | 1645 assert_equal([4, 5], l2) |
1646 CheckDefAndScriptFailure2(['min(5)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E712: Argument of min() must be a List or Dictionary') | |
1500 enddef | 1647 enddef |
1501 | 1648 |
1502 def Test_mkdir() | 1649 def Test_mkdir() |
1503 CheckDefAndScriptFailure2(['mkdir(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') | 1650 CheckDefAndScriptFailure2(['mkdir(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') |
1504 CheckDefAndScriptFailure2(['mkdir("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E731: Using a Dictionary as a String') | 1651 CheckDefAndScriptFailure2(['mkdir("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E731: Using a Dictionary as a String') |
1505 CheckDefAndScriptFailure2(['mkdir("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | 1652 CheckDefAndScriptFailure2(['mkdir("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1030: Using a String as a Number') |
1506 delete('a', 'rf') | 1653 delete('a', 'rf') |
1507 enddef | 1654 enddef |
1508 | 1655 |
1656 def Test_mode() | |
1657 CheckDefFailure(['mode("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string') | |
1658 CheckDefFailure(['mode(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number') | |
1659 enddef | |
1660 | |
1661 def Test_mzeval() | |
1662 if !has('mzscheme') | |
1663 CheckFeature mzscheme | |
1664 endif | |
1665 CheckDefAndScriptFailure2(['mzscheme(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') | |
1666 enddef | |
1667 | |
1509 def Test_nextnonblank() | 1668 def Test_nextnonblank() |
1510 CheckDefFailure(['nextnonblank(null)'], 'E1013: Argument 1: type mismatch, expected string but got special') | 1669 CheckDefFailure(['nextnonblank(null)'], 'E1013: Argument 1: type mismatch, expected string but got special') |
1511 assert_equal(0, nextnonblank(1)) | 1670 assert_equal(0, nextnonblank(1)) |
1512 enddef | 1671 enddef |
1513 | 1672 |
1516 enddef | 1675 enddef |
1517 | 1676 |
1518 def Test_or() | 1677 def Test_or() |
1519 CheckDefFailure(['or("x", 0x2)'], 'E1013: Argument 1: type mismatch, expected number but got string') | 1678 CheckDefFailure(['or("x", 0x2)'], 'E1013: Argument 1: type mismatch, expected number but got string') |
1520 CheckDefFailure(['or(0x1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string') | 1679 CheckDefFailure(['or(0x1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string') |
1680 enddef | |
1681 | |
1682 def Test_pathshorten() | |
1683 CheckDefAndScriptFailure2(['pathshorten(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
1684 CheckDefAndScriptFailure2(['pathshorten("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
1685 enddef | |
1686 | |
1687 def Test_perleval() | |
1688 if !has('perl') | |
1689 CheckFeature perl | |
1690 endif | |
1691 CheckDefAndScriptFailure2(['perleval(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') | |
1521 enddef | 1692 enddef |
1522 | 1693 |
1523 def Test_popup_atcursor() | 1694 def Test_popup_atcursor() |
1524 CheckDefAndScriptFailure2(['popup_atcursor({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') | 1695 CheckDefAndScriptFailure2(['popup_atcursor({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') |
1525 CheckDefAndScriptFailure2(['popup_atcursor("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | 1696 CheckDefAndScriptFailure2(['popup_atcursor("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |
1532 enddef | 1703 enddef |
1533 | 1704 |
1534 def Test_popup_beval() | 1705 def Test_popup_beval() |
1535 CheckDefAndScriptFailure2(['popup_beval({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') | 1706 CheckDefAndScriptFailure2(['popup_beval({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') |
1536 CheckDefAndScriptFailure2(['popup_beval("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | 1707 CheckDefAndScriptFailure2(['popup_beval("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |
1708 enddef | |
1709 | |
1710 def Test_popup_clear() | |
1711 CheckDefAndScriptFailure2(['popup_clear(["a"])'], 'E1013: Argument 1: type mismatch, expected bool but got list<string>', 'E745: Using a List as a Number') | |
1712 CheckDefAndScriptFailure2(['popup_clear(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1023: Using a Number as a Bool') | |
1537 enddef | 1713 enddef |
1538 | 1714 |
1539 def Test_popup_create() | 1715 def Test_popup_create() |
1540 # Pass variable of type 'any' to popup_create() | 1716 # Pass variable of type 'any' to popup_create() |
1541 var what: any = 'Hello' | 1717 var what: any = 'Hello' |
1547 def Test_popup_dialog() | 1723 def Test_popup_dialog() |
1548 CheckDefAndScriptFailure2(['popup_dialog({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') | 1724 CheckDefAndScriptFailure2(['popup_dialog({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') |
1549 CheckDefAndScriptFailure2(['popup_dialog("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | 1725 CheckDefAndScriptFailure2(['popup_dialog("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |
1550 enddef | 1726 enddef |
1551 | 1727 |
1728 def Test_popup_filter_menu() | |
1729 CheckDefAndScriptFailure2(['popup_filter_menu("x", "")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | |
1730 CheckDefAndScriptFailure2(['popup_filter_menu(1, 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | |
1731 enddef | |
1732 | |
1733 def Test_popup_filter_yesno() | |
1734 CheckDefAndScriptFailure2(['popup_filter_yesno("x", "")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | |
1735 CheckDefAndScriptFailure2(['popup_filter_yesno(1, 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | |
1736 enddef | |
1737 | |
1738 def Test_popup_getoptions() | |
1739 CheckDefAndScriptFailure2(['popup_getoptions("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
1740 CheckDefAndScriptFailure2(['popup_getoptions(true)'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1138: Using a Bool as a Number') | |
1741 enddef | |
1742 | |
1743 def Test_popup_getpos() | |
1744 CheckDefAndScriptFailure2(['popup_getpos("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
1745 CheckDefAndScriptFailure2(['popup_getpos(true)'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1138: Using a Bool as a Number') | |
1746 enddef | |
1747 | |
1748 def Test_popup_hide() | |
1749 CheckDefAndScriptFailure2(['popup_hide("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
1750 CheckDefAndScriptFailure2(['popup_hide(true)'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1138: Using a Bool as a Number') | |
1751 enddef | |
1752 | |
1552 def Test_popup_locate() | 1753 def Test_popup_locate() |
1553 CheckDefAndScriptFailure2(['popup_locate("a", 20)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | 1754 CheckDefAndScriptFailure2(['popup_locate("a", 20)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') |
1554 CheckDefAndScriptFailure2(['popup_locate(10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | 1755 CheckDefAndScriptFailure2(['popup_locate(10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1030: Using a String as a Number') |
1555 enddef | 1756 enddef |
1556 | 1757 |
1557 def Test_popup_menu() | 1758 def Test_popup_menu() |
1558 CheckDefAndScriptFailure2(['popup_menu({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') | 1759 CheckDefAndScriptFailure2(['popup_menu({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') |
1559 CheckDefAndScriptFailure2(['popup_menu("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | 1760 CheckDefAndScriptFailure2(['popup_menu("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |
1560 enddef | 1761 enddef |
1561 | 1762 |
1763 def Test_popup_move() | |
1764 CheckDefAndScriptFailure2(['popup_move("x", {})'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | |
1765 CheckDefAndScriptFailure2(['popup_move(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') | |
1766 enddef | |
1767 | |
1562 def Test_popup_notification() | 1768 def Test_popup_notification() |
1563 CheckDefAndScriptFailure2(['popup_notification({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') | 1769 CheckDefAndScriptFailure2(['popup_notification({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E450: buffer number, text or a list required') |
1564 CheckDefAndScriptFailure2(['popup_notification("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | 1770 CheckDefAndScriptFailure2(['popup_notification("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |
1771 enddef | |
1772 | |
1773 def Test_popup_setoptions() | |
1774 CheckDefAndScriptFailure2(['popup_setoptions("x", {})'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | |
1775 CheckDefAndScriptFailure2(['popup_setoptions(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') | |
1776 enddef | |
1777 | |
1778 def Test_popup_show() | |
1779 CheckDefAndScriptFailure2(['popup_show("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
1780 CheckDefAndScriptFailure2(['popup_show(true)'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1138: Using a Bool as a Number') | |
1565 enddef | 1781 enddef |
1566 | 1782 |
1567 def Test_prevnonblank() | 1783 def Test_prevnonblank() |
1568 CheckDefFailure(['prevnonblank(null)'], 'E1013: Argument 1: type mismatch, expected string but got special') | 1784 CheckDefFailure(['prevnonblank(null)'], 'E1013: Argument 1: type mismatch, expected string but got special') |
1569 assert_equal(0, prevnonblank(1)) | 1785 assert_equal(0, prevnonblank(1)) |
1580 CheckDefAndScriptFailure2(['prop_find([1, 2])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | 1796 CheckDefAndScriptFailure2(['prop_find([1, 2])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |
1581 CheckDefAndScriptFailure2(['prop_find([1, 2], "k")'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | 1797 CheckDefAndScriptFailure2(['prop_find([1, 2], "k")'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') |
1582 CheckDefAndScriptFailure2(['prop_find({"a": 10}, ["a"])'], 'E1013: Argument 2: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') | 1798 CheckDefAndScriptFailure2(['prop_find({"a": 10}, ["a"])'], 'E1013: Argument 2: type mismatch, expected string but got list<string>', 'E730: Using a List as a String') |
1583 enddef | 1799 enddef |
1584 | 1800 |
1801 def Test_prop_list() | |
1802 CheckDefAndScriptFailure2(['prop_list("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | |
1803 CheckDefAndScriptFailure2(['prop_list(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') | |
1804 enddef | |
1805 | |
1585 def Test_prop_type_add() | 1806 def Test_prop_type_add() |
1586 CheckDefAndScriptFailure2(['prop_type_add({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') | 1807 CheckDefAndScriptFailure2(['prop_type_add({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') |
1587 CheckDefAndScriptFailure2(['prop_type_add("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E715: Dictionary required') | 1808 CheckDefAndScriptFailure2(['prop_type_add("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E715: Dictionary required') |
1588 enddef | 1809 enddef |
1589 | 1810 |
1600 | 1821 |
1601 def Test_prop_type_get() | 1822 def Test_prop_type_get() |
1602 CheckDefAndScriptFailure2(['prop_type_get({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') | 1823 CheckDefAndScriptFailure2(['prop_type_get({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') |
1603 CheckDefAndScriptFailure2(['prop_type_get({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') | 1824 CheckDefAndScriptFailure2(['prop_type_get({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') |
1604 CheckDefAndScriptFailure2(['prop_type_get("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E715: Dictionary required') | 1825 CheckDefAndScriptFailure2(['prop_type_get("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E715: Dictionary required') |
1826 enddef | |
1827 | |
1828 def Test_prop_type_list() | |
1829 CheckDefAndScriptFailure2(['prop_type_list(["a"])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<string>', 'E715: Dictionary required') | |
1830 CheckDefAndScriptFailure2(['prop_type_list(2)'], 'E1013: Argument 1: type mismatch, expected dict<any> but got number', 'E715: Dictionary required') | |
1831 enddef | |
1832 | |
1833 def Test_py3eval() | |
1834 if !has('python3') | |
1835 CheckFeature python3 | |
1836 endif | |
1837 CheckDefAndScriptFailure2(['py3eval([2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') | |
1838 enddef | |
1839 | |
1840 def Test_pyeval() | |
1841 if !has('python') | |
1842 CheckFeature python | |
1843 endif | |
1844 CheckDefAndScriptFailure2(['pyeval([2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') | |
1845 enddef | |
1846 | |
1847 def Test_pyxeval() | |
1848 if !has('python') && !has('python3') | |
1849 CheckFeature python | |
1850 endif | |
1851 CheckDefAndScriptFailure2(['pyxeval([2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') | |
1605 enddef | 1852 enddef |
1606 | 1853 |
1607 def Test_rand() | 1854 def Test_rand() |
1608 CheckDefFailure(['rand(10)'], 'E1013: Argument 1: type mismatch, expected list<number> but got number') | 1855 CheckDefFailure(['rand(10)'], 'E1013: Argument 1: type mismatch, expected list<number> but got number') |
1609 CheckDefFailure(['rand(["a"])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<string>') | 1856 CheckDefFailure(['rand(["a"])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<string>') |
1702 CheckEnv DISPLAY | 1949 CheckEnv DISPLAY |
1703 CheckDefAndScriptFailure2(['remote_peek(0z10)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E976: Using a Blob as a String') | 1950 CheckDefAndScriptFailure2(['remote_peek(0z10)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E976: Using a Blob as a String') |
1704 CheckDefAndScriptFailure2(['remote_peek("a5b6c7", [1])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E573: Invalid server id used') | 1951 CheckDefAndScriptFailure2(['remote_peek("a5b6c7", [1])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E573: Invalid server id used') |
1705 enddef | 1952 enddef |
1706 | 1953 |
1954 def Test_remote_read() | |
1955 CheckFeature clientserver | |
1956 CheckEnv DISPLAY | |
1957 CheckDefAndScriptFailure2(['remote_read(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
1958 CheckDefAndScriptFailure2(['remote_read("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
1959 enddef | |
1960 | |
1707 def Test_remote_startserver() | 1961 def Test_remote_startserver() |
1708 CheckFeature clientserver | 1962 CheckFeature clientserver |
1709 CheckEnv DISPLAY | 1963 CheckEnv DISPLAY |
1710 CheckDefFailure(['remote_startserver({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>') | 1964 CheckDefFailure(['remote_startserver({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>') |
1711 enddef | 1965 enddef |
1739 var res = 0 | 1993 var res = 0 |
1740 for n in l | 1994 for n in l |
1741 res += n | 1995 res += n |
1742 endfor | 1996 endfor |
1743 res->assert_equal(6) | 1997 res->assert_equal(6) |
1998 enddef | |
1999 | |
2000 def Test_rubyeval() | |
2001 if !has('ruby') | |
2002 CheckFeature ruby | |
2003 endif | |
2004 CheckDefAndScriptFailure2(['rubyeval([2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') | |
1744 enddef | 2005 enddef |
1745 | 2006 |
1746 def Test_screenattr() | 2007 def Test_screenattr() |
1747 CheckDefFailure(['screenattr("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string') | 2008 CheckDefFailure(['screenattr("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string') |
1748 CheckDefFailure(['screenattr(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string') | 2009 CheckDefFailure(['screenattr(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string') |
1811 current: 1, | 2072 current: 1, |
1812 total: 1, | 2073 total: 1, |
1813 maxcount: 99, | 2074 maxcount: 99, |
1814 incomplete: 0}) | 2075 incomplete: 0}) |
1815 bwipe! | 2076 bwipe! |
2077 CheckDefAndScriptFailure2(['searchcount([1])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E715: Dictionary required') | |
1816 enddef | 2078 enddef |
1817 | 2079 |
1818 def Test_searchpair() | 2080 def Test_searchpair() |
1819 new | 2081 new |
1820 setline(1, "here { and } there") | 2082 setline(1, "here { and } there") |
1954 def Test_setfperm() | 2216 def Test_setfperm() |
1955 CheckDefFailure(['setfperm(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number') | 2217 CheckDefFailure(['setfperm(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number') |
1956 CheckDefFailure(['setfperm("a", 0z10)'], 'E1013: Argument 2: type mismatch, expected string but got blob') | 2218 CheckDefFailure(['setfperm("a", 0z10)'], 'E1013: Argument 2: type mismatch, expected string but got blob') |
1957 enddef | 2219 enddef |
1958 | 2220 |
2221 def Test_setbufline() | |
2222 new | |
2223 var bnum = bufnr('%') | |
2224 :wincmd w | |
2225 setbufline(bnum, 1, range(1, 3)) | |
2226 setbufline(bnum, 4, 'one') | |
2227 setbufline(bnum, 5, 10) | |
2228 setbufline(bnum, 6, ['two', 11]) | |
2229 assert_equal(['1', '2', '3', 'one', '10', 'two', '11'], getbufline(bnum, 1, '$')) | |
2230 CheckDefFailure(['setbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>') | |
2231 CheckDefFailure(['setbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list<number>') | |
2232 CheckDefFailure(['setbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict<number>') | |
2233 bnum->bufwinid()->win_gotoid() | |
2234 bw! | |
2235 enddef | |
2236 | |
2237 def Test_setcellwidths() | |
2238 CheckDefAndScriptFailure2(['setcellwidths(1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E714: List required') | |
2239 CheckDefAndScriptFailure2(['setcellwidths({"a": 10})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E714: List required') | |
2240 enddef | |
2241 | |
1959 def Test_setline() | 2242 def Test_setline() |
1960 new | 2243 new |
1961 setline(1, range(1, 4)) | 2244 setline(1, range(1, 4)) |
1962 assert_equal(['1', '2', '3', '4'], getline(1, '$')) | 2245 assert_equal(['1', '2', '3', '4'], getline(1, '$')) |
1963 setline(1, ['a', 'b', 'c', 'd']) | 2246 setline(1, ['a', 'b', 'c', 'd']) |
1964 assert_equal(['a', 'b', 'c', 'd'], getline(1, '$')) | 2247 assert_equal(['a', 'b', 'c', 'd'], getline(1, '$')) |
1965 setline(1, 'one') | 2248 setline(1, 'one') |
1966 assert_equal(['one', 'b', 'c', 'd'], getline(1, '$')) | 2249 assert_equal(['one', 'b', 'c', 'd'], getline(1, '$')) |
2250 setline(1, 10) | |
2251 assert_equal(['10', 'b', 'c', 'd'], getline(1, '$')) | |
2252 CheckDefAndScriptFailure2(['setline([1], "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E745: Using a List as a Number') | |
1967 bw! | 2253 bw! |
1968 enddef | 2254 enddef |
1969 | 2255 |
1970 def Test_setloclist() | 2256 def Test_setloclist() |
1971 var items = [{filename: '/tmp/file', lnum: 1, valid: true}] | 2257 var items = [{filename: '/tmp/file', lnum: 1, valid: true}] |
1996 CheckDefAndScriptFailure2(['sign_define({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') | 2282 CheckDefAndScriptFailure2(['sign_define({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') |
1997 CheckDefAndScriptFailure2(['sign_define({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') | 2283 CheckDefAndScriptFailure2(['sign_define({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E731: Using a Dictionary as a String') |
1998 CheckDefAndScriptFailure2(['sign_define("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E715: Dictionary required') | 2284 CheckDefAndScriptFailure2(['sign_define("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E715: Dictionary required') |
1999 enddef | 2285 enddef |
2000 | 2286 |
2287 def Test_sign_getdefined() | |
2288 CheckDefAndScriptFailure2(['sign_getdefined(["x"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') | |
2289 CheckDefAndScriptFailure2(['sign_getdefined(2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
2290 enddef | |
2291 | |
2292 def Test_sign_placelist() | |
2293 CheckDefAndScriptFailure2(['sign_placelist("x")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E714: List required') | |
2294 CheckDefAndScriptFailure2(['sign_placelist({"a": 10})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E714: List required') | |
2295 enddef | |
2296 | |
2001 def Test_sign_undefine() | 2297 def Test_sign_undefine() |
2002 CheckDefAndScriptFailure2(['sign_undefine({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E731: Using a Dictionary as a String') | 2298 CheckDefAndScriptFailure2(['sign_undefine({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E731: Using a Dictionary as a String') |
2003 CheckDefAndScriptFailure2(['sign_undefine([1])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>', 'E155: Unknown sign:') | 2299 CheckDefAndScriptFailure2(['sign_undefine([1])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>', 'E155: Unknown sign:') |
2004 enddef | 2300 enddef |
2005 | 2301 |
2006 def Test_sign_unplace() | 2302 def Test_sign_unplace() |
2007 CheckDefAndScriptFailure2(['sign_unplace({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E474: Invalid argument') | 2303 CheckDefAndScriptFailure2(['sign_unplace({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E474: Invalid argument') |
2008 CheckDefAndScriptFailure2(['sign_unplace({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E474: Invalid argument') | 2304 CheckDefAndScriptFailure2(['sign_unplace({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E474: Invalid argument') |
2009 CheckDefAndScriptFailure2(['sign_unplace("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E715: Dictionary required') | 2305 CheckDefAndScriptFailure2(['sign_unplace("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E715: Dictionary required') |
2306 enddef | |
2307 | |
2308 def Test_sign_unplacelist() | |
2309 CheckDefAndScriptFailure2(['sign_unplacelist("x")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E714: List required') | |
2310 CheckDefAndScriptFailure2(['sign_unplacelist({"a": 10})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E714: List required') | |
2010 enddef | 2311 enddef |
2011 | 2312 |
2012 def Test_simplify() | 2313 def Test_simplify() |
2013 CheckDefFailure(['simplify(100)'], 'E1013: Argument 1: type mismatch, expected string but got number') | 2314 CheckDefFailure(['simplify(100)'], 'E1013: Argument 1: type mismatch, expected string but got number') |
2014 call assert_equal('NonExistingFile', simplify('NonExistingFile')) | 2315 call assert_equal('NonExistingFile', simplify('NonExistingFile')) |
2115 CheckScriptFailure(['vim9script', 'echo str2nr("123", "x")'], 'E1030:') | 2416 CheckScriptFailure(['vim9script', 'echo str2nr("123", "x")'], 'E1030:') |
2116 CheckDefFailure(['str2nr("123", 10, "x")'], 'E1013:') | 2417 CheckDefFailure(['str2nr("123", 10, "x")'], 'E1013:') |
2117 CheckScriptFailure(['vim9script', 'echo str2nr("123", 10, "x")'], 'E1135:') | 2418 CheckScriptFailure(['vim9script', 'echo str2nr("123", 10, "x")'], 'E1135:') |
2118 enddef | 2419 enddef |
2119 | 2420 |
2421 def Test_strcharlen() | |
2422 CheckDefAndScriptFailure2(['strcharlen([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') | |
2423 "abc"->strcharlen()->assert_equal(3) | |
2424 strcharlen(99)->assert_equal(2) | |
2425 enddef | |
2426 | |
2120 def Test_strchars() | 2427 def Test_strchars() |
2121 strchars("A\u20dd", true)->assert_equal(1) | 2428 strchars("A\u20dd", true)->assert_equal(1) |
2429 enddef | |
2430 | |
2431 def Test_strdisplaywidth() | |
2432 CheckDefAndScriptFailure2(['strdisplaywidth(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
2433 CheckDefAndScriptFailure2(['strdisplaywidth("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
2434 enddef | |
2435 | |
2436 def Test_strftime() | |
2437 CheckDefAndScriptFailure2(['strftime(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
2438 CheckDefAndScriptFailure2(['strftime("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
2439 enddef | |
2440 | |
2441 def Test_strgetchar() | |
2442 CheckDefAndScriptFailure2(['strgetchar(1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
2443 CheckDefAndScriptFailure2(['strgetchar("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
2122 enddef | 2444 enddef |
2123 | 2445 |
2124 def Test_stridx() | 2446 def Test_stridx() |
2125 CheckDefAndScriptFailure2(['stridx([1], "b")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') | 2447 CheckDefAndScriptFailure2(['stridx([1], "b")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') |
2126 CheckDefAndScriptFailure2(['stridx("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E731: Using a Dictionary as a String') | 2448 CheckDefAndScriptFailure2(['stridx("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E731: Using a Dictionary as a String') |
2209 CheckDefAndScriptFailure2(['tabpagenr(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E15: Invalid expression:') | 2531 CheckDefAndScriptFailure2(['tabpagenr(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E15: Invalid expression:') |
2210 assert_equal(1, tabpagenr('$')) | 2532 assert_equal(1, tabpagenr('$')) |
2211 assert_equal(1, tabpagenr()) | 2533 assert_equal(1, tabpagenr()) |
2212 enddef | 2534 enddef |
2213 | 2535 |
2536 def Test_tabpagewinnr() | |
2537 CheckDefAndScriptFailure2(['tabpagewinnr("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | |
2538 CheckDefAndScriptFailure2(['tabpagewinnr(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | |
2539 enddef | |
2540 | |
2214 def Test_taglist() | 2541 def Test_taglist() |
2215 CheckDefAndScriptFailure2(['taglist([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') | 2542 CheckDefAndScriptFailure2(['taglist([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') |
2216 CheckDefAndScriptFailure2(['taglist("a", [2])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') | 2543 CheckDefAndScriptFailure2(['taglist("a", [2])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E730: Using a List as a String') |
2217 enddef | 2544 enddef |
2218 | 2545 |
2230 | 2557 |
2231 def Test_term_getansicolors() | 2558 def Test_term_getansicolors() |
2232 CheckRunVimInTerminal | 2559 CheckRunVimInTerminal |
2233 CheckFeature termguicolors | 2560 CheckFeature termguicolors |
2234 CheckDefAndScriptFailure2(['term_getansicolors(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E745: Using a List as a Number') | 2561 CheckDefAndScriptFailure2(['term_getansicolors(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E745: Using a List as a Number') |
2562 enddef | |
2563 | |
2564 def Test_term_getattr() | |
2565 CheckRunVimInTerminal | |
2566 CheckDefAndScriptFailure2(['term_getattr("x", "a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | |
2567 CheckDefAndScriptFailure2(['term_getattr(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | |
2235 enddef | 2568 enddef |
2236 | 2569 |
2237 def Test_term_getcursor() | 2570 def Test_term_getcursor() |
2238 CheckRunVimInTerminal | 2571 CheckRunVimInTerminal |
2239 CheckDefAndScriptFailure2(['term_getcursor({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E728: Using a Dictionary as a Number') | 2572 CheckDefAndScriptFailure2(['term_getcursor({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E728: Using a Dictionary as a Number') |
2306 test_ignore_error('RESET') | 2639 test_ignore_error('RESET') |
2307 enddef | 2640 enddef |
2308 | 2641 |
2309 def Test_test_option_not_set() | 2642 def Test_test_option_not_set() |
2310 CheckDefAndScriptFailure2(['test_option_not_set([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E474: Invalid argument') | 2643 CheckDefAndScriptFailure2(['test_option_not_set([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E474: Invalid argument') |
2644 enddef | |
2645 | |
2646 def Test_test_override() | |
2647 CheckDefAndScriptFailure2(['test_override(1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | |
2648 CheckDefAndScriptFailure2(['test_override("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') | |
2311 enddef | 2649 enddef |
2312 | 2650 |
2313 def Test_test_setmouse() | 2651 def Test_test_setmouse() |
2314 CheckDefAndScriptFailure2(['test_setmouse("a", 10)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E474: Invalid argument') | 2652 CheckDefAndScriptFailure2(['test_setmouse("a", 10)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E474: Invalid argument') |
2315 CheckDefAndScriptFailure2(['test_setmouse(10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E474: Invalid argument') | 2653 CheckDefAndScriptFailure2(['test_setmouse(10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E474: Invalid argument') |
2390 assert_equal(9, virtcol([1, '$'])) | 2728 assert_equal(9, virtcol([1, '$'])) |
2391 assert_equal(0, virtcol([10, '$'])) | 2729 assert_equal(0, virtcol([10, '$'])) |
2392 bw! | 2730 bw! |
2393 enddef | 2731 enddef |
2394 | 2732 |
2733 def Test_visualmode() | |
2734 CheckDefFailure(['visualmode("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string') | |
2735 CheckDefFailure(['visualmode(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number') | |
2736 enddef | |
2737 | |
2395 def Test_win_execute() | 2738 def Test_win_execute() |
2396 assert_equal("\n" .. winnr(), win_execute(win_getid(), 'echo winnr()')) | 2739 assert_equal("\n" .. winnr(), win_execute(win_getid(), 'echo winnr()')) |
2397 assert_equal("\n" .. winnr(), 'echo winnr()'->win_execute(win_getid())) | 2740 assert_equal("\n" .. winnr(), 'echo winnr()'->win_execute(win_getid())) |
2398 assert_equal("\n" .. winnr(), win_execute(win_getid(), 'echo winnr()', 'silent')) | 2741 assert_equal("\n" .. winnr(), win_execute(win_getid(), 'echo winnr()', 'silent')) |
2399 assert_equal('', win_execute(342343, 'echo winnr()')) | 2742 assert_equal('', win_execute(342343, 'echo winnr()')) |
2409 CheckDefFailure(['win_getid(".")'], 'E1013: Argument 1: type mismatch, expected number but got string') | 2752 CheckDefFailure(['win_getid(".")'], 'E1013: Argument 1: type mismatch, expected number but got string') |
2410 CheckDefFailure(['win_getid(1, ".")'], 'E1013: Argument 2: type mismatch, expected number but got string') | 2753 CheckDefFailure(['win_getid(1, ".")'], 'E1013: Argument 2: type mismatch, expected number but got string') |
2411 assert_equal(win_getid(), win_getid(1, 1)) | 2754 assert_equal(win_getid(), win_getid(1, 1)) |
2412 enddef | 2755 enddef |
2413 | 2756 |
2757 def Test_win_gettype() | |
2758 CheckDefAndScriptFailure2(['win_gettype("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2759 enddef | |
2760 | |
2761 def Test_win_gotoid() | |
2762 CheckDefAndScriptFailure2(['win_gotoid("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2763 enddef | |
2764 | |
2765 def Test_win_id2tabwin() | |
2766 CheckDefAndScriptFailure2(['win_id2tabwin("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2767 enddef | |
2768 | |
2769 def Test_win_id2win() | |
2770 CheckDefAndScriptFailure2(['win_id2win("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2771 enddef | |
2772 | |
2773 def Test_win_screenpos() | |
2774 CheckDefAndScriptFailure2(['win_screenpos("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2775 enddef | |
2776 | |
2414 def Test_win_splitmove() | 2777 def Test_win_splitmove() |
2415 split | 2778 split |
2416 win_splitmove(1, 2, {vertical: true, rightbelow: true}) | 2779 win_splitmove(1, 2, {vertical: true, rightbelow: true}) |
2417 close | 2780 close |
2781 enddef | |
2782 | |
2783 def Test_winbufnr() | |
2784 CheckDefAndScriptFailure2(['winbufnr("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2785 enddef | |
2786 | |
2787 def Test_winheight() | |
2788 CheckDefAndScriptFailure2(['winheight("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2789 enddef | |
2790 | |
2791 def Test_winlayout() | |
2792 CheckDefAndScriptFailure2(['winlayout("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2418 enddef | 2793 enddef |
2419 | 2794 |
2420 def Test_winnr() | 2795 def Test_winnr() |
2421 CheckDefFailure(['winnr([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>') | 2796 CheckDefFailure(['winnr([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>') |
2422 assert_equal(1, winnr()) | 2797 assert_equal(1, winnr()) |
2447 var view: list<number> = winsaveview() | 2822 var view: list<number> = winsaveview() |
2448 END | 2823 END |
2449 CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected list<number> but got dict<number>', 1) | 2824 CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected list<number> but got dict<number>', 1) |
2450 enddef | 2825 enddef |
2451 | 2826 |
2452 def Test_win_gettype() | |
2453 CheckDefAndScriptFailure2(['win_gettype("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2454 enddef | |
2455 | |
2456 def Test_win_gotoid() | |
2457 CheckDefAndScriptFailure2(['win_gotoid("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2458 enddef | |
2459 | |
2460 def Test_win_id2tabwin() | |
2461 CheckDefAndScriptFailure2(['win_id2tabwin("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2462 enddef | |
2463 | |
2464 def Test_win_id2win() | |
2465 CheckDefAndScriptFailure2(['win_id2win("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2466 enddef | |
2467 | |
2468 def Test_win_screenpos() | |
2469 CheckDefAndScriptFailure2(['win_screenpos("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2470 enddef | |
2471 | |
2472 def Test_winbufnr() | |
2473 CheckDefAndScriptFailure2(['winbufnr("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2474 enddef | |
2475 | |
2476 def Test_winheight() | |
2477 CheckDefAndScriptFailure2(['winheight("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2478 enddef | |
2479 | |
2480 def Test_winlayout() | |
2481 CheckDefAndScriptFailure2(['winlayout("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | |
2482 enddef | |
2483 | |
2484 def Test_winwidth() | 2827 def Test_winwidth() |
2485 CheckDefAndScriptFailure2(['winwidth("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') | 2828 CheckDefAndScriptFailure2(['winwidth("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1030: Using a String as a Number') |
2486 enddef | 2829 enddef |
2487 | 2830 |
2488 def Test_xor() | 2831 def Test_xor() |