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

patch 8.2.3854: Vim9: inconsistent arguments for test functions Commit: https://github.com/vim/vim/commit/86b3ab4fa0de3e8884ab6a6ced2a70592b937d0f Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 19 18:33:23 2021 +0000 patch 8.2.3854: Vim9: inconsistent arguments for test functions Problem: Vim9: inconsistent arguments for test functions. Solution: When :def function and script have different arguments use a list with two items instead of a separate function.
author Bram Moolenaar <Bram@vim.org>
date Sun, 19 Dec 2021 19:45:03 +0100
parents 6fd15d82e898
children ab46f0976435
comparison
equal deleted inserted replaced
26649:8a10ad703e92 26650:a07323eb647f
65 65
66 def Test_abs() 66 def Test_abs()
67 assert_equal(0, abs(0)) 67 assert_equal(0, abs(0))
68 assert_equal(2, abs(-2)) 68 assert_equal(2, abs(-2))
69 assert_equal(3, abs(3)) 69 assert_equal(3, abs(3))
70 CheckDefAndScriptFailure2(['abs("text")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 70 CheckDefAndScriptFailure(['abs("text")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
71 if has('float') 71 if has('float')
72 assert_equal(0, abs(0)) 72 assert_equal(0, abs(0))
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() 78 def Test_add()
79 CheckDefAndScriptFailure2(['add({}, 1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1226: List or Blob required for argument 1') 79 CheckDefAndScriptFailure(['add({}, 1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1226: List or Blob required for argument 1'])
80 CheckDefFailure(['add([1], "a")'], 'E1012: Type mismatch; expected number but got string') 80 CheckDefFailure(['add([1], "a")'], 'E1012: Type mismatch; expected number but got string')
81 enddef 81 enddef
82 82
83 def Test_add_blob() 83 def Test_add_blob()
84 var b1: blob = 0z12 84 var b1: blob = 0z12
159 END 159 END
160 CheckScriptFailure(lines, 'E1012: Type mismatch; expected string but got number', 3) 160 CheckScriptFailure(lines, 'E1012: Type mismatch; expected string but got number', 3)
161 enddef 161 enddef
162 162
163 def Test_and() 163 def Test_and()
164 CheckDefAndScriptFailure2(['and("x", 0x2)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 164 CheckDefAndScriptFailure(['and("x", 0x2)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
165 CheckDefAndScriptFailure2(['and(0x1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 165 CheckDefAndScriptFailure(['and(0x1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
166 enddef 166 enddef
167 167
168 def Test_append() 168 def Test_append()
169 new 169 new
170 setline(1, range(3)) 170 setline(1, range(3))
178 assert_equal('zero', getline(1)) 178 assert_equal('zero', getline(1))
179 append(0, {a: 10}) 179 append(0, {a: 10})
180 assert_equal("{'a': 10}", getline(1)) 180 assert_equal("{'a': 10}", getline(1))
181 append(0, function('min')) 181 append(0, function('min'))
182 assert_equal("function('min')", getline(1)) 182 assert_equal("function('min')", getline(1))
183 CheckDefAndScriptFailure2(['append([1], "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 183 CheckDefAndScriptFailure(['append([1], "x")'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
184 CheckDefExecAndScriptFailure(['append("", "x")'], 'E1209: Invalid value for a line number') 184 CheckDefExecAndScriptFailure(['append("", "x")'], 'E1209: Invalid value for a line number')
185 bwipe! 185 bwipe!
186 enddef 186 enddef
187 187
188 def Test_appendbufline() 188 def Test_appendbufline()
195 var res2: bool = appendbufline(bnum, 3, 'two') 195 var res2: bool = appendbufline(bnum, 3, 'two')
196 assert_equal(false, res2) 196 assert_equal(false, res2)
197 assert_equal(['0', 'one', '1', 'two', '2', ''], getbufline(bnum, 1, '$')) 197 assert_equal(['0', 'one', '1', 'two', '2', ''], getbufline(bnum, 1, '$'))
198 appendbufline(bnum, 0, 'zero') 198 appendbufline(bnum, 0, 'zero')
199 assert_equal(['zero'], getbufline(bnum, 1)) 199 assert_equal(['zero'], getbufline(bnum, 1))
200 CheckDefAndScriptFailure2(['appendbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 200 CheckDefAndScriptFailure(['appendbufline([1], 1, "x")'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
201 CheckDefAndScriptFailure2(['appendbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 2') 201 CheckDefAndScriptFailure(['appendbufline(1, [1], "x")'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 2'])
202 CheckDefAndScriptFailure2(['appendbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 3') 202 CheckDefAndScriptFailure(['appendbufline(1, 1, {"a": 10})'], ['E1013: Argument 3: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 3'])
203 bnum->bufwinid()->win_gotoid() 203 bnum->bufwinid()->win_gotoid()
204 appendbufline('', 0, 'numbers') 204 appendbufline('', 0, 'numbers')
205 getline(1)->assert_equal('numbers') 205 getline(1)->assert_equal('numbers')
206 bwipe! 206 bwipe!
207 enddef 207 enddef
208 208
209 def Test_argc() 209 def Test_argc()
210 CheckDefAndScriptFailure2(['argc("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 210 CheckDefAndScriptFailure(['argc("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
211 enddef 211 enddef
212 212
213 def Test_arglistid() 213 def Test_arglistid()
214 CheckDefAndScriptFailure2(['arglistid("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 214 CheckDefAndScriptFailure(['arglistid("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
215 CheckDefAndScriptFailure2(['arglistid(1, "y")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 215 CheckDefAndScriptFailure(['arglistid(1, "y")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
216 CheckDefAndScriptFailure2(['arglistid("x", "y")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 216 CheckDefAndScriptFailure(['arglistid("x", "y")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
217 enddef 217 enddef
218 218
219 def Test_argv() 219 def Test_argv()
220 CheckDefAndScriptFailure2(['argv("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 220 CheckDefAndScriptFailure(['argv("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
221 CheckDefAndScriptFailure2(['argv(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 221 CheckDefAndScriptFailure(['argv(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
222 CheckDefAndScriptFailure2(['argv("x", "y")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 222 CheckDefAndScriptFailure(['argv("x", "y")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
223 enddef 223 enddef
224 224
225 def Test_assert_beeps() 225 def Test_assert_beeps()
226 CheckDefAndScriptFailure2(['assert_beeps(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 226 CheckDefAndScriptFailure(['assert_beeps(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
227 enddef 227 enddef
228 228
229 def Test_assert_equalfile() 229 def Test_assert_equalfile()
230 CheckDefAndScriptFailure2(['assert_equalfile(1, "f2")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 230 CheckDefAndScriptFailure(['assert_equalfile(1, "f2")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
231 CheckDefAndScriptFailure2(['assert_equalfile("f1", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1174: String required for argument 2') 231 CheckDefAndScriptFailure(['assert_equalfile("f1", true)'], ['E1013: Argument 2: type mismatch, expected string but got bool', 'E1174: String required for argument 2'])
232 CheckDefAndScriptFailure2(['assert_equalfile("f1", "f2", ["a"])'], 'E1013: Argument 3: type mismatch, expected string but got list<string>', 'E1174: String required for argument 3') 232 CheckDefAndScriptFailure(['assert_equalfile("f1", "f2", ["a"])'], ['E1013: Argument 3: type mismatch, expected string but got list<string>', 'E1174: String required for argument 3'])
233 enddef 233 enddef
234 234
235 def Test_assert_exception() 235 def Test_assert_exception()
236 CheckDefAndScriptFailure2(['assert_exception({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1') 236 CheckDefAndScriptFailure(['assert_exception({})'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1'])
237 CheckDefAndScriptFailure2(['assert_exception("E1:", v:null)'], 'E1013: Argument 2: type mismatch, expected string but got special', 'E1174: String required for argument 2') 237 CheckDefAndScriptFailure(['assert_exception("E1:", v:null)'], ['E1013: Argument 2: type mismatch, expected string but got special', 'E1174: String required for argument 2'])
238 enddef 238 enddef
239 239
240 def Test_assert_fails() 240 def Test_assert_fails()
241 CheckDefAndScriptFailure2(['assert_fails([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 241 CheckDefAndScriptFailure(['assert_fails([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
242 CheckDefAndScriptFailure2(['assert_fails("a", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1222: String or List required for argument 2') 242 CheckDefAndScriptFailure(['assert_fails("a", true)'], ['E1013: Argument 2: type mismatch, expected string but got bool', 'E1222: String or List required for argument 2'])
243 CheckDefAndScriptFailure2(['assert_fails("a", "b", "c", "d")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 243 CheckDefAndScriptFailure(['assert_fails("a", "b", "c", "d")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
244 CheckDefAndScriptFailure2(['assert_fails("a", "b", "c", 4, 5)'], 'E1013: Argument 5: type mismatch, expected string but got number', 'E1174: String required for argument 5') 244 CheckDefAndScriptFailure(['assert_fails("a", "b", "c", 4, 5)'], ['E1013: Argument 5: type mismatch, expected string but got number', 'E1174: String required for argument 5'])
245 enddef 245 enddef
246 246
247 def Test_assert_inrange() 247 def Test_assert_inrange()
248 CheckDefAndScriptFailure2(['assert_inrange("a", 2, 3)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 248 CheckDefAndScriptFailure(['assert_inrange("a", 2, 3)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
249 CheckDefAndScriptFailure2(['assert_inrange(1, "b", 3)'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2') 249 CheckDefAndScriptFailure(['assert_inrange(1, "b", 3)'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2'])
250 CheckDefAndScriptFailure2(['assert_inrange(1, 2, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 3') 250 CheckDefAndScriptFailure(['assert_inrange(1, 2, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 3'])
251 CheckDefAndScriptFailure2(['assert_inrange(1, 2, 3, 4)'], 'E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4') 251 CheckDefAndScriptFailure(['assert_inrange(1, 2, 3, 4)'], ['E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4'])
252 enddef 252 enddef
253 253
254 def Test_assert_match() 254 def Test_assert_match()
255 CheckDefAndScriptFailure2(['assert_match({}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', '') 255 CheckDefAndScriptFailure(['assert_match({}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', ''])
256 CheckDefAndScriptFailure2(['assert_match("a", 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', '') 256 CheckDefAndScriptFailure(['assert_match("a", 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', ''])
257 CheckDefAndScriptFailure2(['assert_match("a", "b", null)'], 'E1013: Argument 3: type mismatch, expected string but got special', '') 257 CheckDefAndScriptFailure(['assert_match("a", "b", null)'], ['E1013: Argument 3: type mismatch, expected string but got special', ''])
258 enddef 258 enddef
259 259
260 def Test_assert_nobeep() 260 def Test_assert_nobeep()
261 CheckDefAndScriptFailure2(['assert_nobeep(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 261 CheckDefAndScriptFailure(['assert_nobeep(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
262 enddef 262 enddef
263 263
264 def Test_assert_notmatch() 264 def Test_assert_notmatch()
265 CheckDefAndScriptFailure2(['assert_notmatch({}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', '') 265 CheckDefAndScriptFailure(['assert_notmatch({}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', ''])
266 CheckDefAndScriptFailure2(['assert_notmatch("a", 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', '') 266 CheckDefAndScriptFailure(['assert_notmatch("a", 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', ''])
267 CheckDefAndScriptFailure2(['assert_notmatch("a", "b", null)'], 'E1013: Argument 3: type mismatch, expected string but got special', '') 267 CheckDefAndScriptFailure(['assert_notmatch("a", "b", null)'], ['E1013: Argument 3: type mismatch, expected string but got special', ''])
268 enddef 268 enddef
269 269
270 def Test_assert_report() 270 def Test_assert_report()
271 CheckDefAndScriptFailure2(['assert_report([1, 2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') 271 CheckDefAndScriptFailure(['assert_report([1, 2])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
272 enddef 272 enddef
273 273
274 def Test_balloon_show() 274 def Test_balloon_show()
275 CheckGui 275 CheckGui
276 CheckFeature balloon_eval 276 CheckFeature balloon_eval
277 277
278 assert_fails('balloon_show(10)', 'E1222:') 278 assert_fails('balloon_show(10)', 'E1222:')
279 assert_fails('balloon_show(true)', 'E1222:') 279 assert_fails('balloon_show(true)', 'E1222:')
280 280
281 CheckDefAndScriptFailure2(['balloon_show(1.2)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1222: String or List required for argument 1') 281 CheckDefAndScriptFailure(['balloon_show(1.2)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1222: String or List required for argument 1'])
282 CheckDefAndScriptFailure2(['balloon_show({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1') 282 CheckDefAndScriptFailure(['balloon_show({"a": 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1'])
283 enddef 283 enddef
284 284
285 def Test_balloon_split() 285 def Test_balloon_split()
286 CheckFeature balloon_eval_term 286 CheckFeature balloon_eval_term
287 287
288 assert_fails('balloon_split([])', 'E1174:') 288 assert_fails('balloon_split([])', 'E1174:')
289 assert_fails('balloon_split(true)', 'E1174:') 289 assert_fails('balloon_split(true)', 'E1174:')
290 enddef 290 enddef
291 291
292 def Test_blob2list() 292 def Test_blob2list()
293 CheckDefAndScriptFailure2(['blob2list(10)'], 'E1013: Argument 1: type mismatch, expected blob but got number', 'E1238: Blob required for argument 1') 293 CheckDefAndScriptFailure(['blob2list(10)'], ['E1013: Argument 1: type mismatch, expected blob but got number', 'E1238: Blob required for argument 1'])
294 enddef 294 enddef
295 295
296 def Test_browse() 296 def Test_browse()
297 CheckFeature browse 297 CheckFeature browse
298 298
299 CheckDefAndScriptFailure2(['browse(2, "title", "dir", "file")'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1') 299 CheckDefAndScriptFailure(['browse(2, "title", "dir", "file")'], ['E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1'])
300 CheckDefAndScriptFailure2(['browse(true, 2, "dir", "file")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 300 CheckDefAndScriptFailure(['browse(true, 2, "dir", "file")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
301 CheckDefAndScriptFailure2(['browse(true, "title", 3, "file")'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 301 CheckDefAndScriptFailure(['browse(true, "title", 3, "file")'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
302 CheckDefAndScriptFailure2(['browse(true, "title", "dir", 4)'], 'E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4') 302 CheckDefAndScriptFailure(['browse(true, "title", "dir", 4)'], ['E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4'])
303 enddef 303 enddef
304 304
305 def Test_browsedir() 305 def Test_browsedir()
306 if has('browse') 306 if has('browse')
307 CheckDefAndScriptFailure2(['browsedir({}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1') 307 CheckDefAndScriptFailure(['browsedir({}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1'])
308 CheckDefAndScriptFailure2(['browsedir("a", [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') 308 CheckDefAndScriptFailure(['browsedir("a", [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2'])
309 endif 309 endif
310 enddef 310 enddef
311 311
312 def Test_bufadd() 312 def Test_bufadd()
313 assert_fails('bufadd([])', 'E1174:') 313 assert_fails('bufadd([])', 'E1174:')
352 bufnr('%')->assert_equal(buf) 352 bufnr('%')->assert_equal(buf)
353 353
354 buf = bufnr('Xdummy', true) 354 buf = bufnr('Xdummy', true)
355 buf->assert_notequal(-1) 355 buf->assert_notequal(-1)
356 exe 'bwipe! ' .. buf 356 exe 'bwipe! ' .. buf
357 CheckDefAndScriptFailure2(['bufnr([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 357 CheckDefAndScriptFailure(['bufnr([1])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
358 CheckDefAndScriptFailure2(['bufnr(1, 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 358 CheckDefAndScriptFailure(['bufnr(1, 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
359 enddef 359 enddef
360 360
361 def Test_bufwinid() 361 def Test_bufwinid()
362 var origwin = win_getid() 362 var origwin = win_getid()
363 below split SomeFile 363 below split SomeFile
379 assert_fails('bufwinnr(true)', 'E1220:') 379 assert_fails('bufwinnr(true)', 'E1220:')
380 assert_fails('bufwinnr([])', 'E1220:') 380 assert_fails('bufwinnr([])', 'E1220:')
381 enddef 381 enddef
382 382
383 def Test_byte2line() 383 def Test_byte2line()
384 CheckDefAndScriptFailure2(['byte2line("1")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 384 CheckDefAndScriptFailure(['byte2line("1")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
385 CheckDefAndScriptFailure2(['byte2line([])'], 'E1013: Argument 1: type mismatch, expected number but got list<unknown>', 'E1210: Number required for argument 1') 385 CheckDefAndScriptFailure(['byte2line([])'], ['E1013: Argument 1: type mismatch, expected number but got list<unknown>', 'E1210: Number required for argument 1'])
386 byte2line(0)->assert_equal(-1) 386 byte2line(0)->assert_equal(-1)
387 enddef 387 enddef
388 388
389 def Test_byteidx() 389 def Test_byteidx()
390 CheckDefAndScriptFailure2(['byteidx(1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 390 CheckDefAndScriptFailure(['byteidx(1, 2)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
391 CheckDefAndScriptFailure2(['byteidx("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 391 CheckDefAndScriptFailure(['byteidx("a", "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
392 byteidx('', 0)->assert_equal(0) 392 byteidx('', 0)->assert_equal(0)
393 byteidx('', 1)->assert_equal(-1) 393 byteidx('', 1)->assert_equal(-1)
394 enddef 394 enddef
395 395
396 def Test_byteidxcomp() 396 def Test_byteidxcomp()
397 CheckDefAndScriptFailure2(['byteidxcomp(1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 397 CheckDefAndScriptFailure(['byteidxcomp(1, 2)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
398 CheckDefAndScriptFailure2(['byteidxcomp("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 398 CheckDefAndScriptFailure(['byteidxcomp("a", "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
399 enddef 399 enddef
400 400
401 def Test_call_call() 401 def Test_call_call()
402 var l = [3, 2, 1] 402 var l = [3, 2, 1]
403 call('reverse', [l]) 403 call('reverse', [l])
404 l->assert_equal([1, 2, 3]) 404 l->assert_equal([1, 2, 3])
405 CheckDefAndScriptFailure2(['call("reverse", 2)'], 'E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2') 405 CheckDefAndScriptFailure(['call("reverse", 2)'], ['E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2'])
406 CheckDefAndScriptFailure2(['call("reverse", [2], [1])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 406 CheckDefAndScriptFailure(['call("reverse", [2], [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
407 enddef 407 enddef
408 408
409 def Test_ch_canread() 409 def Test_ch_canread()
410 if !has('channel') 410 if !has('channel')
411 CheckFeature channel 411 CheckFeature channel
412 else 412 else
413 CheckDefAndScriptFailure2(['ch_canread(10)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 413 CheckDefAndScriptFailure(['ch_canread(10)'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
414 endif 414 endif
415 enddef 415 enddef
416 416
417 def Test_ch_close() 417 def Test_ch_close()
418 if !has('channel') 418 if !has('channel')
419 CheckFeature channel 419 CheckFeature channel
420 else 420 else
421 CheckDefAndScriptFailure2(['ch_close("c")'], 'E1013: Argument 1: type mismatch, expected channel but got string', 'E1217: Channel or Job required for argument 1') 421 CheckDefAndScriptFailure(['ch_close("c")'], ['E1013: Argument 1: type mismatch, expected channel but got string', 'E1217: Channel or Job required for argument 1'])
422 endif 422 endif
423 enddef 423 enddef
424 424
425 def Test_ch_close_in() 425 def Test_ch_close_in()
426 if !has('channel') 426 if !has('channel')
427 CheckFeature channel 427 CheckFeature channel
428 else 428 else
429 CheckDefAndScriptFailure2(['ch_close_in(true)'], 'E1013: Argument 1: type mismatch, expected channel but got bool', 'E1217: Channel or Job required for argument 1') 429 CheckDefAndScriptFailure(['ch_close_in(true)'], ['E1013: Argument 1: type mismatch, expected channel but got bool', 'E1217: Channel or Job required for argument 1'])
430 endif 430 endif
431 enddef 431 enddef
432 432
433 def Test_ch_evalexpr() 433 def Test_ch_evalexpr()
434 if !has('channel') 434 if !has('channel')
435 CheckFeature channel 435 CheckFeature channel
436 else 436 else
437 CheckDefAndScriptFailure2(['ch_evalexpr(1, "a")'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 437 CheckDefAndScriptFailure(['ch_evalexpr(1, "a")'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
438 CheckDefAndScriptFailure2(['ch_evalexpr(test_null_channel(), 1, [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 438 CheckDefAndScriptFailure(['ch_evalexpr(test_null_channel(), 1, [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
439 endif 439 endif
440 enddef 440 enddef
441 441
442 def Test_ch_evalraw() 442 def Test_ch_evalraw()
443 if !has('channel') 443 if !has('channel')
444 CheckFeature channel 444 CheckFeature channel
445 else 445 else
446 CheckDefAndScriptFailure2(['ch_evalraw(1, "")'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 446 CheckDefAndScriptFailure(['ch_evalraw(1, "")'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
447 CheckDefAndScriptFailure2(['ch_evalraw(test_null_channel(), 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1221: String or Blob required for argument 2') 447 CheckDefAndScriptFailure(['ch_evalraw(test_null_channel(), 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1221: String or Blob required for argument 2'])
448 CheckDefAndScriptFailure2(['ch_evalraw(test_null_channel(), "", [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 448 CheckDefAndScriptFailure(['ch_evalraw(test_null_channel(), "", [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
449 endif 449 endif
450 enddef 450 enddef
451 451
452 def Test_ch_getbufnr() 452 def Test_ch_getbufnr()
453 if !has('channel') 453 if !has('channel')
454 CheckFeature channel 454 CheckFeature channel
455 else 455 else
456 CheckDefAndScriptFailure2(['ch_getbufnr(1, "a")'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 456 CheckDefAndScriptFailure(['ch_getbufnr(1, "a")'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
457 CheckDefAndScriptFailure2(['ch_getbufnr(test_null_channel(), 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 457 CheckDefAndScriptFailure(['ch_getbufnr(test_null_channel(), 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
458 # test empty string argument for ch_getbufnr() 458 # test empty string argument for ch_getbufnr()
459 var job: job = job_start(&shell) 459 var job: job = job_start(&shell)
460 job->ch_getbufnr('')->assert_equal(-1) 460 job->ch_getbufnr('')->assert_equal(-1)
461 job_stop(job) 461 job_stop(job)
462 endif 462 endif
464 464
465 def Test_ch_getjob() 465 def Test_ch_getjob()
466 if !has('channel') 466 if !has('channel')
467 CheckFeature channel 467 CheckFeature channel
468 else 468 else
469 CheckDefAndScriptFailure2(['ch_getjob(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 469 CheckDefAndScriptFailure(['ch_getjob(1)'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
470 CheckDefAndScriptFailure2(['ch_getjob({"a": 10})'], 'E1013: Argument 1: type mismatch, expected channel but got dict<number>', 'E1217: Channel or Job required for argument 1') 470 CheckDefAndScriptFailure(['ch_getjob({"a": 10})'], ['E1013: Argument 1: type mismatch, expected channel but got dict<number>', 'E1217: Channel or Job required for argument 1'])
471 assert_equal(0, ch_getjob(test_null_channel())) 471 assert_equal(0, ch_getjob(test_null_channel()))
472 endif 472 endif
473 enddef 473 enddef
474 474
475 def Test_ch_info() 475 def Test_ch_info()
476 if !has('channel') 476 if !has('channel')
477 CheckFeature channel 477 CheckFeature channel
478 else 478 else
479 CheckDefAndScriptFailure2(['ch_info([1])'], 'E1013: Argument 1: type mismatch, expected channel but got list<number>', 'E1217: Channel or Job required for argument 1') 479 CheckDefAndScriptFailure(['ch_info([1])'], ['E1013: Argument 1: type mismatch, expected channel but got list<number>', 'E1217: Channel or Job required for argument 1'])
480 endif 480 endif
481 enddef 481 enddef
482 482
483 def Test_ch_log() 483 def Test_ch_log()
484 if !has('channel') 484 if !has('channel')
485 CheckFeature channel 485 CheckFeature channel
486 else 486 else
487 CheckDefAndScriptFailure2(['ch_log(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') 487 CheckDefAndScriptFailure(['ch_log(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1'])
488 CheckDefAndScriptFailure2(['ch_log("a", 1)'], 'E1013: Argument 2: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 2') 488 CheckDefAndScriptFailure(['ch_log("a", 1)'], ['E1013: Argument 2: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 2'])
489 endif 489 endif
490 enddef 490 enddef
491 491
492 def Test_ch_logfile() 492 def Test_ch_logfile()
493 if !has('channel') 493 if !has('channel')
495 else 495 else
496 assert_fails('ch_logfile(true)', 'E1174:') 496 assert_fails('ch_logfile(true)', 'E1174:')
497 assert_fails('ch_logfile("foo", true)', 'E1174:') 497 assert_fails('ch_logfile("foo", true)', 'E1174:')
498 ch_logfile('', '')->assert_equal(0) 498 ch_logfile('', '')->assert_equal(0)
499 499
500 CheckDefAndScriptFailure2(['ch_logfile(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 500 CheckDefAndScriptFailure(['ch_logfile(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
501 CheckDefAndScriptFailure2(['ch_logfile("a", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1174: String required for argument 2') 501 CheckDefAndScriptFailure(['ch_logfile("a", true)'], ['E1013: Argument 2: type mismatch, expected string but got bool', 'E1174: String required for argument 2'])
502 endif 502 endif
503 enddef 503 enddef
504 504
505 def Test_ch_open() 505 def Test_ch_open()
506 if !has('channel') 506 if !has('channel')
507 CheckFeature channel 507 CheckFeature channel
508 else 508 else
509 CheckDefAndScriptFailure2(['ch_open({"a": 10}, "a")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 509 CheckDefAndScriptFailure(['ch_open({"a": 10}, "a")'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
510 CheckDefAndScriptFailure2(['ch_open("a", [1])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') 510 CheckDefAndScriptFailure(['ch_open("a", [1])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2'])
511 CheckDefExecAndScriptFailure(['ch_open("")'], 'E475: Invalid argument') 511 CheckDefExecAndScriptFailure(['ch_open("")'], 'E475: Invalid argument')
512 endif 512 endif
513 enddef 513 enddef
514 514
515 def Test_ch_read() 515 def Test_ch_read()
516 if !has('channel') 516 if !has('channel')
517 CheckFeature channel 517 CheckFeature channel
518 else 518 else
519 CheckDefAndScriptFailure2(['ch_read(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 519 CheckDefAndScriptFailure(['ch_read(1)'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
520 CheckDefAndScriptFailure2(['ch_read(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 520 CheckDefAndScriptFailure(['ch_read(test_null_channel(), [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
521 endif 521 endif
522 enddef 522 enddef
523 523
524 def Test_ch_readblob() 524 def Test_ch_readblob()
525 if !has('channel') 525 if !has('channel')
526 CheckFeature channel 526 CheckFeature channel
527 else 527 else
528 CheckDefAndScriptFailure2(['ch_readblob(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 528 CheckDefAndScriptFailure(['ch_readblob(1)'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
529 CheckDefAndScriptFailure2(['ch_readblob(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 529 CheckDefAndScriptFailure(['ch_readblob(test_null_channel(), [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
530 endif 530 endif
531 enddef 531 enddef
532 532
533 def Test_ch_readraw() 533 def Test_ch_readraw()
534 if !has('channel') 534 if !has('channel')
535 CheckFeature channel 535 CheckFeature channel
536 else 536 else
537 CheckDefAndScriptFailure2(['ch_readraw(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 537 CheckDefAndScriptFailure(['ch_readraw(1)'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
538 CheckDefAndScriptFailure2(['ch_readraw(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 538 CheckDefAndScriptFailure(['ch_readraw(test_null_channel(), [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
539 endif 539 endif
540 enddef 540 enddef
541 541
542 def Test_ch_sendexpr() 542 def Test_ch_sendexpr()
543 if !has('channel') 543 if !has('channel')
544 CheckFeature channel 544 CheckFeature channel
545 else 545 else
546 CheckDefAndScriptFailure2(['ch_sendexpr(1, "a")'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 546 CheckDefAndScriptFailure(['ch_sendexpr(1, "a")'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
547 CheckDefAndScriptFailure2(['ch_sendexpr(test_null_channel(), 1, [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 547 CheckDefAndScriptFailure(['ch_sendexpr(test_null_channel(), 1, [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
548 endif 548 endif
549 enddef 549 enddef
550 550
551 def Test_ch_sendraw() 551 def Test_ch_sendraw()
552 if !has('channel') 552 if !has('channel')
553 CheckFeature channel 553 CheckFeature channel
554 else 554 else
555 CheckDefAndScriptFailure2(['ch_sendraw(1, "")'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 555 CheckDefAndScriptFailure(['ch_sendraw(1, "")'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
556 CheckDefAndScriptFailure2(['ch_sendraw(test_null_channel(), 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1221: String or Blob required for argument 2') 556 CheckDefAndScriptFailure(['ch_sendraw(test_null_channel(), 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1221: String or Blob required for argument 2'])
557 CheckDefAndScriptFailure2(['ch_sendraw(test_null_channel(), "", [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 557 CheckDefAndScriptFailure(['ch_sendraw(test_null_channel(), "", [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
558 endif 558 endif
559 enddef 559 enddef
560 560
561 def Test_ch_setoptions() 561 def Test_ch_setoptions()
562 if !has('channel') 562 if !has('channel')
563 CheckFeature channel 563 CheckFeature channel
564 else 564 else
565 CheckDefAndScriptFailure2(['ch_setoptions(1, {})'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 565 CheckDefAndScriptFailure(['ch_setoptions(1, {})'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
566 CheckDefAndScriptFailure2(['ch_setoptions(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 566 CheckDefAndScriptFailure(['ch_setoptions(test_null_channel(), [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
567 endif 567 endif
568 enddef 568 enddef
569 569
570 def Test_ch_status() 570 def Test_ch_status()
571 if !has('channel') 571 if !has('channel')
572 CheckFeature channel 572 CheckFeature channel
573 else 573 else
574 CheckDefAndScriptFailure2(['ch_status(1)'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') 574 CheckDefAndScriptFailure(['ch_status(1)'], ['E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1'])
575 CheckDefAndScriptFailure2(['ch_status(test_null_channel(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 575 CheckDefAndScriptFailure(['ch_status(test_null_channel(), [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
576 endif 576 endif
577 enddef 577 enddef
578 578
579 def Test_char2nr() 579 def Test_char2nr()
580 char2nr('あ', true)->assert_equal(12354) 580 char2nr('あ', true)->assert_equal(12354)
581 581
582 assert_fails('char2nr(true)', 'E1174:') 582 assert_fails('char2nr(true)', 'E1174:')
583 CheckDefAndScriptFailure2(['char2nr(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 583 CheckDefAndScriptFailure(['char2nr(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
584 CheckDefAndScriptFailure2(['char2nr("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 584 CheckDefAndScriptFailure(['char2nr("a", 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
585 assert_equal(97, char2nr('a', 1)) 585 assert_equal(97, char2nr('a', 1))
586 assert_equal(97, char2nr('a', 0)) 586 assert_equal(97, char2nr('a', 0))
587 assert_equal(97, char2nr('a', true)) 587 assert_equal(97, char2nr('a', true))
588 assert_equal(97, char2nr('a', false)) 588 assert_equal(97, char2nr('a', false))
589 char2nr('')->assert_equal(0) 589 char2nr('')->assert_equal(0)
593 assert_fails('charclass(true)', 'E1174:') 593 assert_fails('charclass(true)', 'E1174:')
594 charclass('')->assert_equal(0) 594 charclass('')->assert_equal(0)
595 enddef 595 enddef
596 596
597 def Test_charcol() 597 def Test_charcol()
598 CheckDefAndScriptFailure2(['charcol(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1222: String or List required for argument 1') 598 CheckDefAndScriptFailure(['charcol(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1222: String or List required for argument 1'])
599 CheckDefAndScriptFailure2(['charcol({a: 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1') 599 CheckDefAndScriptFailure(['charcol({a: 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1'])
600 CheckDefExecAndScriptFailure(['charcol("")'], 'E1209: Invalid value for a line number') 600 CheckDefExecAndScriptFailure(['charcol("")'], 'E1209: Invalid value for a line number')
601 new 601 new
602 setline(1, ['abcdefgh']) 602 setline(1, ['abcdefgh'])
603 cursor(1, 4) 603 cursor(1, 4)
604 assert_equal(4, charcol('.')) 604 assert_equal(4, charcol('.'))
606 assert_equal(0, charcol([10, '$'])) 606 assert_equal(0, charcol([10, '$']))
607 bw! 607 bw!
608 enddef 608 enddef
609 609
610 def Test_charidx() 610 def Test_charidx()
611 CheckDefAndScriptFailure2(['charidx(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1') 611 CheckDefAndScriptFailure(['charidx(0z10, 1)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1'])
612 CheckDefAndScriptFailure2(['charidx("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 612 CheckDefAndScriptFailure(['charidx("a", "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
613 CheckDefAndScriptFailure2(['charidx("a", 1, "")'], 'E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3') 613 CheckDefAndScriptFailure(['charidx("a", 1, "")'], ['E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3'])
614 charidx('', 0)->assert_equal(-1) 614 charidx('', 0)->assert_equal(-1)
615 charidx('', 1)->assert_equal(-1) 615 charidx('', 1)->assert_equal(-1)
616 enddef 616 enddef
617 617
618 def Test_chdir() 618 def Test_chdir()
619 assert_fails('chdir(true)', 'E1174:') 619 assert_fails('chdir(true)', 'E1174:')
620 enddef 620 enddef
621 621
622 def Test_cindent() 622 def Test_cindent()
623 CheckDefAndScriptFailure2(['cindent([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 623 CheckDefAndScriptFailure(['cindent([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
624 CheckDefAndScriptFailure2(['cindent(null)'], 'E1013: Argument 1: type mismatch, expected string but got special', 'E1220: String or Number required for argument 1') 624 CheckDefAndScriptFailure(['cindent(null)'], ['E1013: Argument 1: type mismatch, expected string but got special', 'E1220: String or Number required for argument 1'])
625 CheckDefExecAndScriptFailure(['cindent("")'], 'E1209: Invalid value for a line number') 625 CheckDefExecAndScriptFailure(['cindent("")'], 'E1209: Invalid value for a line number')
626 assert_equal(-1, cindent(0)) 626 assert_equal(-1, cindent(0))
627 assert_equal(0, cindent('.')) 627 assert_equal(0, cindent('.'))
628 enddef 628 enddef
629 629
630 def Test_clearmatches() 630 def Test_clearmatches()
631 CheckDefAndScriptFailure2(['clearmatches("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 631 CheckDefAndScriptFailure(['clearmatches("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
632 enddef 632 enddef
633 633
634 def Test_col() 634 def Test_col()
635 new 635 new
636 setline(1, 'abcdefgh') 636 setline(1, 'abcdefgh')
639 col([1, '$'])->assert_equal(9) 639 col([1, '$'])->assert_equal(9)
640 assert_equal(0, col([10, '$'])) 640 assert_equal(0, col([10, '$']))
641 641
642 assert_fails('col(true)', 'E1222:') 642 assert_fails('col(true)', 'E1222:')
643 643
644 CheckDefAndScriptFailure2(['col(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1222: String or List required for argument 1') 644 CheckDefAndScriptFailure(['col(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1222: String or List required for argument 1'])
645 CheckDefAndScriptFailure2(['col({a: 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1') 645 CheckDefAndScriptFailure(['col({a: 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1'])
646 CheckDefAndScriptFailure2(['col(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1222: String or List required for argument 1') 646 CheckDefAndScriptFailure(['col(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1222: String or List required for argument 1'])
647 CheckDefExecAndScriptFailure(['col("")'], 'E1209: Invalid value for a line number') 647 CheckDefExecAndScriptFailure(['col("")'], 'E1209: Invalid value for a line number')
648 bw! 648 bw!
649 enddef 649 enddef
650 650
651 def Test_complete() 651 def Test_complete()
652 CheckDefAndScriptFailure2(['complete("1", [])'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 652 CheckDefAndScriptFailure(['complete("1", [])'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
653 CheckDefAndScriptFailure2(['complete(1, {})'], 'E1013: Argument 2: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 2') 653 CheckDefAndScriptFailure(['complete(1, {})'], ['E1013: Argument 2: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 2'])
654 enddef 654 enddef
655 655
656 def Test_complete_add() 656 def Test_complete_add()
657 CheckDefAndScriptFailure2(['complete_add([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1223: String or Dictionary required for argument 1') 657 CheckDefAndScriptFailure(['complete_add([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1223: String or Dictionary required for argument 1'])
658 enddef 658 enddef
659 659
660 def Test_complete_info() 660 def Test_complete_info()
661 CheckDefAndScriptFailure2(['complete_info("")'], 'E1013: Argument 1: type mismatch, expected list<string> but got string', 'E1211: List required for argument 1') 661 CheckDefAndScriptFailure(['complete_info("")'], ['E1013: Argument 1: type mismatch, expected list<string> but got string', 'E1211: List required for argument 1'])
662 CheckDefAndScriptFailure2(['complete_info({})'], 'E1013: Argument 1: type mismatch, expected list<string> but got dict<unknown>', 'E1211: List required for argument 1') 662 CheckDefAndScriptFailure(['complete_info({})'], ['E1013: Argument 1: type mismatch, expected list<string> but got dict<unknown>', 'E1211: List required for argument 1'])
663 assert_equal({'pum_visible': 0, 'mode': '', 'selected': -1, 'items': []}, complete_info()) 663 assert_equal({'pum_visible': 0, 'mode': '', 'selected': -1, 'items': []}, complete_info())
664 assert_equal({'mode': '', 'items': []}, complete_info(['mode', 'items'])) 664 assert_equal({'mode': '', 'items': []}, complete_info(['mode', 'items']))
665 enddef 665 enddef
666 666
667 def Test_confirm() 667 def Test_confirm()
670 endif 670 endif
671 671
672 assert_fails('confirm(true)', 'E1174:') 672 assert_fails('confirm(true)', 'E1174:')
673 assert_fails('confirm("yes", true)', 'E1174:') 673 assert_fails('confirm("yes", true)', 'E1174:')
674 assert_fails('confirm("yes", "maybe", 2, true)', 'E1174:') 674 assert_fails('confirm("yes", "maybe", 2, true)', 'E1174:')
675 CheckDefAndScriptFailure2(['confirm(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 675 CheckDefAndScriptFailure(['confirm(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
676 CheckDefAndScriptFailure2(['confirm("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 676 CheckDefAndScriptFailure(['confirm("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
677 CheckDefAndScriptFailure2(['confirm("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 677 CheckDefAndScriptFailure(['confirm("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
678 CheckDefAndScriptFailure2(['confirm("a", "b", 3, 4)'], 'E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4') 678 CheckDefAndScriptFailure(['confirm("a", "b", 3, 4)'], ['E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4'])
679 enddef 679 enddef
680 680
681 def Test_copy_return_type() 681 def Test_copy_return_type()
682 var l = copy([1, 2, 3]) 682 var l = copy([1, 2, 3])
683 var res = 0 683 var res = 0
697 enddef 697 enddef
698 698
699 def Test_count() 699 def Test_count()
700 count('ABC ABC ABC', 'b', true)->assert_equal(3) 700 count('ABC ABC ABC', 'b', true)->assert_equal(3)
701 count('ABC ABC ABC', 'b', false)->assert_equal(0) 701 count('ABC ABC ABC', 'b', false)->assert_equal(0)
702 CheckDefAndScriptFailure2(['count(10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1225: String, List or Dictionary required for argument 1') 702 CheckDefAndScriptFailure(['count(10, 1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1225: String, List or Dictionary required for argument 1'])
703 CheckDefAndScriptFailure2(['count("a", [1], 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 703 CheckDefAndScriptFailure(['count("a", [1], 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
704 CheckDefAndScriptFailure2(['count("a", [1], 0, "b")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 704 CheckDefAndScriptFailure(['count("a", [1], 0, "b")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
705 count([1, 2, 2, 3], 2)->assert_equal(2) 705 count([1, 2, 2, 3], 2)->assert_equal(2)
706 count([1, 2, 2, 3], 2, false, 2)->assert_equal(1) 706 count([1, 2, 2, 3], 2, false, 2)->assert_equal(1)
707 count({a: 1.1, b: 2.2, c: 1.1}, 1.1)->assert_equal(2) 707 count({a: 1.1, b: 2.2, c: 1.1}, 1.1)->assert_equal(2)
708 enddef 708 enddef
709 709
710 def Test_cscope_connection() 710 def Test_cscope_connection()
711 CheckFeature cscope 711 CheckFeature cscope
712 assert_equal(0, cscope_connection()) 712 assert_equal(0, cscope_connection())
713 CheckDefAndScriptFailure2(['cscope_connection("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 713 CheckDefAndScriptFailure(['cscope_connection("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
714 CheckDefAndScriptFailure2(['cscope_connection(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 714 CheckDefAndScriptFailure(['cscope_connection(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
715 CheckDefAndScriptFailure2(['cscope_connection(1, "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 715 CheckDefAndScriptFailure(['cscope_connection(1, "b", 3)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
716 enddef 716 enddef
717 717
718 def Test_cursor() 718 def Test_cursor()
719 new 719 new
720 setline(1, range(4)) 720 setline(1, range(4))
727 727
728 var lines =<< trim END 728 var lines =<< trim END
729 cursor('2', 1) 729 cursor('2', 1)
730 END 730 END
731 CheckDefExecAndScriptFailure(lines, 'E1209:') 731 CheckDefExecAndScriptFailure(lines, 'E1209:')
732 CheckDefAndScriptFailure2(['cursor(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected number but got blob', 'E1224: String, Number or List required for argument 1') 732 CheckDefAndScriptFailure(['cursor(0z10, 1)'], ['E1013: Argument 1: type mismatch, expected number but got blob', 'E1224: String, Number or List required for argument 1'])
733 CheckDefAndScriptFailure2(['cursor(1, "2")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 733 CheckDefAndScriptFailure(['cursor(1, "2")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
734 CheckDefAndScriptFailure2(['cursor(1, 2, "3")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 734 CheckDefAndScriptFailure(['cursor(1, 2, "3")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
735 CheckDefExecAndScriptFailure(['cursor("", 2)'], 'E1209: Invalid value for a line number') 735 CheckDefExecAndScriptFailure(['cursor("", 2)'], 'E1209: Invalid value for a line number')
736 enddef 736 enddef
737 737
738 def Test_debugbreak() 738 def Test_debugbreak()
739 CheckMSWindows 739 CheckMSWindows
740 CheckDefAndScriptFailure2(['debugbreak("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 740 CheckDefAndScriptFailure(['debugbreak("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
741 enddef 741 enddef
742 742
743 def Test_deepcopy() 743 def Test_deepcopy()
744 CheckDefAndScriptFailure2(['deepcopy({}, 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 744 CheckDefAndScriptFailure(['deepcopy({}, 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
745 enddef 745 enddef
746 746
747 def Test_delete() 747 def Test_delete()
748 var res: bool = delete('doesnotexist') 748 var res: bool = delete('doesnotexist')
749 assert_equal(true, res) 749 assert_equal(true, res)
750 750
751 CheckDefAndScriptFailure2(['delete(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 751 CheckDefAndScriptFailure(['delete(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
752 CheckDefAndScriptFailure2(['delete("a", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 752 CheckDefAndScriptFailure(['delete("a", 10)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
753 CheckDefExecAndScriptFailure(['delete("")'], 'E474: Invalid argument') 753 CheckDefExecAndScriptFailure(['delete("")'], 'E474: Invalid argument')
754 enddef 754 enddef
755 755
756 def Test_deletebufline() 756 def Test_deletebufline()
757 CheckDefAndScriptFailure2(['deletebufline([], 2)'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 757 CheckDefAndScriptFailure(['deletebufline([], 2)'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
758 CheckDefAndScriptFailure2(['deletebufline("a", [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 2') 758 CheckDefAndScriptFailure(['deletebufline("a", [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 2'])
759 CheckDefAndScriptFailure2(['deletebufline("a", 2, 0z10)'], 'E1013: Argument 3: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 3') 759 CheckDefAndScriptFailure(['deletebufline("a", 2, 0z10)'], ['E1013: Argument 3: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 3'])
760 new 760 new
761 setline(1, ['one', 'two']) 761 setline(1, ['one', 'two'])
762 deletebufline('', 1) 762 deletebufline('', 1)
763 getline(1, '$')->assert_equal(['two']) 763 getline(1, '$')->assert_equal(['two'])
764 bwipe! 764 bwipe!
765 enddef 765 enddef
766 766
767 def Test_diff_filler() 767 def Test_diff_filler()
768 CheckDefAndScriptFailure2(['diff_filler([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 768 CheckDefAndScriptFailure(['diff_filler([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
769 CheckDefAndScriptFailure2(['diff_filler(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 769 CheckDefAndScriptFailure(['diff_filler(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
770 CheckDefExecAndScriptFailure(['diff_filler("")'], 'E1209: Invalid value for a line number') 770 CheckDefExecAndScriptFailure(['diff_filler("")'], 'E1209: Invalid value for a line number')
771 assert_equal(0, diff_filler(1)) 771 assert_equal(0, diff_filler(1))
772 assert_equal(0, diff_filler('.')) 772 assert_equal(0, diff_filler('.'))
773 enddef 773 enddef
774 774
775 def Test_diff_hlID() 775 def Test_diff_hlID()
776 CheckDefAndScriptFailure2(['diff_hlID(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1') 776 CheckDefAndScriptFailure(['diff_hlID(0z10, 1)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1'])
777 CheckDefAndScriptFailure2(['diff_hlID(1, "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 777 CheckDefAndScriptFailure(['diff_hlID(1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
778 CheckDefExecAndScriptFailure(['diff_hlID("", 10)'], 'E1209: Invalid value for a line number') 778 CheckDefExecAndScriptFailure(['diff_hlID("", 10)'], 'E1209: Invalid value for a line number')
779 enddef 779 enddef
780 780
781 def Test_digraph_get() 781 def Test_digraph_get()
782 CheckDefAndScriptFailure2(['digraph_get(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 782 CheckDefAndScriptFailure(['digraph_get(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
783 CheckDefExecAndScriptFailure(['digraph_get("")'], 'E1214: Digraph must be just two characters') 783 CheckDefExecAndScriptFailure(['digraph_get("")'], 'E1214: Digraph must be just two characters')
784 enddef 784 enddef
785 785
786 def Test_digraph_getlist() 786 def Test_digraph_getlist()
787 CheckDefAndScriptFailure2(['digraph_getlist(10)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1') 787 CheckDefAndScriptFailure(['digraph_getlist(10)'], ['E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1'])
788 CheckDefAndScriptFailure2(['digraph_getlist("")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1') 788 CheckDefAndScriptFailure(['digraph_getlist("")'], ['E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1'])
789 enddef 789 enddef
790 790
791 def Test_digraph_set() 791 def Test_digraph_set()
792 CheckDefAndScriptFailure2(['digraph_set(10, "a")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 792 CheckDefAndScriptFailure(['digraph_set(10, "a")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
793 CheckDefAndScriptFailure2(['digraph_set("ab", 0z10)'], 'E1013: Argument 2: type mismatch, expected string but got blob', 'E1174: String required for argument 2') 793 CheckDefAndScriptFailure(['digraph_set("ab", 0z10)'], ['E1013: Argument 2: type mismatch, expected string but got blob', 'E1174: String required for argument 2'])
794 CheckDefExecAndScriptFailure(['digraph_set("", "a")'], 'E1214: Digraph must be just two characters') 794 CheckDefExecAndScriptFailure(['digraph_set("", "a")'], 'E1214: Digraph must be just two characters')
795 enddef 795 enddef
796 796
797 def Test_digraph_setlist() 797 def Test_digraph_setlist()
798 CheckDefAndScriptFailure2(['digraph_setlist("a")'], 'E1013: Argument 1: type mismatch, expected list<string> but got string', 'E1216: digraph_setlist() argument must be a list of lists with two items') 798 CheckDefAndScriptFailure(['digraph_setlist("a")'], ['E1013: Argument 1: type mismatch, expected list<string> but got string', 'E1216: digraph_setlist() argument must be a list of lists with two items'])
799 CheckDefAndScriptFailure2(['digraph_setlist({})'], 'E1013: Argument 1: type mismatch, expected list<string> but got dict<unknown>', 'E1216: digraph_setlist() argument must be a list of lists with two items') 799 CheckDefAndScriptFailure(['digraph_setlist({})'], ['E1013: Argument 1: type mismatch, expected list<string> but got dict<unknown>', 'E1216: digraph_setlist() argument must be a list of lists with two items'])
800 enddef 800 enddef
801 801
802 def Test_echoraw() 802 def Test_echoraw()
803 CheckDefAndScriptFailure2(['echoraw(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 803 CheckDefAndScriptFailure(['echoraw(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
804 CheckDefAndScriptFailure2(['echoraw(["x"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 804 CheckDefAndScriptFailure(['echoraw(["x"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
805 enddef 805 enddef
806 806
807 def Test_escape() 807 def Test_escape()
808 CheckDefAndScriptFailure2(['escape(10, " ")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 808 CheckDefAndScriptFailure(['escape(10, " ")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
809 CheckDefAndScriptFailure2(['escape(true, false)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') 809 CheckDefAndScriptFailure(['escape(true, false)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1'])
810 CheckDefAndScriptFailure2(['escape("a", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 810 CheckDefAndScriptFailure(['escape("a", 10)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
811 assert_equal('a\:b', escape("a:b", ":")) 811 assert_equal('a\:b', escape("a:b", ":"))
812 escape('abc', '')->assert_equal('abc') 812 escape('abc', '')->assert_equal('abc')
813 escape('', ':')->assert_equal('') 813 escape('', ':')->assert_equal('')
814 enddef 814 enddef
815 815
816 def Test_eval() 816 def Test_eval()
817 CheckDefAndScriptFailure2(['eval(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 817 CheckDefAndScriptFailure(['eval(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
818 CheckDefAndScriptFailure2(['eval(null)'], 'E1013: Argument 1: type mismatch, expected string but got special', 'E1174: String required for argument 1') 818 CheckDefAndScriptFailure(['eval(null)'], ['E1013: Argument 1: type mismatch, expected string but got special', 'E1174: String required for argument 1'])
819 CheckDefExecAndScriptFailure(['eval("")'], 'E15: Invalid expression') 819 CheckDefExecAndScriptFailure(['eval("")'], 'E15: Invalid expression')
820 assert_equal(2, eval('1 + 1')) 820 assert_equal(2, eval('1 + 1'))
821 enddef 821 enddef
822 822
823 def Test_executable() 823 def Test_executable()
832 var res = execute("echo 'hello'") 832 var res = execute("echo 'hello'")
833 assert_equal("\nhello", res) 833 assert_equal("\nhello", res)
834 res = execute(["echo 'here'", "echo 'there'"]) 834 res = execute(["echo 'here'", "echo 'there'"])
835 assert_equal("\nhere\nthere", res) 835 assert_equal("\nhere\nthere", res)
836 836
837 CheckDefAndScriptFailure2(['execute(123)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1222: String or List required for argument 1') 837 CheckDefAndScriptFailure(['execute(123)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1222: String or List required for argument 1'])
838 CheckDefFailure(['execute([123])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>') 838 CheckDefFailure(['execute([123])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>')
839 CheckDefExecFailure(['echo execute(["xx", 123])'], 'E492') 839 CheckDefExecFailure(['echo execute(["xx", 123])'], 'E492')
840 CheckDefAndScriptFailure2(['execute("xx", 123)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 840 CheckDefAndScriptFailure(['execute("xx", 123)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
841 enddef 841 enddef
842 842
843 def Test_exepath() 843 def Test_exepath()
844 CheckDefExecFailure(['echo exepath(true)'], 'E1013:') 844 CheckDefExecFailure(['echo exepath(true)'], 'E1013:')
845 CheckDefExecFailure(['echo exepath(v:null)'], 'E1013:') 845 CheckDefExecFailure(['echo exepath(v:null)'], 'E1013:')
847 enddef 847 enddef
848 848
849 command DoSomeCommand let g:didSomeCommand = 4 849 command DoSomeCommand let g:didSomeCommand = 4
850 850
851 def Test_exists() 851 def Test_exists()
852 CheckDefAndScriptFailure2(['exists(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 852 CheckDefAndScriptFailure(['exists(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
853 call assert_equal(1, exists('&tabstop')) 853 call assert_equal(1, exists('&tabstop'))
854 854
855 var lines =<< trim END 855 var lines =<< trim END
856 if exists('+newoption') 856 if exists('+newoption')
857 if &newoption == 'ok' 857 if &newoption == 'ok'
862 CheckScriptSuccess(lines) 862 CheckScriptSuccess(lines)
863 enddef 863 enddef
864 864
865 def Test_exists_compiled() 865 def Test_exists_compiled()
866 call assert_equal(1, exists_compiled('&tabstop')) 866 call assert_equal(1, exists_compiled('&tabstop'))
867 CheckDefAndScriptFailure2(['exists_compiled(10)'], 'E1232:', 'E1233:') 867 CheckDefAndScriptFailure(['exists_compiled(10)'], ['E1232:', 'E1233:'])
868 CheckDefAndScriptFailure2(['exists_compiled(v:progname)'], 'E1232:', 'E1233:') 868 CheckDefAndScriptFailure(['exists_compiled(v:progname)'], ['E1232:', 'E1233:'])
869 869
870 if exists_compiled('+newoption') 870 if exists_compiled('+newoption')
871 if &newoption == 'ok' 871 if &newoption == 'ok'
872 endif 872 endif
873 endif 873 endif
909 909
910 def Test_expand() 910 def Test_expand()
911 split SomeFile 911 split SomeFile
912 expand('%', true, true)->assert_equal(['SomeFile']) 912 expand('%', true, true)->assert_equal(['SomeFile'])
913 close 913 close
914 CheckDefAndScriptFailure2(['expand(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 914 CheckDefAndScriptFailure(['expand(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
915 CheckDefAndScriptFailure2(['expand("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 915 CheckDefAndScriptFailure(['expand("a", 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
916 CheckDefAndScriptFailure2(['expand("a", true, 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 916 CheckDefAndScriptFailure(['expand("a", true, 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
917 expand('')->assert_equal('') 917 expand('')->assert_equal('')
918 918
919 var caught = false 919 var caught = false
920 try 920 try
921 echo expand("<sfile>") 921 echo expand("<sfile>")
951 extend(res, mapnew([1, 2], (_, v) => ({}))) 951 extend(res, mapnew([1, 2], (_, v) => ({})))
952 assert_equal([{}, {}], res) 952 assert_equal([{}, {}], res)
953 END 953 END
954 CheckDefAndScriptSuccess(lines) 954 CheckDefAndScriptSuccess(lines)
955 955
956 CheckDefAndScriptFailure2(['extend("a", 1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E712: Argument of extend() must be a List or Dictionary') 956 CheckDefAndScriptFailure(['extend("a", 1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E712: Argument of extend() must be a List or Dictionary'])
957 CheckDefAndScriptFailure2(['extend([1, 2], 3)'], 'E1013: Argument 2: type mismatch, expected list<number> but got number', 'E712: Argument of extend() must be a List or Dictionary') 957 CheckDefAndScriptFailure(['extend([1, 2], 3)'], ['E1013: Argument 2: type mismatch, expected list<number> but got number', 'E712: Argument of extend() must be a List or Dictionary'])
958 CheckDefAndScriptFailure2(['extend([1, 2], ["x"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>', 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>') 958 CheckDefAndScriptFailure(['extend([1, 2], ["x"])'], ['E1013: Argument 2: type mismatch, expected list<number> but got list<string>', 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>'])
959 CheckDefFailure(['extend([1, 2], [3], "x")'], 'E1013: Argument 3: type mismatch, expected number but got string') 959 CheckDefFailure(['extend([1, 2], [3], "x")'], 'E1013: Argument 3: type mismatch, expected number but got string')
960 960
961 CheckDefFailure(['extend({a: 1}, 42)'], 'E1013: Argument 2: type mismatch, expected dict<number> but got number') 961 CheckDefFailure(['extend({a: 1}, 42)'], 'E1013: Argument 2: type mismatch, expected dict<number> but got number')
962 CheckDefFailure(['extend({a: 1}, {b: "x"})'], 'E1013: Argument 2: type mismatch, expected dict<number> but got dict<string>') 962 CheckDefFailure(['extend({a: 1}, {b: "x"})'], 'E1013: Argument 2: type mismatch, expected dict<number> but got dict<string>')
963 CheckDefFailure(['extend({a: 1}, {b: 2}, 1)'], 'E1013: Argument 3: type mismatch, expected string but got number') 963 CheckDefFailure(['extend({a: 1}, {b: 2}, 1)'], 'E1013: Argument 3: type mismatch, expected string but got number')
1061 1061
1062 def Test_extendnew() 1062 def Test_extendnew()
1063 assert_equal([1, 2, 'a'], extendnew([1, 2], ['a'])) 1063 assert_equal([1, 2, 'a'], extendnew([1, 2], ['a']))
1064 assert_equal({one: 1, two: 'a'}, extendnew({one: 1}, {two: 'a'})) 1064 assert_equal({one: 1, two: 'a'}, extendnew({one: 1}, {two: 'a'}))
1065 1065
1066 CheckDefAndScriptFailure2(['extendnew({a: 1}, 42)'], 'E1013: Argument 2: type mismatch, expected dict<number> but got number', 'E712: Argument of extendnew() must be a List or Dictionary') 1066 CheckDefAndScriptFailure(['extendnew({a: 1}, 42)'], ['E1013: Argument 2: type mismatch, expected dict<number> but got number', 'E712: Argument of extendnew() must be a List or Dictionary'])
1067 CheckDefAndScriptFailure2(['extendnew({a: 1}, [42])'], 'E1013: Argument 2: type mismatch, expected dict<number> but got list<number>', 'E712: Argument of extendnew() must be a List or Dictionary') 1067 CheckDefAndScriptFailure(['extendnew({a: 1}, [42])'], ['E1013: Argument 2: type mismatch, expected dict<number> but got list<number>', 'E712: Argument of extendnew() must be a List or Dictionary'])
1068 CheckDefAndScriptFailure2(['extendnew([1, 2], "x")'], 'E1013: Argument 2: type mismatch, expected list<number> but got string', 'E712: Argument of extendnew() must be a List or Dictionary') 1068 CheckDefAndScriptFailure(['extendnew([1, 2], "x")'], ['E1013: Argument 2: type mismatch, expected list<number> but got string', 'E712: Argument of extendnew() must be a List or Dictionary'])
1069 CheckDefAndScriptFailure2(['extendnew([1, 2], {x: 1})'], 'E1013: Argument 2: type mismatch, expected list<number> but got dict<number>', 'E712: Argument of extendnew() must be a List or Dictionary') 1069 CheckDefAndScriptFailure(['extendnew([1, 2], {x: 1})'], ['E1013: Argument 2: type mismatch, expected list<number> but got dict<number>', 'E712: Argument of extendnew() must be a List or Dictionary'])
1070 enddef 1070 enddef
1071 1071
1072 def Test_feedkeys() 1072 def Test_feedkeys()
1073 CheckDefAndScriptFailure2(['feedkeys(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1073 CheckDefAndScriptFailure(['feedkeys(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1074 CheckDefAndScriptFailure2(['feedkeys("x", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1074 CheckDefAndScriptFailure(['feedkeys("x", 10)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1075 CheckDefAndScriptFailure2(['feedkeys([], {})'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') 1075 CheckDefAndScriptFailure(['feedkeys([], {})'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1'])
1076 g:TestVar = 1 1076 g:TestVar = 1
1077 feedkeys(":g:TestVar = 789\n", 'xt') 1077 feedkeys(":g:TestVar = 789\n", 'xt')
1078 assert_equal(789, g:TestVar) 1078 assert_equal(789, g:TestVar)
1079 unlet g:TestVar 1079 unlet g:TestVar
1080 enddef 1080 enddef
1102 var l: list<string> = finddir('nothing', '*;', -1) 1102 var l: list<string> = finddir('nothing', '*;', -1)
1103 END 1103 END
1104 CheckDefAndScriptSuccess(lines) 1104 CheckDefAndScriptSuccess(lines)
1105 delete('Xtestdir', 'rf') 1105 delete('Xtestdir', 'rf')
1106 1106
1107 CheckDefAndScriptFailure2(['finddir(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') 1107 CheckDefAndScriptFailure(['finddir(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1'])
1108 CheckDefAndScriptFailure2(['finddir(v:null)'], 'E1013: Argument 1: type mismatch, expected string but got special', 'E1174: String required for argument 1') 1108 CheckDefAndScriptFailure(['finddir(v:null)'], ['E1013: Argument 1: type mismatch, expected string but got special', 'E1174: String required for argument 1'])
1109 CheckDefExecFailure(['echo finddir("")'], 'E1175:') 1109 CheckDefExecFailure(['echo finddir("")'], 'E1175:')
1110 CheckDefAndScriptFailure2(['finddir("a", [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') 1110 CheckDefAndScriptFailure(['finddir("a", [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2'])
1111 CheckDefAndScriptFailure2(['finddir("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 1111 CheckDefAndScriptFailure(['finddir("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
1112 finddir('abc', '')->assert_equal('') 1112 finddir('abc', '')->assert_equal('')
1113 enddef 1113 enddef
1114 1114
1115 def Test_findfile() 1115 def Test_findfile()
1116 findfile('runtest.vim', '**', -1)->assert_equal(['runtest.vim']) 1116 findfile('runtest.vim', '**', -1)->assert_equal(['runtest.vim'])
1120 CheckDefAndScriptSuccess(lines) 1120 CheckDefAndScriptSuccess(lines)
1121 1121
1122 CheckDefExecFailure(['findfile(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool') 1122 CheckDefExecFailure(['findfile(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool')
1123 CheckDefExecFailure(['findfile(v:null)'], 'E1013: Argument 1: type mismatch, expected string but got special') 1123 CheckDefExecFailure(['findfile(v:null)'], 'E1013: Argument 1: type mismatch, expected string but got special')
1124 CheckDefExecFailure(['findfile("")'], 'E1175:') 1124 CheckDefExecFailure(['findfile("")'], 'E1175:')
1125 CheckDefAndScriptFailure2(['findfile("a", [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') 1125 CheckDefAndScriptFailure(['findfile("a", [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2'])
1126 CheckDefAndScriptFailure2(['findfile("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 1126 CheckDefAndScriptFailure(['findfile("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
1127 findfile('abc', '')->assert_equal('') 1127 findfile('abc', '')->assert_equal('')
1128 enddef 1128 enddef
1129 1129
1130 def Test_flatten() 1130 def Test_flatten()
1131 var lines =<< trim END 1131 var lines =<< trim END
1146 var ll: list<list<string>> = [['a', 'b', 'c']] 1146 var ll: list<list<string>> = [['a', 'b', 'c']]
1147 assert_equal(['a', 'b', 'c'], ll->flattennew()) 1147 assert_equal(['a', 'b', 'c'], ll->flattennew())
1148 END 1148 END
1149 CheckDefAndScriptSuccess(lines) 1149 CheckDefAndScriptSuccess(lines)
1150 1150
1151 CheckDefAndScriptFailure2(['flattennew({})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1') 1151 CheckDefAndScriptFailure(['flattennew({})'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1'])
1152 CheckDefAndScriptFailure2(['flattennew([], "1")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 1152 CheckDefAndScriptFailure(['flattennew([], "1")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
1153 enddef 1153 enddef
1154 1154
1155 " Test for float functions argument type 1155 " Test for float functions argument type
1156 def Test_float_funcs_args() 1156 def Test_float_funcs_args()
1157 CheckFeature float 1157 CheckFeature float
1158 1158
1159 # acos() 1159 # acos()
1160 CheckDefAndScriptFailure2(['acos("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1160 CheckDefAndScriptFailure(['acos("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1161 # asin() 1161 # asin()
1162 CheckDefAndScriptFailure2(['asin("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1162 CheckDefAndScriptFailure(['asin("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1163 # atan() 1163 # atan()
1164 CheckDefAndScriptFailure2(['atan("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1164 CheckDefAndScriptFailure(['atan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1165 # atan2() 1165 # atan2()
1166 CheckDefAndScriptFailure2(['atan2("a", 1.1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1166 CheckDefAndScriptFailure(['atan2("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1167 CheckDefAndScriptFailure2(['atan2(1.2, "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2') 1167 CheckDefAndScriptFailure(['atan2(1.2, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2'])
1168 CheckDefAndScriptFailure2(['atan2(1.2)'], 'E119:', 'E119:') 1168 CheckDefAndScriptFailure(['atan2(1.2)'], ['E119:', 'E119:'])
1169 # ceil() 1169 # ceil()
1170 CheckDefAndScriptFailure2(['ceil("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1170 CheckDefAndScriptFailure(['ceil("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1171 # cos() 1171 # cos()
1172 CheckDefAndScriptFailure2(['cos("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1172 CheckDefAndScriptFailure(['cos("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1173 # cosh() 1173 # cosh()
1174 CheckDefAndScriptFailure2(['cosh("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1174 CheckDefAndScriptFailure(['cosh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1175 # exp() 1175 # exp()
1176 CheckDefAndScriptFailure2(['exp("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1176 CheckDefAndScriptFailure(['exp("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1177 # float2nr() 1177 # float2nr()
1178 CheckDefAndScriptFailure2(['float2nr("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1178 CheckDefAndScriptFailure(['float2nr("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1179 # floor() 1179 # floor()
1180 CheckDefAndScriptFailure2(['floor("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1180 CheckDefAndScriptFailure(['floor("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1181 # fmod() 1181 # fmod()
1182 CheckDefAndScriptFailure2(['fmod(1.1, "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2') 1182 CheckDefAndScriptFailure(['fmod(1.1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2'])
1183 CheckDefAndScriptFailure2(['fmod("a", 1.1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1183 CheckDefAndScriptFailure(['fmod("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1184 CheckDefAndScriptFailure2(['fmod(1.1)'], 'E119:', 'E119:') 1184 CheckDefAndScriptFailure(['fmod(1.1)'], ['E119:', 'E119:'])
1185 # isinf() 1185 # isinf()
1186 CheckDefAndScriptFailure2(['isinf("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1186 CheckDefAndScriptFailure(['isinf("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1187 # isnan() 1187 # isnan()
1188 CheckDefAndScriptFailure2(['isnan("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1188 CheckDefAndScriptFailure(['isnan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1189 # log() 1189 # log()
1190 CheckDefAndScriptFailure2(['log("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1190 CheckDefAndScriptFailure(['log("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1191 # log10() 1191 # log10()
1192 CheckDefAndScriptFailure2(['log10("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1192 CheckDefAndScriptFailure(['log10("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1193 # pow() 1193 # pow()
1194 CheckDefAndScriptFailure2(['pow("a", 1.1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1194 CheckDefAndScriptFailure(['pow("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1195 CheckDefAndScriptFailure2(['pow(1.1, "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2') 1195 CheckDefAndScriptFailure(['pow(1.1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2'])
1196 CheckDefAndScriptFailure2(['pow(1.1)'], 'E119:', 'E119:') 1196 CheckDefAndScriptFailure(['pow(1.1)'], ['E119:', 'E119:'])
1197 # round() 1197 # round()
1198 CheckDefAndScriptFailure2(['round("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1198 CheckDefAndScriptFailure(['round("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1199 # sin() 1199 # sin()
1200 CheckDefAndScriptFailure2(['sin("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1200 CheckDefAndScriptFailure(['sin("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1201 # sinh() 1201 # sinh()
1202 CheckDefAndScriptFailure2(['sinh("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1202 CheckDefAndScriptFailure(['sinh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1203 # sqrt() 1203 # sqrt()
1204 CheckDefAndScriptFailure2(['sqrt("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1204 CheckDefAndScriptFailure(['sqrt("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1205 # tan() 1205 # tan()
1206 CheckDefAndScriptFailure2(['tan("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1206 CheckDefAndScriptFailure(['tan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1207 # tanh() 1207 # tanh()
1208 CheckDefAndScriptFailure2(['tanh("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1208 CheckDefAndScriptFailure(['tanh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1209 # trunc() 1209 # trunc()
1210 CheckDefAndScriptFailure2(['trunc("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1') 1210 CheckDefAndScriptFailure(['trunc("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1211 enddef 1211 enddef
1212 1212
1213 def Test_fnameescape() 1213 def Test_fnameescape()
1214 CheckDefAndScriptFailure2(['fnameescape(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1214 CheckDefAndScriptFailure(['fnameescape(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1215 assert_equal('\+a\%b\|', fnameescape('+a%b|')) 1215 assert_equal('\+a\%b\|', fnameescape('+a%b|'))
1216 fnameescape('')->assert_equal('') 1216 fnameescape('')->assert_equal('')
1217 enddef 1217 enddef
1218 1218
1219 def Test_fnamemodify() 1219 def Test_fnamemodify()
1230 def Wrong_dict_key_type(items: list<number>): list<number> 1230 def Wrong_dict_key_type(items: list<number>): list<number>
1231 return filter(items, (_, val) => get({[val]: 1}, 'x')) 1231 return filter(items, (_, val) => get({[val]: 1}, 'x'))
1232 enddef 1232 enddef
1233 1233
1234 def Test_filter() 1234 def Test_filter()
1235 CheckDefAndScriptFailure2(['filter(1.1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got float', 'E1251: List, Dictionary, Blob or String required for argument 1') 1235 CheckDefAndScriptFailure(['filter(1.1, "1")'], ['E1013: Argument 1: type mismatch, expected list<any> but got float', 'E1251: List, Dictionary, Blob or String required for argument 1'])
1236 assert_equal([], filter([1, 2, 3], '0')) 1236 assert_equal([], filter([1, 2, 3], '0'))
1237 assert_equal([1, 2, 3], filter([1, 2, 3], '1')) 1237 assert_equal([1, 2, 3], filter([1, 2, 3], '1'))
1238 assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20')) 1238 assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20'))
1239 enddef 1239 enddef
1240 1240
1256 var res = dict->filter((k, _) => k =~ 'a' && k !~ 'b') 1256 var res = dict->filter((k, _) => k =~ 'a' && k !~ 'b')
1257 res->assert_equal({aa: [1], ac: [3]}) 1257 res->assert_equal({aa: [1], ac: [3]})
1258 enddef 1258 enddef
1259 1259
1260 def Test_foldclosed() 1260 def Test_foldclosed()
1261 CheckDefAndScriptFailure2(['foldclosed(function("min"))'], 'E1013: Argument 1: type mismatch, expected string but got func(...): any', 'E1220: String or Number required for argument 1') 1261 CheckDefAndScriptFailure(['foldclosed(function("min"))'], ['E1013: Argument 1: type mismatch, expected string but got func(...): any', 'E1220: String or Number required for argument 1'])
1262 CheckDefExecAndScriptFailure(['foldclosed("")'], 'E1209: Invalid value for a line number') 1262 CheckDefExecAndScriptFailure(['foldclosed("")'], 'E1209: Invalid value for a line number')
1263 assert_equal(-1, foldclosed(1)) 1263 assert_equal(-1, foldclosed(1))
1264 assert_equal(-1, foldclosed('$')) 1264 assert_equal(-1, foldclosed('$'))
1265 enddef 1265 enddef
1266 1266
1267 def Test_foldclosedend() 1267 def Test_foldclosedend()
1268 CheckDefAndScriptFailure2(['foldclosedend(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 1268 CheckDefAndScriptFailure(['foldclosedend(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
1269 CheckDefExecAndScriptFailure(['foldclosedend("")'], 'E1209: Invalid value for a line number') 1269 CheckDefExecAndScriptFailure(['foldclosedend("")'], 'E1209: Invalid value for a line number')
1270 assert_equal(-1, foldclosedend(1)) 1270 assert_equal(-1, foldclosedend(1))
1271 assert_equal(-1, foldclosedend('w0')) 1271 assert_equal(-1, foldclosedend('w0'))
1272 enddef 1272 enddef
1273 1273
1274 def Test_foldlevel() 1274 def Test_foldlevel()
1275 CheckDefAndScriptFailure2(['foldlevel(0z10)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1') 1275 CheckDefAndScriptFailure(['foldlevel(0z10)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1'])
1276 CheckDefExecAndScriptFailure(['foldlevel("")'], 'E1209: Invalid value for a line number') 1276 CheckDefExecAndScriptFailure(['foldlevel("")'], 'E1209: Invalid value for a line number')
1277 assert_equal(0, foldlevel(1)) 1277 assert_equal(0, foldlevel(1))
1278 assert_equal(0, foldlevel('.')) 1278 assert_equal(0, foldlevel('.'))
1279 enddef 1279 enddef
1280 1280
1281 def Test_foldtextresult() 1281 def Test_foldtextresult()
1282 CheckDefAndScriptFailure2(['foldtextresult(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1') 1282 CheckDefAndScriptFailure(['foldtextresult(1.1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1'])
1283 CheckDefExecAndScriptFailure(['foldtextresult("")'], 'E1209: Invalid value for a line number') 1283 CheckDefExecAndScriptFailure(['foldtextresult("")'], 'E1209: Invalid value for a line number')
1284 assert_equal('', foldtextresult(1)) 1284 assert_equal('', foldtextresult(1))
1285 assert_equal('', foldtextresult('.')) 1285 assert_equal('', foldtextresult('.'))
1286 enddef 1286 enddef
1287 1287
1308 assert_equal('', fullcommand('scg')) 1308 assert_equal('', fullcommand('scg'))
1309 fullcommand('')->assert_equal('') 1309 fullcommand('')->assert_equal('')
1310 enddef 1310 enddef
1311 1311
1312 def Test_funcref() 1312 def Test_funcref()
1313 CheckDefAndScriptFailure2(['funcref("reverse", 2)'], 'E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2') 1313 CheckDefAndScriptFailure(['funcref("reverse", 2)'], ['E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2'])
1314 CheckDefAndScriptFailure2(['funcref("reverse", [2], [1])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 1314 CheckDefAndScriptFailure(['funcref("reverse", [2], [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
1315 enddef 1315 enddef
1316 1316
1317 def Test_function() 1317 def Test_function()
1318 CheckDefAndScriptFailure2(['function("reverse", 2)'], 'E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2') 1318 CheckDefAndScriptFailure(['function("reverse", 2)'], ['E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2'])
1319 CheckDefAndScriptFailure2(['function("reverse", [2], [1])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 1319 CheckDefAndScriptFailure(['function("reverse", [2], [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
1320 enddef 1320 enddef
1321 1321
1322 def Test_garbagecollect() 1322 def Test_garbagecollect()
1323 garbagecollect(true) 1323 garbagecollect(true)
1324 CheckDefAndScriptFailure2(['garbagecollect("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1') 1324 CheckDefAndScriptFailure(['garbagecollect("1")'], ['E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1'])
1325 CheckDefAndScriptFailure2(['garbagecollect(20)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1') 1325 CheckDefAndScriptFailure(['garbagecollect(20)'], ['E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1'])
1326 enddef 1326 enddef
1327 1327
1328 def Test_get() 1328 def Test_get()
1329 CheckDefAndScriptFailure2(['get("a", 1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E896: Argument of get() must be a List, Dictionary or Blob') 1329 CheckDefAndScriptFailure(['get("a", 1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E896: Argument of get() must be a List, Dictionary or Blob'])
1330 [3, 5, 2]->get(1)->assert_equal(5) 1330 [3, 5, 2]->get(1)->assert_equal(5)
1331 [3, 5, 2]->get(3)->assert_equal(0) 1331 [3, 5, 2]->get(3)->assert_equal(0)
1332 [3, 5, 2]->get(3, 9)->assert_equal(9) 1332 [3, 5, 2]->get(3, 9)->assert_equal(9)
1333 assert_equal(get(0z102030, 2), 0x30) 1333 assert_equal(get(0z102030, 2), 0x30)
1334 {a: 7, b: 11, c: 13}->get('c')->assert_equal(13) 1334 {a: 7, b: 11, c: 13}->get('c')->assert_equal(13)
1357 hide edit Xtestfile2 1357 hide edit Xtestfile2
1358 hide enew 1358 hide enew
1359 getbufinfo({bufloaded: true, buflisted: true, bufmodified: false}) 1359 getbufinfo({bufloaded: true, buflisted: true, bufmodified: false})
1360 ->len()->assert_equal(3) 1360 ->len()->assert_equal(3)
1361 bwipe Xtestfile1 Xtestfile2 1361 bwipe Xtestfile1 Xtestfile2
1362 CheckDefAndScriptFailure2(['getbufinfo(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') 1362 CheckDefAndScriptFailure(['getbufinfo(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1'])
1363 enddef 1363 enddef
1364 1364
1365 def Test_getbufline() 1365 def Test_getbufline()
1366 e SomeFile 1366 e SomeFile
1367 var buf = bufnr() 1367 var buf = bufnr()
1371 getbufline('#', 1, '$')->assert_equal(lines) 1371 getbufline('#', 1, '$')->assert_equal(lines)
1372 getbufline(-1, '$', '$')->assert_equal([]) 1372 getbufline(-1, '$', '$')->assert_equal([])
1373 getbufline(-1, 1, '$')->assert_equal([]) 1373 getbufline(-1, 1, '$')->assert_equal([])
1374 1374
1375 bwipe! 1375 bwipe!
1376 CheckDefAndScriptFailure2(['getbufline([], 2)'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 1376 CheckDefAndScriptFailure(['getbufline([], 2)'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
1377 CheckDefAndScriptFailure2(['getbufline("a", [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 2') 1377 CheckDefAndScriptFailure(['getbufline("a", [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 2'])
1378 CheckDefAndScriptFailure2(['getbufline("a", 2, 0z10)'], 'E1013: Argument 3: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 3') 1378 CheckDefAndScriptFailure(['getbufline("a", 2, 0z10)'], ['E1013: Argument 3: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 3'])
1379 enddef 1379 enddef
1380 1380
1381 def Test_getbufvar() 1381 def Test_getbufvar()
1382 CheckDefAndScriptFailure2(['getbufvar(true, "v")'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 1382 CheckDefAndScriptFailure(['getbufvar(true, "v")'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
1383 CheckDefAndScriptFailure2(['getbufvar(1, 2, 3)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1383 CheckDefAndScriptFailure(['getbufvar(1, 2, 3)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1384 enddef 1384 enddef
1385 1385
1386 def Test_getchangelist() 1386 def Test_getchangelist()
1387 new 1387 new
1388 setline(1, 'some text') 1388 setline(1, 'some text')
1394 def Test_getchar() 1394 def Test_getchar()
1395 while getchar(0) 1395 while getchar(0)
1396 endwhile 1396 endwhile
1397 getchar(true)->assert_equal(0) 1397 getchar(true)->assert_equal(0)
1398 getchar(1)->assert_equal(0) 1398 getchar(1)->assert_equal(0)
1399 CheckDefAndScriptFailure2(['getchar(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1') 1399 CheckDefAndScriptFailure(['getchar(2)'], ['E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1'])
1400 CheckDefAndScriptFailure2(['getchar("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1') 1400 CheckDefAndScriptFailure(['getchar("1")'], ['E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1'])
1401 enddef 1401 enddef
1402 1402
1403 def Test_getcharpos() 1403 def Test_getcharpos()
1404 CheckDefAndScriptFailure2(['getcharpos(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') 1404 CheckDefAndScriptFailure(['getcharpos(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1'])
1405 CheckDefAndScriptFailure2(['getcharpos(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1405 CheckDefAndScriptFailure(['getcharpos(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1406 CheckDefExecAndScriptFailure(['getcharpos("")'], 'E1209: Invalid value for a line number') 1406 CheckDefExecAndScriptFailure(['getcharpos("")'], 'E1209: Invalid value for a line number')
1407 enddef 1407 enddef
1408 1408
1409 def Test_getcharstr() 1409 def Test_getcharstr()
1410 CheckDefAndScriptFailure2(['getcharstr(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1') 1410 CheckDefAndScriptFailure(['getcharstr(2)'], ['E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1'])
1411 CheckDefAndScriptFailure2(['getcharstr("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1') 1411 CheckDefAndScriptFailure(['getcharstr("1")'], ['E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1'])
1412 enddef 1412 enddef
1413 1413
1414 def Test_getcompletion() 1414 def Test_getcompletion()
1415 set wildignore=*.vim,*~ 1415 set wildignore=*.vim,*~
1416 var l = getcompletion('run', 'file', true) 1416 var l = getcompletion('run', 'file', true)
1417 l->assert_equal([]) 1417 l->assert_equal([])
1418 set wildignore& 1418 set wildignore&
1419 CheckDefAndScriptFailure2(['getcompletion(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1419 CheckDefAndScriptFailure(['getcompletion(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1420 CheckDefAndScriptFailure2(['getcompletion("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1420 CheckDefAndScriptFailure(['getcompletion("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1421 CheckDefAndScriptFailure2(['getcompletion("a", "b", 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 1421 CheckDefAndScriptFailure(['getcompletion("a", "b", 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
1422 CheckDefExecAndScriptFailure(['getcompletion("a", "")'], 'E475: Invalid argument') 1422 CheckDefExecAndScriptFailure(['getcompletion("a", "")'], 'E475: Invalid argument')
1423 getcompletion('', 'messages')->assert_equal(['clear']) 1423 getcompletion('', 'messages')->assert_equal(['clear'])
1424 enddef 1424 enddef
1425 1425
1426 def Test_getcurpos() 1426 def Test_getcurpos()
1427 CheckDefAndScriptFailure2(['getcurpos("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1427 CheckDefAndScriptFailure(['getcurpos("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1428 enddef 1428 enddef
1429 1429
1430 def Test_getcursorcharpos() 1430 def Test_getcursorcharpos()
1431 CheckDefAndScriptFailure2(['getcursorcharpos("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1431 CheckDefAndScriptFailure(['getcursorcharpos("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1432 enddef 1432 enddef
1433 1433
1434 def Test_getcwd() 1434 def Test_getcwd()
1435 CheckDefAndScriptFailure2(['getcwd("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1435 CheckDefAndScriptFailure(['getcwd("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1436 CheckDefAndScriptFailure2(['getcwd("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1436 CheckDefAndScriptFailure(['getcwd("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1437 CheckDefAndScriptFailure2(['getcwd(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 1437 CheckDefAndScriptFailure(['getcwd(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
1438 enddef 1438 enddef
1439 1439
1440 def Test_getenv() 1440 def Test_getenv()
1441 if getenv('does-not_exist') == '' 1441 if getenv('does-not_exist') == ''
1442 assert_report('getenv() should return null') 1442 assert_report('getenv() should return null')
1450 unlet $SOMEENVVAR 1450 unlet $SOMEENVVAR
1451 getenv('')->assert_equal(v:null) 1451 getenv('')->assert_equal(v:null)
1452 enddef 1452 enddef
1453 1453
1454 def Test_getfontname() 1454 def Test_getfontname()
1455 CheckDefAndScriptFailure2(['getfontname(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1455 CheckDefAndScriptFailure(['getfontname(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1456 #getfontname('')->assert_equal('') 1456 #getfontname('')->assert_equal('')
1457 enddef 1457 enddef
1458 1458
1459 def Test_getfperm() 1459 def Test_getfperm()
1460 assert_equal('', getfperm("")) 1460 assert_equal('', getfperm(""))
1487 CheckDefExecFailure(['echo getftype(true)'], 'E1013:') 1487 CheckDefExecFailure(['echo getftype(true)'], 'E1013:')
1488 CheckDefExecFailure(['echo getftype(v:null)'], 'E1013:') 1488 CheckDefExecFailure(['echo getftype(v:null)'], 'E1013:')
1489 enddef 1489 enddef
1490 1490
1491 def Test_getjumplist() 1491 def Test_getjumplist()
1492 CheckDefAndScriptFailure2(['getjumplist("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1492 CheckDefAndScriptFailure(['getjumplist("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1493 CheckDefAndScriptFailure2(['getjumplist("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1493 CheckDefAndScriptFailure(['getjumplist("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1494 CheckDefAndScriptFailure2(['getjumplist(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 1494 CheckDefAndScriptFailure(['getjumplist(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
1495 enddef 1495 enddef
1496 1496
1497 def Test_getline() 1497 def Test_getline()
1498 var lines =<< trim END 1498 var lines =<< trim END
1499 new 1499 new
1509 1509
1510 lines =<< trim END 1510 lines =<< trim END
1511 echo getline('1') 1511 echo getline('1')
1512 END 1512 END
1513 CheckDefExecAndScriptFailure(lines, 'E1209:') 1513 CheckDefExecAndScriptFailure(lines, 'E1209:')
1514 CheckDefAndScriptFailure2(['getline(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 1514 CheckDefAndScriptFailure(['getline(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
1515 CheckDefAndScriptFailure2(['getline(1, true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 2') 1515 CheckDefAndScriptFailure(['getline(1, true)'], ['E1013: Argument 2: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 2'])
1516 CheckDefExecAndScriptFailure(['getline("")'], 'E1209: Invalid value for a line number') 1516 CheckDefExecAndScriptFailure(['getline("")'], 'E1209: Invalid value for a line number')
1517 enddef 1517 enddef
1518 1518
1519 def Test_getloclist() 1519 def Test_getloclist()
1520 CheckDefAndScriptFailure2(['getloclist("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1520 CheckDefAndScriptFailure(['getloclist("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1521 CheckDefAndScriptFailure2(['getloclist(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 1521 CheckDefAndScriptFailure(['getloclist(1, [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
1522 enddef 1522 enddef
1523 1523
1524 def Test_getloclist_return_type() 1524 def Test_getloclist_return_type()
1525 var l = getloclist(1) 1525 var l = getloclist(1)
1526 l->assert_equal([]) 1526 l->assert_equal([])
1528 var d = getloclist(1, {items: 0}) 1528 var d = getloclist(1, {items: 0})
1529 d->assert_equal({items: []}) 1529 d->assert_equal({items: []})
1530 enddef 1530 enddef
1531 1531
1532 def Test_getmarklist() 1532 def Test_getmarklist()
1533 CheckDefAndScriptFailure2(['getmarklist([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 1533 CheckDefAndScriptFailure(['getmarklist([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
1534 assert_equal([], getmarklist(10000)) 1534 assert_equal([], getmarklist(10000))
1535 assert_fails('getmarklist("a%b@#")', 'E94:') 1535 assert_fails('getmarklist("a%b@#")', 'E94:')
1536 enddef 1536 enddef
1537 1537
1538 def Test_getmatches() 1538 def Test_getmatches()
1539 CheckDefAndScriptFailure2(['getmatches("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1539 CheckDefAndScriptFailure(['getmatches("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1540 enddef 1540 enddef
1541 1541
1542 def Test_getpos() 1542 def Test_getpos()
1543 CheckDefAndScriptFailure2(['getpos(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1543 CheckDefAndScriptFailure(['getpos(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1544 assert_equal([0, 1, 1, 0], getpos('.')) 1544 assert_equal([0, 1, 1, 0], getpos('.'))
1545 CheckDefExecFailure(['getpos("a")'], 'E1209:') 1545 CheckDefExecFailure(['getpos("a")'], 'E1209:')
1546 CheckDefExecAndScriptFailure(['getpos("")'], 'E1209: Invalid value for a line number') 1546 CheckDefExecAndScriptFailure(['getpos("")'], 'E1209: Invalid value for a line number')
1547 enddef 1547 enddef
1548 1548
1549 def Test_getqflist() 1549 def Test_getqflist()
1550 CheckDefAndScriptFailure2(['getqflist([])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1') 1550 CheckDefAndScriptFailure(['getqflist([])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1'])
1551 call assert_equal({}, getqflist({})) 1551 call assert_equal({}, getqflist({}))
1552 enddef 1552 enddef
1553 1553
1554 def Test_getqflist_return_type() 1554 def Test_getqflist_return_type()
1555 var l = getqflist() 1555 var l = getqflist()
1562 def Test_getreg() 1562 def Test_getreg()
1563 var lines = ['aaa', 'bbb', 'ccc'] 1563 var lines = ['aaa', 'bbb', 'ccc']
1564 setreg('a', lines) 1564 setreg('a', lines)
1565 getreg('a', true, true)->assert_equal(lines) 1565 getreg('a', true, true)->assert_equal(lines)
1566 assert_fails('getreg("ab")', 'E1162:') 1566 assert_fails('getreg("ab")', 'E1162:')
1567 CheckDefAndScriptFailure2(['getreg(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1567 CheckDefAndScriptFailure(['getreg(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1568 CheckDefAndScriptFailure2(['getreg(".", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 1568 CheckDefAndScriptFailure(['getreg(".", 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
1569 CheckDefAndScriptFailure2(['getreg(".", 1, "b")'], 'E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3') 1569 CheckDefAndScriptFailure(['getreg(".", 1, "b")'], ['E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3'])
1570 @" = 'A1B2C3' 1570 @" = 'A1B2C3'
1571 getreg('')->assert_equal('A1B2C3') 1571 getreg('')->assert_equal('A1B2C3')
1572 enddef 1572 enddef
1573 1573
1574 def Test_getreg_return_type() 1574 def Test_getreg_return_type()
1594 setreg('"', 'ABCD', 'b') 1594 setreg('"', 'ABCD', 'b')
1595 getregtype('')->assert_equal("\<C-V>4") 1595 getregtype('')->assert_equal("\<C-V>4")
1596 enddef 1596 enddef
1597 1597
1598 def Test_gettabinfo() 1598 def Test_gettabinfo()
1599 CheckDefAndScriptFailure2(['gettabinfo("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1599 CheckDefAndScriptFailure(['gettabinfo("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1600 enddef 1600 enddef
1601 1601
1602 def Test_gettabvar() 1602 def Test_gettabvar()
1603 CheckDefAndScriptFailure2(['gettabvar("a", "b")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1603 CheckDefAndScriptFailure(['gettabvar("a", "b")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1604 CheckDefAndScriptFailure2(['gettabvar(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1604 CheckDefAndScriptFailure(['gettabvar(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1605 enddef 1605 enddef
1606 1606
1607 def Test_gettabwinvar() 1607 def Test_gettabwinvar()
1608 CheckDefAndScriptFailure2(['gettabwinvar("a", 2, "c")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1608 CheckDefAndScriptFailure(['gettabwinvar("a", 2, "c")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1609 CheckDefAndScriptFailure2(['gettabwinvar(1, "b", "c", [])'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 1609 CheckDefAndScriptFailure(['gettabwinvar(1, "b", "c", [])'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
1610 CheckDefAndScriptFailure2(['gettabwinvar(1, 1, 3, {})'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 1610 CheckDefAndScriptFailure(['gettabwinvar(1, 1, 3, {})'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
1611 enddef 1611 enddef
1612 1612
1613 def Test_gettagstack() 1613 def Test_gettagstack()
1614 CheckDefAndScriptFailure2(['gettagstack("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1614 CheckDefAndScriptFailure(['gettagstack("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1615 enddef 1615 enddef
1616 1616
1617 def Test_gettext() 1617 def Test_gettext()
1618 CheckDefAndScriptFailure2(['gettext(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1618 CheckDefAndScriptFailure(['gettext(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1619 CheckDefExecAndScriptFailure(['gettext("")'], 'E475: Invalid argument') 1619 CheckDefExecAndScriptFailure(['gettext("")'], 'E475: Invalid argument')
1620 assert_equal('abc', gettext("abc")) 1620 assert_equal('abc', gettext("abc"))
1621 assert_fails('gettext("")', 'E475:') 1621 assert_fails('gettext("")', 'E475:')
1622 enddef 1622 enddef
1623 1623
1624 def Test_getwininfo() 1624 def Test_getwininfo()
1625 CheckDefAndScriptFailure2(['getwininfo("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1625 CheckDefAndScriptFailure(['getwininfo("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1626 enddef 1626 enddef
1627 1627
1628 def Test_getwinpos() 1628 def Test_getwinpos()
1629 CheckDefAndScriptFailure2(['getwinpos("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1629 CheckDefAndScriptFailure(['getwinpos("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1630 enddef 1630 enddef
1631 1631
1632 def Test_getwinvar() 1632 def Test_getwinvar()
1633 CheckDefAndScriptFailure2(['getwinvar("a", "b")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1633 CheckDefAndScriptFailure(['getwinvar("a", "b")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1634 CheckDefAndScriptFailure2(['getwinvar(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1634 CheckDefAndScriptFailure(['getwinvar(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1635 enddef 1635 enddef
1636 1636
1637 def Test_glob() 1637 def Test_glob()
1638 glob('runtest.vim', true, true, true)->assert_equal(['runtest.vim']) 1638 glob('runtest.vim', true, true, true)->assert_equal(['runtest.vim'])
1639 CheckDefAndScriptFailure2(['glob(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1639 CheckDefAndScriptFailure(['glob(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1640 CheckDefAndScriptFailure2(['glob("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 1640 CheckDefAndScriptFailure(['glob("a", 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
1641 CheckDefAndScriptFailure2(['glob("a", 1, "b")'], 'E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3') 1641 CheckDefAndScriptFailure(['glob("a", 1, "b")'], ['E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3'])
1642 CheckDefAndScriptFailure2(['glob("a", 1, true, 2)'], 'E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4') 1642 CheckDefAndScriptFailure(['glob("a", 1, true, 2)'], ['E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4'])
1643 glob('')->assert_equal('') 1643 glob('')->assert_equal('')
1644 enddef 1644 enddef
1645 1645
1646 def Test_glob2regpat() 1646 def Test_glob2regpat()
1647 CheckDefAndScriptFailure2(['glob2regpat(null)'], 'E1013: Argument 1: type mismatch, expected string but got special', 'E1174: String required for argument 1') 1647 CheckDefAndScriptFailure(['glob2regpat(null)'], ['E1013: Argument 1: type mismatch, expected string but got special', 'E1174: String required for argument 1'])
1648 glob2regpat('')->assert_equal('^$') 1648 glob2regpat('')->assert_equal('^$')
1649 enddef 1649 enddef
1650 1650
1651 def Test_globpath() 1651 def Test_globpath()
1652 globpath('.', 'runtest.vim', true, true, true)->assert_equal(['./runtest.vim']) 1652 globpath('.', 'runtest.vim', true, true, true)->assert_equal(['./runtest.vim'])
1653 CheckDefAndScriptFailure2(['globpath(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1653 CheckDefAndScriptFailure(['globpath(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1654 CheckDefAndScriptFailure2(['globpath("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1654 CheckDefAndScriptFailure(['globpath("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1655 CheckDefAndScriptFailure2(['globpath("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3') 1655 CheckDefAndScriptFailure(['globpath("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3'])
1656 CheckDefAndScriptFailure2(['globpath("a", "b", true, "d")'], 'E1013: Argument 4: type mismatch, expected bool but got string', 'E1212: Bool required for argument 4') 1656 CheckDefAndScriptFailure(['globpath("a", "b", true, "d")'], ['E1013: Argument 4: type mismatch, expected bool but got string', 'E1212: Bool required for argument 4'])
1657 CheckDefAndScriptFailure2(['globpath("a", "b", true, false, "e")'], 'E1013: Argument 5: type mismatch, expected bool but got string', 'E1212: Bool required for argument 5') 1657 CheckDefAndScriptFailure(['globpath("a", "b", true, false, "e")'], ['E1013: Argument 5: type mismatch, expected bool but got string', 'E1212: Bool required for argument 5'])
1658 globpath('', '')->assert_equal('') 1658 globpath('', '')->assert_equal('')
1659 enddef 1659 enddef
1660 1660
1661 def Test_has() 1661 def Test_has()
1662 has('eval', true)->assert_equal(1) 1662 has('eval', true)->assert_equal(1)
1663 CheckDefAndScriptFailure2(['has(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 1663 CheckDefAndScriptFailure(['has(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
1664 CheckDefAndScriptFailure2(['has("a", "b")'], 'E1013: Argument 2: type mismatch, expected bool but got string', 'E1212: Bool required for argument 2') 1664 CheckDefAndScriptFailure(['has("a", "b")'], ['E1013: Argument 2: type mismatch, expected bool but got string', 'E1212: Bool required for argument 2'])
1665 has('')->assert_equal(0) 1665 has('')->assert_equal(0)
1666 enddef 1666 enddef
1667 1667
1668 def Test_has_key() 1668 def Test_has_key()
1669 var d = {123: 'xx'} 1669 var d = {123: 'xx'}
1670 assert_true(has_key(d, '123')) 1670 assert_true(has_key(d, '123'))
1671 assert_true(has_key(d, 123)) 1671 assert_true(has_key(d, 123))
1672 assert_false(has_key(d, 'x')) 1672 assert_false(has_key(d, 'x'))
1673 assert_false(has_key(d, 99)) 1673 assert_false(has_key(d, 99))
1674 1674
1675 CheckDefAndScriptFailure2(['has_key([1, 2], "k")'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1') 1675 CheckDefAndScriptFailure(['has_key([1, 2], "k")'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1'])
1676 CheckDefAndScriptFailure2(['has_key({"a": 10}, ["a"])'], 'E1013: Argument 2: type mismatch, expected string but got list<string>', 'E1220: String or Number required for argument 2') 1676 CheckDefAndScriptFailure(['has_key({"a": 10}, ["a"])'], ['E1013: Argument 2: type mismatch, expected string but got list<string>', 'E1220: String or Number required for argument 2'])
1677 enddef 1677 enddef
1678 1678
1679 def Test_haslocaldir() 1679 def Test_haslocaldir()
1680 CheckDefAndScriptFailure2(['haslocaldir("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1680 CheckDefAndScriptFailure(['haslocaldir("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1681 CheckDefAndScriptFailure2(['haslocaldir("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1681 CheckDefAndScriptFailure(['haslocaldir("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1682 CheckDefAndScriptFailure2(['haslocaldir(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 1682 CheckDefAndScriptFailure(['haslocaldir(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
1683 enddef 1683 enddef
1684 1684
1685 def Test_hasmapto() 1685 def Test_hasmapto()
1686 hasmapto('foobar', 'i', true)->assert_equal(0) 1686 hasmapto('foobar', 'i', true)->assert_equal(0)
1687 iabbrev foo foobar 1687 iabbrev foo foobar
1688 hasmapto('foobar', 'i', true)->assert_equal(1) 1688 hasmapto('foobar', 'i', true)->assert_equal(1)
1689 iunabbrev foo 1689 iunabbrev foo
1690 CheckDefAndScriptFailure2(['hasmapto(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1690 CheckDefAndScriptFailure(['hasmapto(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1691 CheckDefAndScriptFailure2(['hasmapto("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1691 CheckDefAndScriptFailure(['hasmapto("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1692 CheckDefAndScriptFailure2(['hasmapto("a", "b", 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 1692 CheckDefAndScriptFailure(['hasmapto("a", "b", 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
1693 hasmapto('', '')->assert_equal(0) 1693 hasmapto('', '')->assert_equal(0)
1694 enddef 1694 enddef
1695 1695
1696 def Test_histadd() 1696 def Test_histadd()
1697 CheckDefAndScriptFailure2(['histadd(1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1697 CheckDefAndScriptFailure(['histadd(1, "x")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1698 CheckDefAndScriptFailure2(['histadd(":", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1698 CheckDefAndScriptFailure(['histadd(":", 10)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1699 histadd("search", 'skyblue') 1699 histadd("search", 'skyblue')
1700 assert_equal('skyblue', histget('/', -1)) 1700 assert_equal('skyblue', histget('/', -1))
1701 histadd("search", '')->assert_equal(0) 1701 histadd("search", '')->assert_equal(0)
1702 enddef 1702 enddef
1703 1703
1704 def Test_histdel() 1704 def Test_histdel()
1705 CheckDefAndScriptFailure2(['histdel(1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1705 CheckDefAndScriptFailure(['histdel(1, "x")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1706 CheckDefAndScriptFailure2(['histdel(":", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 2') 1706 CheckDefAndScriptFailure(['histdel(":", true)'], ['E1013: Argument 2: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 2'])
1707 histdel('search', '')->assert_equal(0) 1707 histdel('search', '')->assert_equal(0)
1708 enddef 1708 enddef
1709 1709
1710 def Test_histget() 1710 def Test_histget()
1711 CheckDefAndScriptFailure2(['histget(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1711 CheckDefAndScriptFailure(['histget(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1712 CheckDefAndScriptFailure2(['histget("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 1712 CheckDefAndScriptFailure(['histget("a", "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
1713 enddef 1713 enddef
1714 1714
1715 def Test_histnr() 1715 def Test_histnr()
1716 CheckDefAndScriptFailure2(['histnr(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1716 CheckDefAndScriptFailure(['histnr(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1717 assert_equal(-1, histnr('abc')) 1717 assert_equal(-1, histnr('abc'))
1718 enddef 1718 enddef
1719 1719
1720 def Test_hlID() 1720 def Test_hlID()
1721 CheckDefAndScriptFailure2(['hlID(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1721 CheckDefAndScriptFailure(['hlID(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1722 assert_equal(0, hlID('NonExistingHighlight')) 1722 assert_equal(0, hlID('NonExistingHighlight'))
1723 hlID('')->assert_equal(0) 1723 hlID('')->assert_equal(0)
1724 enddef 1724 enddef
1725 1725
1726 def Test_hlexists() 1726 def Test_hlexists()
1727 CheckDefAndScriptFailure2(['hlexists([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') 1727 CheckDefAndScriptFailure(['hlexists([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1'])
1728 assert_equal(0, hlexists('NonExistingHighlight')) 1728 assert_equal(0, hlexists('NonExistingHighlight'))
1729 hlexists('')->assert_equal(0) 1729 hlexists('')->assert_equal(0)
1730 enddef 1730 enddef
1731 1731
1732 def Test_hlget() 1732 def Test_hlget()
1733 CheckDefAndScriptFailure2(['hlget([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') 1733 CheckDefAndScriptFailure(['hlget([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1'])
1734 hlget('')->assert_equal([]) 1734 hlget('')->assert_equal([])
1735 enddef 1735 enddef
1736 1736
1737 def Test_hlset() 1737 def Test_hlset()
1738 CheckDefAndScriptFailure2(['hlset("id")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1') 1738 CheckDefAndScriptFailure(['hlset("id")'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1'])
1739 hlset([])->assert_equal(0) 1739 hlset([])->assert_equal(0)
1740 enddef 1740 enddef
1741 1741
1742 def Test_iconv() 1742 def Test_iconv()
1743 CheckDefAndScriptFailure2(['iconv(1, "from", "to")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1743 CheckDefAndScriptFailure(['iconv(1, "from", "to")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1744 CheckDefAndScriptFailure2(['iconv("abc", 10, "to")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1744 CheckDefAndScriptFailure(['iconv("abc", 10, "to")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1745 CheckDefAndScriptFailure2(['iconv("abc", "from", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 1745 CheckDefAndScriptFailure(['iconv("abc", "from", 20)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
1746 assert_equal('abc', iconv('abc', 'fromenc', 'toenc')) 1746 assert_equal('abc', iconv('abc', 'fromenc', 'toenc'))
1747 iconv('', '', '')->assert_equal('') 1747 iconv('', '', '')->assert_equal('')
1748 enddef 1748 enddef
1749 1749
1750 def Test_indent() 1750 def Test_indent()
1751 CheckDefAndScriptFailure2(['indent([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 1751 CheckDefAndScriptFailure(['indent([1])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
1752 CheckDefAndScriptFailure2(['indent(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 1752 CheckDefAndScriptFailure(['indent(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
1753 CheckDefExecAndScriptFailure(['indent("")'], 'E1209: Invalid value for a line number') 1753 CheckDefExecAndScriptFailure(['indent("")'], 'E1209: Invalid value for a line number')
1754 assert_equal(0, indent(1)) 1754 assert_equal(0, indent(1))
1755 enddef 1755 enddef
1756 1756
1757 def Test_index() 1757 def Test_index()
1758 index(['a', 'b', 'a', 'B'], 'b', 2, true)->assert_equal(3) 1758 index(['a', 'b', 'a', 'B'], 'b', 2, true)->assert_equal(3)
1759 CheckDefAndScriptFailure2(['index("a", "a")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1226: List or Blob required for argument 1') 1759 CheckDefAndScriptFailure(['index("a", "a")'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1226: List or Blob required for argument 1'])
1760 CheckDefFailure(['index(["1"], 1)'], 'E1013: Argument 2: type mismatch, expected string but got number') 1760 CheckDefFailure(['index(["1"], 1)'], 'E1013: Argument 2: type mismatch, expected string but got number')
1761 CheckDefAndScriptFailure2(['index(0z10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 1761 CheckDefAndScriptFailure(['index(0z10, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
1762 CheckDefAndScriptFailure2(['index([1], 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 1762 CheckDefAndScriptFailure(['index([1], 1, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
1763 CheckDefAndScriptFailure2(['index(0z1020, 10, 1, 2)'], 'E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4') 1763 CheckDefAndScriptFailure(['index(0z1020, 10, 1, 2)'], ['E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4'])
1764 enddef 1764 enddef
1765 1765
1766 def Test_input() 1766 def Test_input()
1767 CheckDefAndScriptFailure2(['input(5)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1767 CheckDefAndScriptFailure(['input(5)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1768 CheckDefAndScriptFailure2(['input(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 1768 CheckDefAndScriptFailure(['input(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
1769 CheckDefAndScriptFailure2(['input("p", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1769 CheckDefAndScriptFailure(['input("p", 10)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1770 CheckDefAndScriptFailure2(['input("p", "q", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 1770 CheckDefAndScriptFailure(['input("p", "q", 20)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
1771 enddef 1771 enddef
1772 1772
1773 def Test_inputdialog() 1773 def Test_inputdialog()
1774 CheckDefAndScriptFailure2(['inputdialog(5)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1774 CheckDefAndScriptFailure(['inputdialog(5)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1775 CheckDefAndScriptFailure2(['inputdialog(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 1775 CheckDefAndScriptFailure(['inputdialog(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
1776 CheckDefAndScriptFailure2(['inputdialog("p", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1776 CheckDefAndScriptFailure(['inputdialog("p", 10)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1777 CheckDefAndScriptFailure2(['inputdialog("p", "q", 20)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 1777 CheckDefAndScriptFailure(['inputdialog("p", "q", 20)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
1778 enddef 1778 enddef
1779 1779
1780 def Test_inputlist() 1780 def Test_inputlist()
1781 CheckDefAndScriptFailure2(['inputlist(10)'], 'E1013: Argument 1: type mismatch, expected list<string> but got number', 'E1211: List required for argument 1') 1781 CheckDefAndScriptFailure(['inputlist(10)'], ['E1013: Argument 1: type mismatch, expected list<string> but got number', 'E1211: List required for argument 1'])
1782 CheckDefAndScriptFailure2(['inputlist("abc")'], 'E1013: Argument 1: type mismatch, expected list<string> but got string', 'E1211: List required for argument 1') 1782 CheckDefAndScriptFailure(['inputlist("abc")'], ['E1013: Argument 1: type mismatch, expected list<string> but got string', 'E1211: List required for argument 1'])
1783 CheckDefFailure(['inputlist([1, 2, 3])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>') 1783 CheckDefFailure(['inputlist([1, 2, 3])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>')
1784 feedkeys("2\<CR>", 't') 1784 feedkeys("2\<CR>", 't')
1785 var r: number = inputlist(['a', 'b', 'c']) 1785 var r: number = inputlist(['a', 'b', 'c'])
1786 assert_equal(2, r) 1786 assert_equal(2, r)
1787 enddef 1787 enddef
1788 1788
1789 def Test_inputsecret() 1789 def Test_inputsecret()
1790 CheckDefAndScriptFailure2(['inputsecret(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1790 CheckDefAndScriptFailure(['inputsecret(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1791 CheckDefAndScriptFailure2(['inputsecret("Pass:", 20)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1791 CheckDefAndScriptFailure(['inputsecret("Pass:", 20)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1792 feedkeys("\<CR>", 't') 1792 feedkeys("\<CR>", 't')
1793 var ans: string = inputsecret('Pass:', '123') 1793 var ans: string = inputsecret('Pass:', '123')
1794 assert_equal('123', ans) 1794 assert_equal('123', ans)
1795 enddef 1795 enddef
1796 1796
1827 assert_equal([1, 2, 3], insert([1, 2], 3, 2)) 1827 assert_equal([1, 2, 3], insert([1, 2], 3, 2))
1828 assert_equal([1, 2, 3], insert([1, 2], 3, s:number_two)) 1828 assert_equal([1, 2, 3], insert([1, 2], 3, s:number_two))
1829 assert_equal(['a', 'b', 'c'], insert(['b', 'c'], 'a')) 1829 assert_equal(['a', 'b', 'c'], insert(['b', 'c'], 'a'))
1830 assert_equal(0z1234, insert(0z34, 0x12)) 1830 assert_equal(0z1234, insert(0z34, 0x12))
1831 1831
1832 CheckDefAndScriptFailure2(['insert("a", 1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1226: List or Blob required for argument 1') 1832 CheckDefAndScriptFailure(['insert("a", 1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1226: List or Blob required for argument 1'])
1833 CheckDefFailure(['insert([2, 3], "a")'], 'E1013: Argument 2: type mismatch, expected number but got string') 1833 CheckDefFailure(['insert([2, 3], "a")'], 'E1013: Argument 2: type mismatch, expected number but got string')
1834 CheckDefAndScriptFailure2(['insert([2, 3], 1, "x")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 1834 CheckDefAndScriptFailure(['insert([2, 3], 1, "x")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
1835 enddef 1835 enddef
1836 1836
1837 def Test_invert() 1837 def Test_invert()
1838 CheckDefAndScriptFailure2(['invert("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 1838 CheckDefAndScriptFailure(['invert("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
1839 enddef 1839 enddef
1840 1840
1841 def Test_isdirectory() 1841 def Test_isdirectory()
1842 CheckDefAndScriptFailure2(['isdirectory(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1') 1842 CheckDefAndScriptFailure(['isdirectory(1.1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1'])
1843 assert_false(isdirectory('NonExistingDir')) 1843 assert_false(isdirectory('NonExistingDir'))
1844 assert_false(isdirectory('')) 1844 assert_false(isdirectory(''))
1845 enddef 1845 enddef
1846 1846
1847 def Test_islocked() 1847 def Test_islocked()
1848 CheckDefAndScriptFailure2(['islocked(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') 1848 CheckDefAndScriptFailure(['islocked(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1'])
1849 CheckDefAndScriptFailure2(['var n1: number = 10', 'islocked(n1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1849 CheckDefAndScriptFailure(['var n1: number = 10', 'islocked(n1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1850 g:v1 = 10 1850 g:v1 = 10
1851 assert_false(islocked('g:v1')) 1851 assert_false(islocked('g:v1'))
1852 lockvar g:v1 1852 lockvar g:v1
1853 assert_true(islocked('g:v1')) 1853 assert_true(islocked('g:v1'))
1854 unlet g:v1 1854 unlet g:v1
1863 1863
1864 def Test_job_getchannel() 1864 def Test_job_getchannel()
1865 if !has('job') 1865 if !has('job')
1866 CheckFeature job 1866 CheckFeature job
1867 else 1867 else
1868 CheckDefAndScriptFailure2(['job_getchannel("a")'], 'E1013: Argument 1: type mismatch, expected job but got string', 'E1218: Job required for argument 1') 1868 CheckDefAndScriptFailure(['job_getchannel("a")'], ['E1013: Argument 1: type mismatch, expected job but got string', 'E1218: Job required for argument 1'])
1869 assert_fails('job_getchannel(test_null_job())', 'E916: not a valid job') 1869 assert_fails('job_getchannel(test_null_job())', 'E916: not a valid job')
1870 endif 1870 endif
1871 enddef 1871 enddef
1872 1872
1873 def Test_job_info() 1873 def Test_job_info()
1874 if !has('job') 1874 if !has('job')
1875 CheckFeature job 1875 CheckFeature job
1876 else 1876 else
1877 CheckDefAndScriptFailure2(['job_info("a")'], 'E1013: Argument 1: type mismatch, expected job but got string', 'E1218: Job required for argument 1') 1877 CheckDefAndScriptFailure(['job_info("a")'], ['E1013: Argument 1: type mismatch, expected job but got string', 'E1218: Job required for argument 1'])
1878 assert_fails('job_info(test_null_job())', 'E916: not a valid job') 1878 assert_fails('job_info(test_null_job())', 'E916: not a valid job')
1879 endif 1879 endif
1880 enddef 1880 enddef
1881 1881
1882 " Test_job_info_return_type() is in test_vim9_fails.vim 1882 " Test_job_info_return_type() is in test_vim9_fails.vim
1883 1883
1884 def Test_job_setoptions() 1884 def Test_job_setoptions()
1885 if !has('job') 1885 if !has('job')
1886 CheckFeature job 1886 CheckFeature job
1887 else 1887 else
1888 CheckDefAndScriptFailure2(['job_setoptions(test_null_channel(), {})'], 'E1013: Argument 1: type mismatch, expected job but got channel', 'E1218: Job required for argument 1') 1888 CheckDefAndScriptFailure(['job_setoptions(test_null_channel(), {})'], ['E1013: Argument 1: type mismatch, expected job but got channel', 'E1218: Job required for argument 1'])
1889 CheckDefAndScriptFailure2(['job_setoptions(test_null_job(), [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 1889 CheckDefAndScriptFailure(['job_setoptions(test_null_job(), [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
1890 assert_equal('fail', job_status(test_null_job())) 1890 assert_equal('fail', job_status(test_null_job()))
1891 endif 1891 endif
1892 enddef 1892 enddef
1893 1893
1894 def Test_job_status() 1894 def Test_job_status()
1895 if !has('job') 1895 if !has('job')
1896 CheckFeature job 1896 CheckFeature job
1897 else 1897 else
1898 CheckDefAndScriptFailure2(['job_status("a")'], 'E1013: Argument 1: type mismatch, expected job but got string', 'E1218: Job required for argument 1') 1898 CheckDefAndScriptFailure(['job_status("a")'], ['E1013: Argument 1: type mismatch, expected job but got string', 'E1218: Job required for argument 1'])
1899 assert_equal('fail', job_status(test_null_job())) 1899 assert_equal('fail', job_status(test_null_job()))
1900 endif 1900 endif
1901 enddef 1901 enddef
1902 1902
1903 def Test_job_stop() 1903 def Test_job_stop()
1904 if !has('job') 1904 if !has('job')
1905 CheckFeature job 1905 CheckFeature job
1906 else 1906 else
1907 CheckDefAndScriptFailure2(['job_stop("a")'], 'E1013: Argument 1: type mismatch, expected job but got string', 'E1218: Job required for argument 1') 1907 CheckDefAndScriptFailure(['job_stop("a")'], ['E1013: Argument 1: type mismatch, expected job but got string', 'E1218: Job required for argument 1'])
1908 CheckDefAndScriptFailure2(['job_stop(test_null_job(), true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 2') 1908 CheckDefAndScriptFailure(['job_stop(test_null_job(), true)'], ['E1013: Argument 2: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 2'])
1909 endif 1909 endif
1910 enddef 1910 enddef
1911 1911
1912 def Test_join() 1912 def Test_join()
1913 CheckDefAndScriptFailure2(['join("abc")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1') 1913 CheckDefAndScriptFailure(['join("abc")'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1'])
1914 CheckDefAndScriptFailure2(['join([], 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1914 CheckDefAndScriptFailure(['join([], 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1915 join([''], '')->assert_equal('') 1915 join([''], '')->assert_equal('')
1916 enddef 1916 enddef
1917 1917
1918 def Test_js_decode() 1918 def Test_js_decode()
1919 CheckDefAndScriptFailure2(['js_decode(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1919 CheckDefAndScriptFailure(['js_decode(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1920 assert_equal([1, 2], js_decode('[1,2]')) 1920 assert_equal([1, 2], js_decode('[1,2]'))
1921 js_decode('')->assert_equal(v:none) 1921 js_decode('')->assert_equal(v:none)
1922 enddef 1922 enddef
1923 1923
1924 def Test_json_decode() 1924 def Test_json_decode()
1925 CheckDefAndScriptFailure2(['json_decode(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') 1925 CheckDefAndScriptFailure(['json_decode(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1'])
1926 assert_equal(1.0, json_decode('1.0')) 1926 assert_equal(1.0, json_decode('1.0'))
1927 json_decode('')->assert_equal(v:none) 1927 json_decode('')->assert_equal(v:none)
1928 enddef 1928 enddef
1929 1929
1930 def Test_keys() 1930 def Test_keys()
1931 CheckDefAndScriptFailure2(['keys([])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1') 1931 CheckDefAndScriptFailure(['keys([])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1'])
1932 assert_equal(['a'], {a: 'v'}->keys()) 1932 assert_equal(['a'], {a: 'v'}->keys())
1933 assert_equal([], {}->keys()) 1933 assert_equal([], {}->keys())
1934 enddef 1934 enddef
1935 1935
1936 def Test_keys_return_type() 1936 def Test_keys_return_type()
1937 const var: list<string> = {a: 1, b: 2}->keys() 1937 const var: list<string> = {a: 1, b: 2}->keys()
1938 var->assert_equal(['a', 'b']) 1938 var->assert_equal(['a', 'b'])
1939 enddef 1939 enddef
1940 1940
1941 def Test_len() 1941 def Test_len()
1942 CheckDefAndScriptFailure2(['len(true)'], 'E1013: Argument 1: type mismatch, expected list<any> but got bool', 'E701: Invalid type for len()') 1942 CheckDefAndScriptFailure(['len(true)'], ['E1013: Argument 1: type mismatch, expected list<any> but got bool', 'E701: Invalid type for len()'])
1943 assert_equal(2, "ab"->len()) 1943 assert_equal(2, "ab"->len())
1944 assert_equal(3, 456->len()) 1944 assert_equal(3, 456->len())
1945 assert_equal(0, []->len()) 1945 assert_equal(0, []->len())
1946 assert_equal(1, {a: 10}->len()) 1946 assert_equal(1, {a: 10}->len())
1947 assert_equal(4, 0z20304050->len()) 1947 assert_equal(4, 0z20304050->len())
1948 enddef 1948 enddef
1949 1949
1950 def Test_libcall() 1950 def Test_libcall()
1951 CheckFeature libcall 1951 CheckFeature libcall
1952 CheckDefAndScriptFailure2(['libcall(1, "b", 3)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1952 CheckDefAndScriptFailure(['libcall(1, "b", 3)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1953 CheckDefAndScriptFailure2(['libcall("a", 2, 3)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1953 CheckDefAndScriptFailure(['libcall("a", 2, 3)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1954 CheckDefAndScriptFailure2(['libcall("a", "b", 1.1)'], 'E1013: Argument 3: type mismatch, expected string but got float', 'E1220: String or Number required for argument 3') 1954 CheckDefAndScriptFailure(['libcall("a", "b", 1.1)'], ['E1013: Argument 3: type mismatch, expected string but got float', 'E1220: String or Number required for argument 3'])
1955 enddef 1955 enddef
1956 1956
1957 def Test_libcallnr() 1957 def Test_libcallnr()
1958 CheckFeature libcall 1958 CheckFeature libcall
1959 CheckDefAndScriptFailure2(['libcallnr(1, "b", 3)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1959 CheckDefAndScriptFailure(['libcallnr(1, "b", 3)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1960 CheckDefAndScriptFailure2(['libcallnr("a", 2, 3)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 1960 CheckDefAndScriptFailure(['libcallnr("a", 2, 3)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
1961 CheckDefAndScriptFailure2(['libcallnr("a", "b", 1.1)'], 'E1013: Argument 3: type mismatch, expected string but got float', 'E1220: String or Number required for argument 3') 1961 CheckDefAndScriptFailure(['libcallnr("a", "b", 1.1)'], ['E1013: Argument 3: type mismatch, expected string but got float', 'E1220: String or Number required for argument 3'])
1962 enddef 1962 enddef
1963 1963
1964 def Test_line() 1964 def Test_line()
1965 assert_fails('line(true)', 'E1174:') 1965 assert_fails('line(true)', 'E1174:')
1966 CheckDefAndScriptFailure2(['line(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 1966 CheckDefAndScriptFailure(['line(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1967 CheckDefAndScriptFailure2(['line(".", "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 1967 CheckDefAndScriptFailure(['line(".", "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
1968 CheckDefExecAndScriptFailure(['line("")'], 'E1209: Invalid value for a line number') 1968 CheckDefExecAndScriptFailure(['line("")'], 'E1209: Invalid value for a line number')
1969 enddef 1969 enddef
1970 1970
1971 def Test_line2byte() 1971 def Test_line2byte()
1972 CheckDefAndScriptFailure2(['line2byte(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 1972 CheckDefAndScriptFailure(['line2byte(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
1973 CheckDefExecAndScriptFailure(['line2byte("")'], 'E1209: Invalid value for a line number') 1973 CheckDefExecAndScriptFailure(['line2byte("")'], 'E1209: Invalid value for a line number')
1974 assert_equal(-1, line2byte(1)) 1974 assert_equal(-1, line2byte(1))
1975 assert_equal(-1, line2byte(10000)) 1975 assert_equal(-1, line2byte(10000))
1976 enddef 1976 enddef
1977 1977
1978 def Test_lispindent() 1978 def Test_lispindent()
1979 CheckDefAndScriptFailure2(['lispindent({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1220: String or Number required for argument 1') 1979 CheckDefAndScriptFailure(['lispindent({})'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1220: String or Number required for argument 1'])
1980 CheckDefExecAndScriptFailure(['lispindent("")'], 'E1209: Invalid value for a line number') 1980 CheckDefExecAndScriptFailure(['lispindent("")'], 'E1209: Invalid value for a line number')
1981 assert_equal(0, lispindent(1)) 1981 assert_equal(0, lispindent(1))
1982 enddef 1982 enddef
1983 1983
1984 def Test_list2blob() 1984 def Test_list2blob()
1985 CheckDefAndScriptFailure2(['list2blob(10)'], 'E1013: Argument 1: type mismatch, expected list<number> but got number', 'E1211: List required for argument 1') 1985 CheckDefAndScriptFailure(['list2blob(10)'], ['E1013: Argument 1: type mismatch, expected list<number> but got number', 'E1211: List required for argument 1'])
1986 CheckDefFailure(['list2blob([0z10, 0z02])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<blob>') 1986 CheckDefFailure(['list2blob([0z10, 0z02])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<blob>')
1987 enddef 1987 enddef
1988 1988
1989 def Test_list2str_str2list_utf8() 1989 def Test_list2str_str2list_utf8()
1990 var s = "\u3042\u3044" 1990 var s = "\u3042\u3044"
1992 str2list(s, true)->assert_equal(l) 1992 str2list(s, true)->assert_equal(l)
1993 list2str(l, true)->assert_equal(s) 1993 list2str(l, true)->assert_equal(s)
1994 enddef 1994 enddef
1995 1995
1996 def Test_list2str() 1996 def Test_list2str()
1997 CheckDefAndScriptFailure2(['list2str(".", true)'], 'E1013: Argument 1: type mismatch, expected list<number> but got string', 'E1211: List required for argument 1') 1997 CheckDefAndScriptFailure(['list2str(".", true)'], ['E1013: Argument 1: type mismatch, expected list<number> but got string', 'E1211: List required for argument 1'])
1998 CheckDefAndScriptFailure2(['list2str([1], 0z10)'], 'E1013: Argument 2: type mismatch, expected bool but got blob', 'E1212: Bool required for argument 2') 1998 CheckDefAndScriptFailure(['list2str([1], 0z10)'], ['E1013: Argument 2: type mismatch, expected bool but got blob', 'E1212: Bool required for argument 2'])
1999 enddef 1999 enddef
2000 2000
2001 def SID(): number 2001 def SID(): number
2002 return expand('<SID>') 2002 return expand('<SID>')
2003 ->matchstr('<SNR>\zs\d\+\ze_$') 2003 ->matchstr('<SNR>\zs\d\+\ze_$')
2004 ->str2nr() 2004 ->str2nr()
2005 enddef 2005 enddef
2006 2006
2007 def Test_listener_add() 2007 def Test_listener_add()
2008 CheckDefAndScriptFailure2(['listener_add("1", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 2') 2008 CheckDefAndScriptFailure(['listener_add("1", true)'], ['E1013: Argument 2: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 2'])
2009 enddef 2009 enddef
2010 2010
2011 def Test_listener_flush() 2011 def Test_listener_flush()
2012 CheckDefAndScriptFailure2(['listener_flush([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 2012 CheckDefAndScriptFailure(['listener_flush([1])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
2013 enddef 2013 enddef
2014 2014
2015 def Test_listener_remove() 2015 def Test_listener_remove()
2016 CheckDefAndScriptFailure2(['listener_remove("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2016 CheckDefAndScriptFailure(['listener_remove("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2017 enddef 2017 enddef
2018 2018
2019 def Test_luaeval() 2019 def Test_luaeval()
2020 if !has('lua') 2020 if !has('lua')
2021 CheckFeature lua 2021 CheckFeature lua
2022 endif 2022 endif
2023 CheckDefAndScriptFailure2(['luaeval(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2023 CheckDefAndScriptFailure(['luaeval(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2024 if exists_compiled('*luaeval') 2024 if exists_compiled('*luaeval')
2025 luaeval('')->assert_equal(v:null) 2025 luaeval('')->assert_equal(v:null)
2026 endif 2026 endif
2027 enddef 2027 enddef
2028 2028
2029 def Test_map() 2029 def Test_map()
2030 if has('channel') 2030 if has('channel')
2031 CheckDefAndScriptFailure2(['map(test_null_channel(), "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got channel', 'E1251: List, Dictionary, Blob or String required for argument 1') 2031 CheckDefAndScriptFailure(['map(test_null_channel(), "1")'], ['E1013: Argument 1: type mismatch, expected list<any> but got channel', 'E1251: List, Dictionary, Blob or String required for argument 1'])
2032 endif 2032 endif
2033 CheckDefAndScriptFailure2(['map(1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1251: List, Dictionary, Blob or String required for argument 1') 2033 CheckDefAndScriptFailure(['map(1, "1")'], ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1251: List, Dictionary, Blob or String required for argument 1'])
2034 enddef 2034 enddef
2035 2035
2036 def Test_map_failure() 2036 def Test_map_failure()
2037 CheckFeature job 2037 CheckFeature job
2038 2038
2117 expr: 0, 2117 expr: 0,
2118 sid: SID(), 2118 sid: SID(),
2119 rhs: 'bar', 2119 rhs: 'bar',
2120 buffer: 0}) 2120 buffer: 0})
2121 unmap foo 2121 unmap foo
2122 CheckDefAndScriptFailure2(['maparg(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2122 CheckDefAndScriptFailure(['maparg(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2123 CheckDefAndScriptFailure2(['maparg("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2123 CheckDefAndScriptFailure(['maparg("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2124 CheckDefAndScriptFailure2(['maparg("a", "b", 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 2124 CheckDefAndScriptFailure(['maparg("a", "b", 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
2125 CheckDefAndScriptFailure2(['maparg("a", "b", true, 2)'], 'E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4') 2125 CheckDefAndScriptFailure(['maparg("a", "b", true, 2)'], ['E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4'])
2126 maparg('')->assert_equal('') 2126 maparg('')->assert_equal('')
2127 enddef 2127 enddef
2128 2128
2129 def Test_maparg_mapset() 2129 def Test_maparg_mapset()
2130 nnoremap <F3> :echo "hit F3"<CR> 2130 nnoremap <F3> :echo "hit F3"<CR>
2136 2136
2137 def Test_mapcheck() 2137 def Test_mapcheck()
2138 iabbrev foo foobar 2138 iabbrev foo foobar
2139 mapcheck('foo', 'i', true)->assert_equal('foobar') 2139 mapcheck('foo', 'i', true)->assert_equal('foobar')
2140 iunabbrev foo 2140 iunabbrev foo
2141 CheckDefAndScriptFailure2(['mapcheck(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2141 CheckDefAndScriptFailure(['mapcheck(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2142 CheckDefAndScriptFailure2(['mapcheck("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2142 CheckDefAndScriptFailure(['mapcheck("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2143 CheckDefAndScriptFailure2(['mapcheck("a", "b", 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 2143 CheckDefAndScriptFailure(['mapcheck("a", "b", 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
2144 mapcheck('')->assert_equal('') 2144 mapcheck('')->assert_equal('')
2145 mapcheck('', '')->assert_equal('') 2145 mapcheck('', '')->assert_equal('')
2146 enddef 2146 enddef
2147 2147
2148 def Test_mapnew() 2148 def Test_mapnew()
2149 if has('channel') 2149 if has('channel')
2150 CheckDefAndScriptFailure2(['mapnew(test_null_job(), "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got job', 'E1251: List, Dictionary, Blob or String required for argument 1') 2150 CheckDefAndScriptFailure(['mapnew(test_null_job(), "1")'], ['E1013: Argument 1: type mismatch, expected list<any> but got job', 'E1251: List, Dictionary, Blob or String required for argument 1'])
2151 endif 2151 endif
2152 CheckDefAndScriptFailure2(['mapnew(1, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1251: List, Dictionary, Blob or String required for argument 1') 2152 CheckDefAndScriptFailure(['mapnew(1, "1")'], ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1251: List, Dictionary, Blob or String required for argument 1'])
2153 enddef 2153 enddef
2154 2154
2155 def Test_mapset() 2155 def Test_mapset()
2156 CheckDefAndScriptFailure2(['mapset(1, true, {})'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2156 CheckDefAndScriptFailure(['mapset(1, true, {})'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2157 CheckDefAndScriptFailure2(['mapset("a", 2, {})'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 2157 CheckDefAndScriptFailure(['mapset("a", 2, {})'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
2158 CheckDefAndScriptFailure2(['mapset("a", false, [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 2158 CheckDefAndScriptFailure(['mapset("a", false, [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
2159 enddef 2159 enddef
2160 2160
2161 def Test_match() 2161 def Test_match()
2162 CheckDefAndScriptFailure2(['match(0z12, "p")'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1') 2162 CheckDefAndScriptFailure(['match(0z12, "p")'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1'])
2163 CheckDefAndScriptFailure2(['match(["s"], [2])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2') 2163 CheckDefAndScriptFailure(['match(["s"], [2])'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2'])
2164 CheckDefAndScriptFailure2(['match("s", "p", "q")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2164 CheckDefAndScriptFailure(['match("s", "p", "q")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2165 CheckDefAndScriptFailure2(['match("s", "p", 1, "r")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2165 CheckDefAndScriptFailure(['match("s", "p", 1, "r")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2166 assert_equal(2, match('ab12cd', '12')) 2166 assert_equal(2, match('ab12cd', '12'))
2167 assert_equal(-1, match('ab12cd', '34')) 2167 assert_equal(-1, match('ab12cd', '34'))
2168 assert_equal(6, match('ab12cd12ef', '12', 4)) 2168 assert_equal(6, match('ab12cd12ef', '12', 4))
2169 assert_equal(2, match('abcd', '..', 0, 3)) 2169 assert_equal(2, match('abcd', '..', 0, 3))
2170 assert_equal(1, match(['a', 'b', 'c'], 'b')) 2170 assert_equal(1, match(['a', 'b', 'c'], 'b'))
2175 match('abc', '')->assert_equal(0) 2175 match('abc', '')->assert_equal(0)
2176 match('', '')->assert_equal(0) 2176 match('', '')->assert_equal(0)
2177 enddef 2177 enddef
2178 2178
2179 def Test_matchadd() 2179 def Test_matchadd()
2180 CheckDefAndScriptFailure2(['matchadd(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2180 CheckDefAndScriptFailure(['matchadd(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2181 CheckDefAndScriptFailure2(['matchadd("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2181 CheckDefAndScriptFailure(['matchadd("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2182 CheckDefAndScriptFailure2(['matchadd("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2182 CheckDefAndScriptFailure(['matchadd("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2183 CheckDefAndScriptFailure2(['matchadd("a", "b", 1, "d")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2183 CheckDefAndScriptFailure(['matchadd("a", "b", 1, "d")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2184 CheckDefAndScriptFailure2(['matchadd("a", "b", 1, 1, [])'], 'E1013: Argument 5: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 5') 2184 CheckDefAndScriptFailure(['matchadd("a", "b", 1, 1, [])'], ['E1013: Argument 5: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 5'])
2185 matchadd('', 'a')->assert_equal(-1) 2185 matchadd('', 'a')->assert_equal(-1)
2186 matchadd('Search', '')->assert_equal(-1) 2186 matchadd('Search', '')->assert_equal(-1)
2187 enddef 2187 enddef
2188 2188
2189 def Test_matchaddpos() 2189 def Test_matchaddpos()
2190 CheckDefAndScriptFailure2(['matchaddpos(1, [1])'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2190 CheckDefAndScriptFailure(['matchaddpos(1, [1])'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2191 CheckDefAndScriptFailure2(['matchaddpos("a", "b")'], 'E1013: Argument 2: type mismatch, expected list<any> but got string', 'E1211: List required for argument 2') 2191 CheckDefAndScriptFailure(['matchaddpos("a", "b")'], ['E1013: Argument 2: type mismatch, expected list<any> but got string', 'E1211: List required for argument 2'])
2192 CheckDefAndScriptFailure2(['matchaddpos("a", [1], "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2192 CheckDefAndScriptFailure(['matchaddpos("a", [1], "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2193 CheckDefAndScriptFailure2(['matchaddpos("a", [1], 1, "d")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2193 CheckDefAndScriptFailure(['matchaddpos("a", [1], 1, "d")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2194 CheckDefAndScriptFailure2(['matchaddpos("a", [1], 1, 1, [])'], 'E1013: Argument 5: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 5') 2194 CheckDefAndScriptFailure(['matchaddpos("a", [1], 1, 1, [])'], ['E1013: Argument 5: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 5'])
2195 matchaddpos('', [1])->assert_equal(-1) 2195 matchaddpos('', [1])->assert_equal(-1)
2196 enddef 2196 enddef
2197 2197
2198 def Test_matcharg() 2198 def Test_matcharg()
2199 CheckDefAndScriptFailure2(['matcharg("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2199 CheckDefAndScriptFailure(['matcharg("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2200 enddef 2200 enddef
2201 2201
2202 def Test_matchdelete() 2202 def Test_matchdelete()
2203 CheckDefAndScriptFailure2(['matchdelete("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2203 CheckDefAndScriptFailure(['matchdelete("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2204 CheckDefAndScriptFailure2(['matchdelete("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2204 CheckDefAndScriptFailure(['matchdelete("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2205 CheckDefAndScriptFailure2(['matchdelete(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2205 CheckDefAndScriptFailure(['matchdelete(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2206 enddef 2206 enddef
2207 2207
2208 def Test_matchend() 2208 def Test_matchend()
2209 CheckDefAndScriptFailure2(['matchend(0z12, "p")'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1') 2209 CheckDefAndScriptFailure(['matchend(0z12, "p")'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1'])
2210 CheckDefAndScriptFailure2(['matchend(["s"], [2])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2') 2210 CheckDefAndScriptFailure(['matchend(["s"], [2])'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2'])
2211 CheckDefAndScriptFailure2(['matchend("s", "p", "q")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2211 CheckDefAndScriptFailure(['matchend("s", "p", "q")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2212 CheckDefAndScriptFailure2(['matchend("s", "p", 1, "r")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2212 CheckDefAndScriptFailure(['matchend("s", "p", 1, "r")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2213 assert_equal(4, matchend('ab12cd', '12')) 2213 assert_equal(4, matchend('ab12cd', '12'))
2214 assert_equal(-1, matchend('ab12cd', '34')) 2214 assert_equal(-1, matchend('ab12cd', '34'))
2215 assert_equal(8, matchend('ab12cd12ef', '12', 4)) 2215 assert_equal(8, matchend('ab12cd12ef', '12', 4))
2216 assert_equal(4, matchend('abcd', '..', 0, 3)) 2216 assert_equal(4, matchend('abcd', '..', 0, 3))
2217 assert_equal(1, matchend(['a', 'b', 'c'], 'b')) 2217 assert_equal(1, matchend(['a', 'b', 'c'], 'b'))
2222 matchend('abc', '')->assert_equal(0) 2222 matchend('abc', '')->assert_equal(0)
2223 matchend('', '')->assert_equal(0) 2223 matchend('', '')->assert_equal(0)
2224 enddef 2224 enddef
2225 2225
2226 def Test_matchfuzzy() 2226 def Test_matchfuzzy()
2227 CheckDefAndScriptFailure2(['matchfuzzy({}, "p")'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1') 2227 CheckDefAndScriptFailure(['matchfuzzy({}, "p")'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1'])
2228 CheckDefAndScriptFailure2(['matchfuzzy([], 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2228 CheckDefAndScriptFailure(['matchfuzzy([], 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2229 CheckDefAndScriptFailure2(['matchfuzzy([], "a", [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 2229 CheckDefAndScriptFailure(['matchfuzzy([], "a", [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
2230 matchfuzzy(['abc', 'xyz'], '')->assert_equal([]) 2230 matchfuzzy(['abc', 'xyz'], '')->assert_equal([])
2231 enddef 2231 enddef
2232 2232
2233 def Test_matchfuzzypos() 2233 def Test_matchfuzzypos()
2234 CheckDefAndScriptFailure2(['matchfuzzypos({}, "p")'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1') 2234 CheckDefAndScriptFailure(['matchfuzzypos({}, "p")'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1'])
2235 CheckDefAndScriptFailure2(['matchfuzzypos([], 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2235 CheckDefAndScriptFailure(['matchfuzzypos([], 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2236 CheckDefAndScriptFailure2(['matchfuzzypos([], "a", [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 2236 CheckDefAndScriptFailure(['matchfuzzypos([], "a", [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
2237 matchfuzzypos(['abc', 'xyz'], '')->assert_equal([[], [], []]) 2237 matchfuzzypos(['abc', 'xyz'], '')->assert_equal([[], [], []])
2238 enddef 2238 enddef
2239 2239
2240 def Test_matchlist() 2240 def Test_matchlist()
2241 CheckDefAndScriptFailure2(['matchlist(0z12, "p")'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1') 2241 CheckDefAndScriptFailure(['matchlist(0z12, "p")'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1'])
2242 CheckDefAndScriptFailure2(['matchlist(["s"], [2])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2') 2242 CheckDefAndScriptFailure(['matchlist(["s"], [2])'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2'])
2243 CheckDefAndScriptFailure2(['matchlist("s", "p", "q")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2243 CheckDefAndScriptFailure(['matchlist("s", "p", "q")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2244 CheckDefAndScriptFailure2(['matchlist("s", "p", 1, "r")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2244 CheckDefAndScriptFailure(['matchlist("s", "p", 1, "r")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2245 var l: list<string> = ['12', '', '', '', '', '', '', '', '', ''] 2245 var l: list<string> = ['12', '', '', '', '', '', '', '', '', '']
2246 assert_equal(l, matchlist('ab12cd', '12')) 2246 assert_equal(l, matchlist('ab12cd', '12'))
2247 assert_equal([], matchlist('ab12cd', '34')) 2247 assert_equal([], matchlist('ab12cd', '34'))
2248 assert_equal(l, matchlist('ab12cd12ef', '12', 4)) 2248 assert_equal(l, matchlist('ab12cd12ef', '12', 4))
2249 l[0] = 'cd' 2249 l[0] = 'cd'
2257 matchlist('abc', '')->assert_equal(repeat([''], 10)) 2257 matchlist('abc', '')->assert_equal(repeat([''], 10))
2258 matchlist('', '')->assert_equal(repeat([''], 10)) 2258 matchlist('', '')->assert_equal(repeat([''], 10))
2259 enddef 2259 enddef
2260 2260
2261 def Test_matchstr() 2261 def Test_matchstr()
2262 CheckDefAndScriptFailure2(['matchstr(0z12, "p")'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1') 2262 CheckDefAndScriptFailure(['matchstr(0z12, "p")'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1'])
2263 CheckDefAndScriptFailure2(['matchstr(["s"], [2])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2') 2263 CheckDefAndScriptFailure(['matchstr(["s"], [2])'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2'])
2264 CheckDefAndScriptFailure2(['matchstr("s", "p", "q")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2264 CheckDefAndScriptFailure(['matchstr("s", "p", "q")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2265 CheckDefAndScriptFailure2(['matchstr("s", "p", 1, "r")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2265 CheckDefAndScriptFailure(['matchstr("s", "p", 1, "r")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2266 assert_equal('12', matchstr('ab12cd', '12')) 2266 assert_equal('12', matchstr('ab12cd', '12'))
2267 assert_equal('', matchstr('ab12cd', '34')) 2267 assert_equal('', matchstr('ab12cd', '34'))
2268 assert_equal('12', matchstr('ab12cd12ef', '12', 4)) 2268 assert_equal('12', matchstr('ab12cd12ef', '12', 4))
2269 assert_equal('cd', matchstr('abcd', '..', 0, 3)) 2269 assert_equal('cd', matchstr('abcd', '..', 0, 3))
2270 assert_equal('b', matchstr(['a', 'b', 'c'], 'b')) 2270 assert_equal('b', matchstr(['a', 'b', 'c'], 'b'))
2275 matchstr('abc', '')->assert_equal('') 2275 matchstr('abc', '')->assert_equal('')
2276 matchstr('', '')->assert_equal('') 2276 matchstr('', '')->assert_equal('')
2277 enddef 2277 enddef
2278 2278
2279 def Test_matchstrpos() 2279 def Test_matchstrpos()
2280 CheckDefAndScriptFailure2(['matchstrpos(0z12, "p")'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1') 2280 CheckDefAndScriptFailure(['matchstrpos(0z12, "p")'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1222: String or List required for argument 1'])
2281 CheckDefAndScriptFailure2(['matchstrpos(["s"], [2])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2') 2281 CheckDefAndScriptFailure(['matchstrpos(["s"], [2])'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2'])
2282 CheckDefAndScriptFailure2(['matchstrpos("s", "p", "q")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2282 CheckDefAndScriptFailure(['matchstrpos("s", "p", "q")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2283 CheckDefAndScriptFailure2(['matchstrpos("s", "p", 1, "r")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2283 CheckDefAndScriptFailure(['matchstrpos("s", "p", 1, "r")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2284 assert_equal(['12', 2, 4], matchstrpos('ab12cd', '12')) 2284 assert_equal(['12', 2, 4], matchstrpos('ab12cd', '12'))
2285 assert_equal(['', -1, -1], matchstrpos('ab12cd', '34')) 2285 assert_equal(['', -1, -1], matchstrpos('ab12cd', '34'))
2286 assert_equal(['12', 6, 8], matchstrpos('ab12cd12ef', '12', 4)) 2286 assert_equal(['12', 6, 8], matchstrpos('ab12cd12ef', '12', 4))
2287 assert_equal(['cd', 2, 4], matchstrpos('abcd', '..', 0, 3)) 2287 assert_equal(['cd', 2, 4], matchstrpos('abcd', '..', 0, 3))
2288 assert_equal(['b', 1, 0, 1], matchstrpos(['a', 'b', 'c'], 'b')) 2288 assert_equal(['b', 1, 0, 1], matchstrpos(['a', 'b', 'c'], 'b'))
2306 g:flag = false 2306 g:flag = false
2307 var l2: list<number> = g:flag 2307 var l2: list<number> = g:flag
2308 ? [1, max([2, 3])] 2308 ? [1, max([2, 3])]
2309 : [4, 5] 2309 : [4, 5]
2310 assert_equal([4, 5], l2) 2310 assert_equal([4, 5], l2)
2311 CheckDefAndScriptFailure2(['max(5)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1227: List or Dictionary required for argument 1') 2311 CheckDefAndScriptFailure(['max(5)'], ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1227: List or Dictionary required for argument 1'])
2312 enddef 2312 enddef
2313 2313
2314 def Test_menu_info() 2314 def Test_menu_info()
2315 CheckDefAndScriptFailure2(['menu_info(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2315 CheckDefAndScriptFailure(['menu_info(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2316 CheckDefAndScriptFailure2(['menu_info(10, "n")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2316 CheckDefAndScriptFailure(['menu_info(10, "n")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2317 CheckDefAndScriptFailure2(['menu_info("File", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2317 CheckDefAndScriptFailure(['menu_info("File", 10)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2318 assert_equal({}, menu_info('aMenu')) 2318 assert_equal({}, menu_info('aMenu'))
2319 enddef 2319 enddef
2320 2320
2321 def Test_min() 2321 def Test_min()
2322 g:flag = true 2322 g:flag = true
2328 g:flag = false 2328 g:flag = false
2329 var l2: list<number> = g:flag 2329 var l2: list<number> = g:flag
2330 ? [1, min([2, 3])] 2330 ? [1, min([2, 3])]
2331 : [4, 5] 2331 : [4, 5]
2332 assert_equal([4, 5], l2) 2332 assert_equal([4, 5], l2)
2333 CheckDefAndScriptFailure2(['min(5)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1227: List or Dictionary required for argument 1') 2333 CheckDefAndScriptFailure(['min(5)'], ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1227: List or Dictionary required for argument 1'])
2334 enddef 2334 enddef
2335 2335
2336 def Test_mkdir() 2336 def Test_mkdir()
2337 CheckDefAndScriptFailure2(['mkdir(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 2337 CheckDefAndScriptFailure(['mkdir(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
2338 CheckDefAndScriptFailure2(['mkdir("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 2') 2338 CheckDefAndScriptFailure(['mkdir("a", {})'], ['E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 2'])
2339 CheckDefAndScriptFailure2(['mkdir("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2339 CheckDefAndScriptFailure(['mkdir("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2340 CheckDefExecAndScriptFailure(['mkdir("")'], 'E1175: Non-empty string required for argument 1') 2340 CheckDefExecAndScriptFailure(['mkdir("")'], 'E1175: Non-empty string required for argument 1')
2341 delete('a', 'rf') 2341 delete('a', 'rf')
2342 enddef 2342 enddef
2343 2343
2344 def Test_mode() 2344 def Test_mode()
2345 CheckDefAndScriptFailure2(['mode("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1') 2345 CheckDefAndScriptFailure(['mode("1")'], ['E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1'])
2346 CheckDefAndScriptFailure2(['mode(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1') 2346 CheckDefAndScriptFailure(['mode(2)'], ['E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1'])
2347 enddef 2347 enddef
2348 2348
2349 def Test_mzeval() 2349 def Test_mzeval()
2350 if !has('mzscheme') 2350 if !has('mzscheme')
2351 CheckFeature mzscheme 2351 CheckFeature mzscheme
2352 endif 2352 endif
2353 CheckDefAndScriptFailure2(['mzeval(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 2353 CheckDefAndScriptFailure(['mzeval(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
2354 enddef 2354 enddef
2355 2355
2356 def Test_nextnonblank() 2356 def Test_nextnonblank()
2357 CheckDefAndScriptFailure2(['nextnonblank(null)'], 'E1013: Argument 1: type mismatch, expected string but got special', 'E1220: String or Number required for argument 1') 2357 CheckDefAndScriptFailure(['nextnonblank(null)'], ['E1013: Argument 1: type mismatch, expected string but got special', 'E1220: String or Number required for argument 1'])
2358 CheckDefExecAndScriptFailure(['nextnonblank("")'], 'E1209: Invalid value for a line number') 2358 CheckDefExecAndScriptFailure(['nextnonblank("")'], 'E1209: Invalid value for a line number')
2359 assert_equal(0, nextnonblank(1)) 2359 assert_equal(0, nextnonblank(1))
2360 enddef 2360 enddef
2361 2361
2362 def Test_nr2char() 2362 def Test_nr2char()
2363 nr2char(97, true)->assert_equal('a') 2363 nr2char(97, true)->assert_equal('a')
2364 CheckDefAndScriptFailure2(['nr2char("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2364 CheckDefAndScriptFailure(['nr2char("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2365 CheckDefAndScriptFailure2(['nr2char(1, "a")'], 'E1013: Argument 2: type mismatch, expected bool but got string', 'E1212: Bool required for argument 2') 2365 CheckDefAndScriptFailure(['nr2char(1, "a")'], ['E1013: Argument 2: type mismatch, expected bool but got string', 'E1212: Bool required for argument 2'])
2366 enddef 2366 enddef
2367 2367
2368 def Test_or() 2368 def Test_or()
2369 CheckDefAndScriptFailure2(['or("x", 0x2)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2369 CheckDefAndScriptFailure(['or("x", 0x2)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2370 CheckDefAndScriptFailure2(['or(0x1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2370 CheckDefAndScriptFailure(['or(0x1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2371 enddef 2371 enddef
2372 2372
2373 def Test_pathshorten() 2373 def Test_pathshorten()
2374 CheckDefAndScriptFailure2(['pathshorten(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2374 CheckDefAndScriptFailure(['pathshorten(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2375 CheckDefAndScriptFailure2(['pathshorten("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2375 CheckDefAndScriptFailure(['pathshorten("a", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2376 pathshorten('')->assert_equal('') 2376 pathshorten('')->assert_equal('')
2377 enddef 2377 enddef
2378 2378
2379 def Test_perleval() 2379 def Test_perleval()
2380 if !has('perl') 2380 if !has('perl')
2381 CheckFeature perl 2381 CheckFeature perl
2382 endif 2382 endif
2383 CheckDefAndScriptFailure2(['perleval(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 2383 CheckDefAndScriptFailure(['perleval(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
2384 enddef 2384 enddef
2385 2385
2386 def Test_popup_atcursor() 2386 def Test_popup_atcursor()
2387 CheckDefAndScriptFailure2(['popup_atcursor({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1') 2387 CheckDefAndScriptFailure(['popup_atcursor({"a": 10}, {})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1'])
2388 CheckDefAndScriptFailure2(['popup_atcursor("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') 2388 CheckDefAndScriptFailure(['popup_atcursor("a", [1, 2])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2'])
2389 2389
2390 # Pass variable of type 'any' to popup_atcursor() 2390 # Pass variable of type 'any' to popup_atcursor()
2391 var what: any = 'Hello' 2391 var what: any = 'Hello'
2392 var popupID = what->popup_atcursor({moved: 'any'}) 2392 var popupID = what->popup_atcursor({moved: 'any'})
2393 assert_equal(0, popupID->popup_getoptions().tabpage) 2393 assert_equal(0, popupID->popup_getoptions().tabpage)
2394 popupID->popup_close() 2394 popupID->popup_close()
2395 enddef 2395 enddef
2396 2396
2397 def Test_popup_beval() 2397 def Test_popup_beval()
2398 CheckDefAndScriptFailure2(['popup_beval({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1') 2398 CheckDefAndScriptFailure(['popup_beval({"a": 10}, {})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1'])
2399 CheckDefAndScriptFailure2(['popup_beval("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') 2399 CheckDefAndScriptFailure(['popup_beval("a", [1, 2])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2'])
2400 enddef 2400 enddef
2401 2401
2402 def Test_popup_clear() 2402 def Test_popup_clear()
2403 CheckDefAndScriptFailure2(['popup_clear(["a"])'], 'E1013: Argument 1: type mismatch, expected bool but got list<string>', 'E1212: Bool required for argument 1') 2403 CheckDefAndScriptFailure(['popup_clear(["a"])'], ['E1013: Argument 1: type mismatch, expected bool but got list<string>', 'E1212: Bool required for argument 1'])
2404 CheckDefAndScriptFailure2(['popup_clear(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1') 2404 CheckDefAndScriptFailure(['popup_clear(2)'], ['E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1'])
2405 enddef 2405 enddef
2406 2406
2407 def Test_popup_close() 2407 def Test_popup_close()
2408 CheckDefAndScriptFailure2(['popup_close("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2408 CheckDefAndScriptFailure(['popup_close("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2409 enddef 2409 enddef
2410 2410
2411 def Test_popup_create() 2411 def Test_popup_create()
2412 # Pass variable of type 'any' to popup_create() 2412 # Pass variable of type 'any' to popup_create()
2413 var what: any = 'Hello' 2413 var what: any = 'Hello'
2415 assert_equal(0, popupID->popup_getoptions().tabpage) 2415 assert_equal(0, popupID->popup_getoptions().tabpage)
2416 popupID->popup_close() 2416 popupID->popup_close()
2417 enddef 2417 enddef
2418 2418
2419 def Test_popup_dialog() 2419 def Test_popup_dialog()
2420 CheckDefAndScriptFailure2(['popup_dialog({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1') 2420 CheckDefAndScriptFailure(['popup_dialog({"a": 10}, {})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1'])
2421 CheckDefAndScriptFailure2(['popup_dialog("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') 2421 CheckDefAndScriptFailure(['popup_dialog("a", [1, 2])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2'])
2422 enddef 2422 enddef
2423 2423
2424 def Test_popup_filter_menu() 2424 def Test_popup_filter_menu()
2425 CheckDefAndScriptFailure2(['popup_filter_menu("x", "")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2425 CheckDefAndScriptFailure(['popup_filter_menu("x", "")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2426 CheckDefAndScriptFailure2(['popup_filter_menu(1, 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2426 CheckDefAndScriptFailure(['popup_filter_menu(1, 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2427 var id: number = popup_menu(["one", "two", "three"], {}) 2427 var id: number = popup_menu(["one", "two", "three"], {})
2428 popup_filter_menu(id, '') 2428 popup_filter_menu(id, '')
2429 popup_close(id) 2429 popup_close(id)
2430 enddef 2430 enddef
2431 2431
2432 def Test_popup_filter_yesno() 2432 def Test_popup_filter_yesno()
2433 CheckDefAndScriptFailure2(['popup_filter_yesno("x", "")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2433 CheckDefAndScriptFailure(['popup_filter_yesno("x", "")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2434 CheckDefAndScriptFailure2(['popup_filter_yesno(1, 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2434 CheckDefAndScriptFailure(['popup_filter_yesno(1, 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2435 enddef 2435 enddef
2436 2436
2437 def Test_popup_getoptions() 2437 def Test_popup_getoptions()
2438 CheckDefAndScriptFailure2(['popup_getoptions("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2438 CheckDefAndScriptFailure(['popup_getoptions("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2439 CheckDefAndScriptFailure2(['popup_getoptions(true)'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1') 2439 CheckDefAndScriptFailure(['popup_getoptions(true)'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
2440 enddef 2440 enddef
2441 2441
2442 def Test_popup_getpos() 2442 def Test_popup_getpos()
2443 CheckDefAndScriptFailure2(['popup_getpos("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2443 CheckDefAndScriptFailure(['popup_getpos("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2444 CheckDefAndScriptFailure2(['popup_getpos(true)'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1') 2444 CheckDefAndScriptFailure(['popup_getpos(true)'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
2445 enddef 2445 enddef
2446 2446
2447 def Test_popup_hide() 2447 def Test_popup_hide()
2448 CheckDefAndScriptFailure2(['popup_hide("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2448 CheckDefAndScriptFailure(['popup_hide("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2449 CheckDefAndScriptFailure2(['popup_hide(true)'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1') 2449 CheckDefAndScriptFailure(['popup_hide(true)'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
2450 enddef 2450 enddef
2451 2451
2452 def Test_popup_locate() 2452 def Test_popup_locate()
2453 CheckDefAndScriptFailure2(['popup_locate("a", 20)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2453 CheckDefAndScriptFailure(['popup_locate("a", 20)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2454 CheckDefAndScriptFailure2(['popup_locate(10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2454 CheckDefAndScriptFailure(['popup_locate(10, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2455 enddef 2455 enddef
2456 2456
2457 def Test_popup_menu() 2457 def Test_popup_menu()
2458 CheckDefAndScriptFailure2(['popup_menu({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1') 2458 CheckDefAndScriptFailure(['popup_menu({"a": 10}, {})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1'])
2459 CheckDefAndScriptFailure2(['popup_menu("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') 2459 CheckDefAndScriptFailure(['popup_menu("a", [1, 2])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2'])
2460 enddef 2460 enddef
2461 2461
2462 def Test_popup_move() 2462 def Test_popup_move()
2463 CheckDefAndScriptFailure2(['popup_move("x", {})'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2463 CheckDefAndScriptFailure(['popup_move("x", {})'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2464 CheckDefAndScriptFailure2(['popup_move(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 2464 CheckDefAndScriptFailure(['popup_move(1, [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
2465 enddef 2465 enddef
2466 2466
2467 def Test_popup_notification() 2467 def Test_popup_notification()
2468 CheckDefAndScriptFailure2(['popup_notification({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1') 2468 CheckDefAndScriptFailure(['popup_notification({"a": 10}, {})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 1'])
2469 CheckDefAndScriptFailure2(['popup_notification("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') 2469 CheckDefAndScriptFailure(['popup_notification("a", [1, 2])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2'])
2470 enddef 2470 enddef
2471 2471
2472 def Test_popup_setoptions() 2472 def Test_popup_setoptions()
2473 CheckDefAndScriptFailure2(['popup_setoptions("x", {})'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2473 CheckDefAndScriptFailure(['popup_setoptions("x", {})'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2474 CheckDefAndScriptFailure2(['popup_setoptions(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 2474 CheckDefAndScriptFailure(['popup_setoptions(1, [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
2475 enddef 2475 enddef
2476 2476
2477 def Test_popup_settext() 2477 def Test_popup_settext()
2478 CheckDefAndScriptFailure2(['popup_settext("x", [])'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2478 CheckDefAndScriptFailure(['popup_settext("x", [])'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2479 CheckDefAndScriptFailure2(['popup_settext(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1222: String or List required for argument 2') 2479 CheckDefAndScriptFailure(['popup_settext(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1222: String or List required for argument 2'])
2480 enddef 2480 enddef
2481 2481
2482 def Test_popup_show() 2482 def Test_popup_show()
2483 CheckDefAndScriptFailure2(['popup_show("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2483 CheckDefAndScriptFailure(['popup_show("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2484 CheckDefAndScriptFailure2(['popup_show(true)'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1') 2484 CheckDefAndScriptFailure(['popup_show(true)'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
2485 enddef 2485 enddef
2486 2486
2487 def Test_prevnonblank() 2487 def Test_prevnonblank()
2488 CheckDefAndScriptFailure2(['prevnonblank(null)'], 'E1013: Argument 1: type mismatch, expected string but got special', 'E1220: String or Number required for argument 1') 2488 CheckDefAndScriptFailure(['prevnonblank(null)'], ['E1013: Argument 1: type mismatch, expected string but got special', 'E1220: String or Number required for argument 1'])
2489 CheckDefExecAndScriptFailure(['prevnonblank("")'], 'E1209: Invalid value for a line number') 2489 CheckDefExecAndScriptFailure(['prevnonblank("")'], 'E1209: Invalid value for a line number')
2490 assert_equal(0, prevnonblank(1)) 2490 assert_equal(0, prevnonblank(1))
2491 enddef 2491 enddef
2492 2492
2493 def Test_printf() 2493 def Test_printf()
2494 CheckDefAndScriptFailure2(['printf([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 2494 CheckDefAndScriptFailure(['printf([1])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
2495 printf(0x10)->assert_equal('16') 2495 printf(0x10)->assert_equal('16')
2496 assert_equal(" abc", "abc"->printf("%4s")) 2496 assert_equal(" abc", "abc"->printf("%4s"))
2497 enddef 2497 enddef
2498 2498
2499 def Test_prompt_getprompt() 2499 def Test_prompt_getprompt()
2500 if !has('channel') 2500 if !has('channel')
2501 CheckFeature channel 2501 CheckFeature channel
2502 else 2502 else
2503 CheckDefAndScriptFailure2(['prompt_getprompt([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 2503 CheckDefAndScriptFailure(['prompt_getprompt([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
2504 assert_equal('', prompt_getprompt('NonExistingBuf')) 2504 assert_equal('', prompt_getprompt('NonExistingBuf'))
2505 endif 2505 endif
2506 enddef 2506 enddef
2507 2507
2508 def Test_prompt_setcallback() 2508 def Test_prompt_setcallback()
2509 if !has('channel') 2509 if !has('channel')
2510 CheckFeature channel 2510 CheckFeature channel
2511 else 2511 else
2512 CheckDefAndScriptFailure2(['prompt_setcallback(true, "1")'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 2512 CheckDefAndScriptFailure(['prompt_setcallback(true, "1")'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
2513 endif 2513 endif
2514 enddef 2514 enddef
2515 2515
2516 def Test_prompt_setinterrupt() 2516 def Test_prompt_setinterrupt()
2517 if !has('channel') 2517 if !has('channel')
2518 CheckFeature channel 2518 CheckFeature channel
2519 else 2519 else
2520 CheckDefAndScriptFailure2(['prompt_setinterrupt(true, "1")'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 2520 CheckDefAndScriptFailure(['prompt_setinterrupt(true, "1")'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
2521 endif 2521 endif
2522 enddef 2522 enddef
2523 2523
2524 def Test_prompt_setprompt() 2524 def Test_prompt_setprompt()
2525 if !has('channel') 2525 if !has('channel')
2526 CheckFeature channel 2526 CheckFeature channel
2527 else 2527 else
2528 CheckDefAndScriptFailure2(['prompt_setprompt([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 2528 CheckDefAndScriptFailure(['prompt_setprompt([], "p")'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
2529 CheckDefAndScriptFailure2(['prompt_setprompt(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') 2529 CheckDefAndScriptFailure(['prompt_setprompt(1, [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2'])
2530 endif 2530 endif
2531 enddef 2531 enddef
2532 2532
2533 def Test_prop_add() 2533 def Test_prop_add()
2534 CheckDefAndScriptFailure2(['prop_add("a", 2, {})'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2534 CheckDefAndScriptFailure(['prop_add("a", 2, {})'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2535 CheckDefAndScriptFailure2(['prop_add(1, "b", {})'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2535 CheckDefAndScriptFailure(['prop_add(1, "b", {})'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2536 CheckDefAndScriptFailure2(['prop_add(1, 2, [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 2536 CheckDefAndScriptFailure(['prop_add(1, 2, [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
2537 enddef 2537 enddef
2538 2538
2539 def Test_prop_add_list() 2539 def Test_prop_add_list()
2540 CheckDefAndScriptFailure2(['prop_add_list([], [])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1') 2540 CheckDefAndScriptFailure(['prop_add_list([], [])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1'])
2541 CheckDefAndScriptFailure2(['prop_add_list({}, {})'], 'E1013: Argument 2: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 2') 2541 CheckDefAndScriptFailure(['prop_add_list({}, {})'], ['E1013: Argument 2: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 2'])
2542 enddef 2542 enddef
2543 2543
2544 def Test_prop_clear() 2544 def Test_prop_clear()
2545 CheckDefAndScriptFailure2(['prop_clear("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2545 CheckDefAndScriptFailure(['prop_clear("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2546 CheckDefAndScriptFailure2(['prop_clear(1, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2546 CheckDefAndScriptFailure(['prop_clear(1, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2547 CheckDefAndScriptFailure2(['prop_clear(1, 2, [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 2547 CheckDefAndScriptFailure(['prop_clear(1, 2, [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
2548 enddef 2548 enddef
2549 2549
2550 def Test_prop_find() 2550 def Test_prop_find()
2551 CheckDefAndScriptFailure2(['prop_find([1, 2])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1') 2551 CheckDefAndScriptFailure(['prop_find([1, 2])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1'])
2552 CheckDefAndScriptFailure2(['prop_find([1, 2], "k")'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1') 2552 CheckDefAndScriptFailure(['prop_find([1, 2], "k")'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1'])
2553 CheckDefAndScriptFailure2(['prop_find({"a": 10}, ["a"])'], 'E1013: Argument 2: type mismatch, expected string but got list<string>', 'E1174: String required for argument 2') 2553 CheckDefAndScriptFailure(['prop_find({"a": 10}, ["a"])'], ['E1013: Argument 2: type mismatch, expected string but got list<string>', 'E1174: String required for argument 2'])
2554 assert_fails("prop_find({}, '')", 'E474:') 2554 assert_fails("prop_find({}, '')", 'E474:')
2555 enddef 2555 enddef
2556 2556
2557 def Test_prop_list() 2557 def Test_prop_list()
2558 CheckDefAndScriptFailure2(['prop_list("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2558 CheckDefAndScriptFailure(['prop_list("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2559 CheckDefAndScriptFailure2(['prop_list(1, [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 2559 CheckDefAndScriptFailure(['prop_list(1, [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
2560 enddef 2560 enddef
2561 2561
2562 def Test_prop_remove() 2562 def Test_prop_remove()
2563 CheckDefAndScriptFailure2(['prop_remove([])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1') 2563 CheckDefAndScriptFailure(['prop_remove([])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1'])
2564 CheckDefAndScriptFailure2(['prop_remove({}, "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2564 CheckDefAndScriptFailure(['prop_remove({}, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2565 CheckDefAndScriptFailure2(['prop_remove({}, 1, "b")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2565 CheckDefAndScriptFailure(['prop_remove({}, 1, "b")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2566 enddef 2566 enddef
2567 2567
2568 def Test_prop_type_add() 2568 def Test_prop_type_add()
2569 CheckDefAndScriptFailure2(['prop_type_add({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 2569 CheckDefAndScriptFailure(['prop_type_add({"a": 10}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
2570 CheckDefAndScriptFailure2(['prop_type_add("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2') 2570 CheckDefAndScriptFailure(['prop_type_add("a", "b")'], ['E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2'])
2571 assert_fails("prop_type_add('', {highlight: 'Search'})", 'E474:') 2571 assert_fails("prop_type_add('', {highlight: 'Search'})", 'E474:')
2572 enddef 2572 enddef
2573 2573
2574 def Test_prop_type_change() 2574 def Test_prop_type_change()
2575 CheckDefAndScriptFailure2(['prop_type_change({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 2575 CheckDefAndScriptFailure(['prop_type_change({"a": 10}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
2576 CheckDefAndScriptFailure2(['prop_type_change("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2') 2576 CheckDefAndScriptFailure(['prop_type_change("a", "b")'], ['E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2'])
2577 assert_fails("prop_type_change('', {highlight: 'Search'})", 'E474:') 2577 assert_fails("prop_type_change('', {highlight: 'Search'})", 'E474:')
2578 enddef 2578 enddef
2579 2579
2580 def Test_prop_type_delete() 2580 def Test_prop_type_delete()
2581 CheckDefAndScriptFailure2(['prop_type_delete({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 2581 CheckDefAndScriptFailure(['prop_type_delete({"a": 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
2582 CheckDefAndScriptFailure2(['prop_type_delete({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 2582 CheckDefAndScriptFailure(['prop_type_delete({"a": 10}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
2583 CheckDefAndScriptFailure2(['prop_type_delete("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2') 2583 CheckDefAndScriptFailure(['prop_type_delete("a", "b")'], ['E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2'])
2584 assert_fails("prop_type_delete('')", 'E474:') 2584 assert_fails("prop_type_delete('')", 'E474:')
2585 enddef 2585 enddef
2586 2586
2587 def Test_prop_type_get() 2587 def Test_prop_type_get()
2588 CheckDefAndScriptFailure2(['prop_type_get({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 2588 CheckDefAndScriptFailure(['prop_type_get({"a": 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
2589 CheckDefAndScriptFailure2(['prop_type_get({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 2589 CheckDefAndScriptFailure(['prop_type_get({"a": 10}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
2590 CheckDefAndScriptFailure2(['prop_type_get("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2') 2590 CheckDefAndScriptFailure(['prop_type_get("a", "b")'], ['E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2'])
2591 assert_fails("prop_type_get('')", 'E474:') 2591 assert_fails("prop_type_get('')", 'E474:')
2592 enddef 2592 enddef
2593 2593
2594 def Test_prop_type_list() 2594 def Test_prop_type_list()
2595 CheckDefAndScriptFailure2(['prop_type_list(["a"])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 1') 2595 CheckDefAndScriptFailure(['prop_type_list(["a"])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 1'])
2596 CheckDefAndScriptFailure2(['prop_type_list(2)'], 'E1013: Argument 1: type mismatch, expected dict<any> but got number', 'E1206: Dictionary required for argument 1') 2596 CheckDefAndScriptFailure(['prop_type_list(2)'], ['E1013: Argument 1: type mismatch, expected dict<any> but got number', 'E1206: Dictionary required for argument 1'])
2597 enddef 2597 enddef
2598 2598
2599 def Test_py3eval() 2599 def Test_py3eval()
2600 if !has('python3') 2600 if !has('python3')
2601 CheckFeature python3 2601 CheckFeature python3
2602 endif 2602 endif
2603 CheckDefAndScriptFailure2(['py3eval([2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') 2603 CheckDefAndScriptFailure(['py3eval([2])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
2604 enddef 2604 enddef
2605 2605
2606 def Test_pyeval() 2606 def Test_pyeval()
2607 if !has('python') 2607 if !has('python')
2608 CheckFeature python 2608 CheckFeature python
2609 endif 2609 endif
2610 CheckDefAndScriptFailure2(['pyeval([2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') 2610 CheckDefAndScriptFailure(['pyeval([2])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
2611 enddef 2611 enddef
2612 2612
2613 def Test_pyxeval() 2613 def Test_pyxeval()
2614 if !has('python') && !has('python3') 2614 if !has('python') && !has('python3')
2615 CheckFeature python 2615 CheckFeature python
2616 endif 2616 endif
2617 CheckDefAndScriptFailure2(['pyxeval([2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') 2617 CheckDefAndScriptFailure(['pyxeval([2])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
2618 enddef 2618 enddef
2619 2619
2620 def Test_rand() 2620 def Test_rand()
2621 CheckDefAndScriptFailure2(['rand(10)'], 'E1013: Argument 1: type mismatch, expected list<number> but got number', 'E1211: List required for argument 1') 2621 CheckDefAndScriptFailure(['rand(10)'], ['E1013: Argument 1: type mismatch, expected list<number> but got number', 'E1211: List required for argument 1'])
2622 CheckDefFailure(['rand(["a"])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<string>') 2622 CheckDefFailure(['rand(["a"])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<string>')
2623 assert_true(rand() >= 0) 2623 assert_true(rand() >= 0)
2624 assert_true(rand(srand()) >= 0) 2624 assert_true(rand(srand()) >= 0)
2625 enddef 2625 enddef
2626 2626
2627 def Test_range() 2627 def Test_range()
2628 CheckDefAndScriptFailure2(['range("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2628 CheckDefAndScriptFailure(['range("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2629 CheckDefAndScriptFailure2(['range(10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2629 CheckDefAndScriptFailure(['range(10, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2630 CheckDefAndScriptFailure2(['range(10, 20, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2630 CheckDefAndScriptFailure(['range(10, 20, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2631 enddef 2631 enddef
2632 2632
2633 def Test_readdir() 2633 def Test_readdir()
2634 eval expand('sautest')->readdir((e) => e[0] !=# '.') 2634 eval expand('sautest')->readdir((e) => e[0] !=# '.')
2635 eval expand('sautest')->readdirex((e) => e.name[0] !=# '.') 2635 eval expand('sautest')->readdirex((e) => e.name[0] !=# '.')
2636 CheckDefAndScriptFailure2(['readdir(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 2636 CheckDefAndScriptFailure(['readdir(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
2637 CheckDefAndScriptFailure2(['readdir("a", "1", [3])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 2637 CheckDefAndScriptFailure(['readdir("a", "1", [3])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
2638 if has('unix') 2638 if has('unix')
2639 # only fails on Unix-like systems 2639 # only fails on Unix-like systems
2640 assert_fails('readdir("")', 'E484: Can''t open file') 2640 assert_fails('readdir("")', 'E484: Can''t open file')
2641 endif 2641 endif
2642 enddef 2642 enddef
2643 2643
2644 def Test_readdirex() 2644 def Test_readdirex()
2645 CheckDefAndScriptFailure2(['readdirex(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 2645 CheckDefAndScriptFailure(['readdirex(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
2646 CheckDefAndScriptFailure2(['readdirex("a", "1", [3])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 2646 CheckDefAndScriptFailure(['readdirex("a", "1", [3])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
2647 if has('unix') 2647 if has('unix')
2648 # only fails on Unix-like systems 2648 # only fails on Unix-like systems
2649 assert_fails('readdirex("")', 'E484: Can''t open file') 2649 assert_fails('readdirex("")', 'E484: Can''t open file')
2650 endif 2650 endif
2651 enddef 2651 enddef
2674 var read: dict<string> = readfile('Xreadfile') 2674 var read: dict<string> = readfile('Xreadfile')
2675 END 2675 END
2676 CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected dict<string> but got list<string>', 1) 2676 CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected dict<string> but got list<string>', 1)
2677 delete('Xreadfile') 2677 delete('Xreadfile')
2678 2678
2679 CheckDefAndScriptFailure2(['readfile("a", 0z10)'], 'E1013: Argument 2: type mismatch, expected string but got blob', 'E1174: String required for argument 2') 2679 CheckDefAndScriptFailure(['readfile("a", 0z10)'], ['E1013: Argument 2: type mismatch, expected string but got blob', 'E1174: String required for argument 2'])
2680 CheckDefAndScriptFailure2(['readfile("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2680 CheckDefAndScriptFailure(['readfile("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2681 CheckDefExecAndScriptFailure(['readfile("")'], 'E1175: Non-empty string required for argument 1') 2681 CheckDefExecAndScriptFailure(['readfile("")'], 'E1175: Non-empty string required for argument 1')
2682 enddef 2682 enddef
2683 2683
2684 def Test_reduce() 2684 def Test_reduce()
2685 CheckDefAndScriptFailure2(['reduce({a: 10}, "1")'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1252: String, List or Blob required for argument 1') 2685 CheckDefAndScriptFailure(['reduce({a: 10}, "1")'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1252: String, List or Blob required for argument 1'])
2686 assert_equal(6, [1, 2, 3]->reduce((r, c) => r + c, 0)) 2686 assert_equal(6, [1, 2, 3]->reduce((r, c) => r + c, 0))
2687 assert_equal(11, 0z0506->reduce((r, c) => r + c, 0)) 2687 assert_equal(11, 0z0506->reduce((r, c) => r + c, 0))
2688 enddef 2688 enddef
2689 2689
2690 def Test_reltime() 2690 def Test_reltime()
2691 CheckFeature reltime 2691 CheckFeature reltime
2692 2692
2693 CheckDefExecAndScriptFailure(['[]->reltime()'], 'E474:') 2693 CheckDefExecAndScriptFailure(['[]->reltime()'], 'E474:')
2694 CheckDefExecAndScriptFailure(['[]->reltime([])'], 'E474:') 2694 CheckDefExecAndScriptFailure(['[]->reltime([])'], 'E474:')
2695 2695
2696 CheckDefAndScriptFailure2(['reltime("x")'], 'E1013: Argument 1: type mismatch, expected list<number> but got string', 'E1211: List required for argument 1') 2696 CheckDefAndScriptFailure(['reltime("x")'], ['E1013: Argument 1: type mismatch, expected list<number> but got string', 'E1211: List required for argument 1'])
2697 CheckDefFailure(['reltime(["x", "y"])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<string>') 2697 CheckDefFailure(['reltime(["x", "y"])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<string>')
2698 CheckDefAndScriptFailure2(['reltime([1, 2], 10)'], 'E1013: Argument 2: type mismatch, expected list<number> but got number', 'E1211: List required for argument 2') 2698 CheckDefAndScriptFailure(['reltime([1, 2], 10)'], ['E1013: Argument 2: type mismatch, expected list<number> but got number', 'E1211: List required for argument 2'])
2699 CheckDefFailure(['reltime([1, 2], ["a", "b"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>') 2699 CheckDefFailure(['reltime([1, 2], ["a", "b"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>')
2700 var start: list<any> = reltime() 2700 var start: list<any> = reltime()
2701 assert_true(type(reltime(start)) == v:t_list) 2701 assert_true(type(reltime(start)) == v:t_list)
2702 var end: list<any> = reltime() 2702 var end: list<any> = reltime()
2703 assert_true(type(reltime(start, end)) == v:t_list) 2703 assert_true(type(reltime(start, end)) == v:t_list)
2706 def Test_reltimefloat() 2706 def Test_reltimefloat()
2707 CheckFeature reltime 2707 CheckFeature reltime
2708 2708
2709 CheckDefExecAndScriptFailure(['[]->reltimefloat()'], 'E474:') 2709 CheckDefExecAndScriptFailure(['[]->reltimefloat()'], 'E474:')
2710 2710
2711 CheckDefAndScriptFailure2(['reltimefloat("x")'], 'E1013: Argument 1: type mismatch, expected list<number> but got string', 'E1211: List required for argument 1') 2711 CheckDefAndScriptFailure(['reltimefloat("x")'], ['E1013: Argument 1: type mismatch, expected list<number> but got string', 'E1211: List required for argument 1'])
2712 CheckDefFailure(['reltimefloat([1.1])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<float>') 2712 CheckDefFailure(['reltimefloat([1.1])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<float>')
2713 assert_true(type(reltimefloat(reltime())) == v:t_float) 2713 assert_true(type(reltimefloat(reltime())) == v:t_float)
2714 enddef 2714 enddef
2715 2715
2716 def Test_reltimestr() 2716 def Test_reltimestr()
2717 CheckFeature reltime 2717 CheckFeature reltime
2718 2718
2719 CheckDefExecAndScriptFailure(['[]->reltimestr()'], 'E474:') 2719 CheckDefExecAndScriptFailure(['[]->reltimestr()'], 'E474:')
2720 2720
2721 CheckDefAndScriptFailure2(['reltimestr(true)'], 'E1013: Argument 1: type mismatch, expected list<number> but got bool', 'E1211: List required for argument 1') 2721 CheckDefAndScriptFailure(['reltimestr(true)'], ['E1013: Argument 1: type mismatch, expected list<number> but got bool', 'E1211: List required for argument 1'])
2722 CheckDefFailure(['reltimestr([true])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<bool>') 2722 CheckDefFailure(['reltimestr([true])'], 'E1013: Argument 1: type mismatch, expected list<number> but got list<bool>')
2723 assert_true(type(reltimestr(reltime())) == v:t_string) 2723 assert_true(type(reltimestr(reltime())) == v:t_string)
2724 enddef 2724 enddef
2725 2725
2726 def Test_remote_expr() 2726 def Test_remote_expr()
2727 CheckFeature clientserver 2727 CheckFeature clientserver
2728 CheckEnv DISPLAY 2728 CheckEnv DISPLAY
2729 CheckDefAndScriptFailure2(['remote_expr(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2729 CheckDefAndScriptFailure(['remote_expr(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2730 CheckDefAndScriptFailure2(['remote_expr("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2730 CheckDefAndScriptFailure(['remote_expr("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2731 CheckDefAndScriptFailure2(['remote_expr("a", "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 2731 CheckDefAndScriptFailure(['remote_expr("a", "b", 3)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
2732 CheckDefAndScriptFailure2(['remote_expr("a", "b", "c", "d")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2732 CheckDefAndScriptFailure(['remote_expr("a", "b", "c", "d")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2733 CheckDefExecAndScriptFailure(['remote_expr("", "")'], 'E241: Unable to send to ') 2733 CheckDefExecAndScriptFailure(['remote_expr("", "")'], 'E241: Unable to send to ')
2734 enddef 2734 enddef
2735 2735
2736 def Test_remote_foreground() 2736 def Test_remote_foreground()
2737 CheckFeature clientserver 2737 CheckFeature clientserver
2738 # remote_foreground() doesn't fail on MS-Windows 2738 # remote_foreground() doesn't fail on MS-Windows
2739 CheckNotMSWindows 2739 CheckNotMSWindows
2740 CheckEnv DISPLAY 2740 CheckEnv DISPLAY
2741 2741
2742 CheckDefAndScriptFailure2(['remote_foreground(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2742 CheckDefAndScriptFailure(['remote_foreground(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2743 assert_fails('remote_foreground("NonExistingServer")', 'E241:') 2743 assert_fails('remote_foreground("NonExistingServer")', 'E241:')
2744 assert_fails('remote_foreground("")', 'E241:') 2744 assert_fails('remote_foreground("")', 'E241:')
2745 enddef 2745 enddef
2746 2746
2747 def Test_remote_peek() 2747 def Test_remote_peek()
2748 CheckFeature clientserver 2748 CheckFeature clientserver
2749 CheckEnv DISPLAY 2749 CheckEnv DISPLAY
2750 CheckDefAndScriptFailure2(['remote_peek(0z10)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1') 2750 CheckDefAndScriptFailure(['remote_peek(0z10)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1'])
2751 CheckDefAndScriptFailure2(['remote_peek("a5b6c7", [1])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2') 2751 CheckDefAndScriptFailure(['remote_peek("a5b6c7", [1])'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2'])
2752 CheckDefExecAndScriptFailure(['remote_peek("")'], 'E573: Invalid server id used') 2752 CheckDefExecAndScriptFailure(['remote_peek("")'], 'E573: Invalid server id used')
2753 enddef 2753 enddef
2754 2754
2755 def Test_remote_read() 2755 def Test_remote_read()
2756 CheckFeature clientserver 2756 CheckFeature clientserver
2757 CheckEnv DISPLAY 2757 CheckEnv DISPLAY
2758 CheckDefAndScriptFailure2(['remote_read(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2758 CheckDefAndScriptFailure(['remote_read(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2759 CheckDefAndScriptFailure2(['remote_read("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2759 CheckDefAndScriptFailure(['remote_read("a", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2760 CheckDefExecAndScriptFailure(['remote_read("")'], 'E573: Invalid server id used') 2760 CheckDefExecAndScriptFailure(['remote_read("")'], 'E573: Invalid server id used')
2761 enddef 2761 enddef
2762 2762
2763 def Test_remote_send() 2763 def Test_remote_send()
2764 CheckFeature clientserver 2764 CheckFeature clientserver
2765 CheckEnv DISPLAY 2765 CheckEnv DISPLAY
2766 CheckDefAndScriptFailure2(['remote_send(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2766 CheckDefAndScriptFailure(['remote_send(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2767 CheckDefAndScriptFailure2(['remote_send("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2767 CheckDefAndScriptFailure(['remote_send("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2768 CheckDefAndScriptFailure2(['remote_send("a", "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 2768 CheckDefAndScriptFailure(['remote_send("a", "b", 3)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
2769 assert_fails('remote_send("", "")', 'E241:') 2769 assert_fails('remote_send("", "")', 'E241:')
2770 enddef 2770 enddef
2771 2771
2772 def Test_remote_startserver() 2772 def Test_remote_startserver()
2773 CheckFeature clientserver 2773 CheckFeature clientserver
2774 CheckEnv DISPLAY 2774 CheckEnv DISPLAY
2775 CheckDefAndScriptFailure2(['remote_startserver({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1') 2775 CheckDefAndScriptFailure(['remote_startserver({})'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1'])
2776 enddef 2776 enddef
2777 2777
2778 def Test_remove_const_list() 2778 def Test_remove_const_list()
2779 var l: list<number> = [1, 2, 3, 4] 2779 var l: list<number> = [1, 2, 3, 4]
2780 assert_equal([1, 2], remove(l, 0, 1)) 2780 assert_equal([1, 2], remove(l, 0, 1))
2781 assert_equal([3, 4], l) 2781 assert_equal([3, 4], l)
2782 enddef 2782 enddef
2783 2783
2784 def Test_remove() 2784 def Test_remove()
2785 CheckDefAndScriptFailure2(['remove("a", 1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1228: List, Dictionary or Blob required for argument 1') 2785 CheckDefAndScriptFailure(['remove("a", 1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1228: List, Dictionary or Blob required for argument 1'])
2786 CheckDefAndScriptFailure2(['remove([], "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2786 CheckDefAndScriptFailure(['remove([], "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2787 CheckDefAndScriptFailure2(['remove([], 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2787 CheckDefAndScriptFailure(['remove([], 1, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2788 CheckDefAndScriptFailure2(['remove({}, 1.1)'], 'E1013: Argument 2: type mismatch, expected string but got float', 'E1220: String or Number required for argument 2') 2788 CheckDefAndScriptFailure(['remove({}, 1.1)'], ['E1013: Argument 2: type mismatch, expected string but got float', 'E1220: String or Number required for argument 2'])
2789 CheckDefAndScriptFailure2(['remove(0z10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2789 CheckDefAndScriptFailure(['remove(0z10, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2790 CheckDefAndScriptFailure2(['remove(0z20, 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2790 CheckDefAndScriptFailure(['remove(0z20, 1, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2791 var l: any = [1, 2, 3, 4] 2791 var l: any = [1, 2, 3, 4]
2792 remove(l, 1) 2792 remove(l, 1)
2793 assert_equal([1, 3, 4], l) 2793 assert_equal([1, 3, 4], l)
2794 remove(l, 0, 1) 2794 remove(l, 0, 1)
2795 assert_equal([4], l) 2795 assert_equal([4], l)
2814 endfor 2814 endfor
2815 res->assert_equal(3) 2815 res->assert_equal(3)
2816 enddef 2816 enddef
2817 2817
2818 def Test_rename() 2818 def Test_rename()
2819 CheckDefAndScriptFailure2(['rename(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2819 CheckDefAndScriptFailure(['rename(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2820 CheckDefAndScriptFailure2(['rename("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2820 CheckDefAndScriptFailure(['rename("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2821 rename('', '')->assert_equal(0) 2821 rename('', '')->assert_equal(0)
2822 enddef 2822 enddef
2823 2823
2824 def Test_repeat() 2824 def Test_repeat()
2825 CheckDefAndScriptFailure2(['repeat(1.1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1224: String, Number or List required for argument 1') 2825 CheckDefAndScriptFailure(['repeat(1.1, 2)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1224: String, Number or List required for argument 1'])
2826 CheckDefAndScriptFailure2(['repeat({a: 10}, 2)'], 'E1013: Argument 1: type mismatch, expected string but got dict<', 'E1224: String, Number or List required for argument 1') 2826 CheckDefAndScriptFailure(['repeat({a: 10}, 2)'], ['E1013: Argument 1: type mismatch, expected string but got dict<', 'E1224: String, Number or List required for argument 1'])
2827 var lines =<< trim END 2827 var lines =<< trim END
2828 assert_equal('aaa', repeat('a', 3)) 2828 assert_equal('aaa', repeat('a', 3))
2829 assert_equal('111', repeat(1, 3)) 2829 assert_equal('111', repeat(1, 3))
2830 assert_equal([1, 1, 1], repeat([1], 3)) 2830 assert_equal([1, 1, 1], repeat([1], 3))
2831 var s = '-' 2831 var s = '-'
2834 END 2834 END
2835 CheckDefAndScriptSuccess(lines) 2835 CheckDefAndScriptSuccess(lines)
2836 enddef 2836 enddef
2837 2837
2838 def Test_resolve() 2838 def Test_resolve()
2839 CheckDefAndScriptFailure2(['resolve([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') 2839 CheckDefAndScriptFailure(['resolve([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1'])
2840 assert_equal('SomeFile', resolve('SomeFile')) 2840 assert_equal('SomeFile', resolve('SomeFile'))
2841 resolve('')->assert_equal('') 2841 resolve('')->assert_equal('')
2842 enddef 2842 enddef
2843 2843
2844 def Test_reverse() 2844 def Test_reverse()
2845 CheckDefAndScriptFailure2(['reverse(10)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1226: List or Blob required for argument 1') 2845 CheckDefAndScriptFailure(['reverse(10)'], ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1226: List or Blob required for argument 1'])
2846 CheckDefAndScriptFailure2(['reverse("abc")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1226: List or Blob required for argument 1') 2846 CheckDefAndScriptFailure(['reverse("abc")'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1226: List or Blob required for argument 1'])
2847 enddef 2847 enddef
2848 2848
2849 def Test_reverse_return_type() 2849 def Test_reverse_return_type()
2850 var l = reverse([1, 2, 3]) 2850 var l = reverse([1, 2, 3])
2851 var res = 0 2851 var res = 0
2857 2857
2858 def Test_rubyeval() 2858 def Test_rubyeval()
2859 if !has('ruby') 2859 if !has('ruby')
2860 CheckFeature ruby 2860 CheckFeature ruby
2861 endif 2861 endif
2862 CheckDefAndScriptFailure2(['rubyeval([2])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') 2862 CheckDefAndScriptFailure(['rubyeval([2])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
2863 enddef 2863 enddef
2864 2864
2865 def Test_screenattr() 2865 def Test_screenattr()
2866 CheckDefAndScriptFailure2(['screenattr("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2866 CheckDefAndScriptFailure(['screenattr("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2867 CheckDefAndScriptFailure2(['screenattr(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2867 CheckDefAndScriptFailure(['screenattr(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2868 enddef 2868 enddef
2869 2869
2870 def Test_screenchar() 2870 def Test_screenchar()
2871 CheckDefAndScriptFailure2(['screenchar("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2871 CheckDefAndScriptFailure(['screenchar("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2872 CheckDefAndScriptFailure2(['screenchar(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2872 CheckDefAndScriptFailure(['screenchar(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2873 enddef 2873 enddef
2874 2874
2875 def Test_screenchars() 2875 def Test_screenchars()
2876 CheckDefAndScriptFailure2(['screenchars("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2876 CheckDefAndScriptFailure(['screenchars("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2877 CheckDefAndScriptFailure2(['screenchars(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2877 CheckDefAndScriptFailure(['screenchars(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2878 enddef 2878 enddef
2879 2879
2880 def Test_screenpos() 2880 def Test_screenpos()
2881 CheckDefAndScriptFailure2(['screenpos("a", 1, 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2881 CheckDefAndScriptFailure(['screenpos("a", 1, 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2882 CheckDefAndScriptFailure2(['screenpos(1, "b", 1)'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2882 CheckDefAndScriptFailure(['screenpos(1, "b", 1)'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2883 CheckDefAndScriptFailure2(['screenpos(1, 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2883 CheckDefAndScriptFailure(['screenpos(1, 1, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2884 assert_equal({col: 1, row: 1, endcol: 1, curscol: 1}, screenpos(1, 1, 1)) 2884 assert_equal({col: 1, row: 1, endcol: 1, curscol: 1}, screenpos(1, 1, 1))
2885 enddef 2885 enddef
2886 2886
2887 def Test_screenstring() 2887 def Test_screenstring()
2888 CheckDefAndScriptFailure2(['screenstring("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 2888 CheckDefAndScriptFailure(['screenstring("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
2889 CheckDefAndScriptFailure2(['screenstring(1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 2889 CheckDefAndScriptFailure(['screenstring(1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
2890 enddef 2890 enddef
2891 2891
2892 def Test_search() 2892 def Test_search()
2893 new 2893 new
2894 setline(1, ['foo', 'bar']) 2894 setline(1, ['foo', 'bar'])
2916 normal 0 2916 normal 0
2917 assert_equal(0, search('this', '', 0, 0, 'col(".") > col')) 2917 assert_equal(0, search('this', '', 0, 0, 'col(".") > col'))
2918 normal 0 2918 normal 0
2919 assert_equal([0, 0], searchpos('this', '', 0, 0, 'col(".") > col')) 2919 assert_equal([0, 0], searchpos('this', '', 0, 0, 'col(".") > col'))
2920 bwipe! 2920 bwipe!
2921 CheckDefAndScriptFailure2(['search(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2921 CheckDefAndScriptFailure(['search(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2922 CheckDefAndScriptFailure2(['search("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2922 CheckDefAndScriptFailure(['search("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2923 CheckDefAndScriptFailure2(['search("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 2923 CheckDefAndScriptFailure(['search("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
2924 CheckDefAndScriptFailure2(['search("a", "b", 3, "d")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 2924 CheckDefAndScriptFailure(['search("a", "b", 3, "d")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
2925 enddef 2925 enddef
2926 2926
2927 def Test_searchcount() 2927 def Test_searchcount()
2928 new 2928 new
2929 setline(1, "foo bar") 2929 setline(1, "foo bar")
2934 current: 1, 2934 current: 1,
2935 total: 1, 2935 total: 1,
2936 maxcount: 99, 2936 maxcount: 99,
2937 incomplete: 0}) 2937 incomplete: 0})
2938 bwipe! 2938 bwipe!
2939 CheckDefAndScriptFailure2(['searchcount([1])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1') 2939 CheckDefAndScriptFailure(['searchcount([1])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1'])
2940 enddef 2940 enddef
2941 2941
2942 def Test_searchdecl() 2942 def Test_searchdecl()
2943 searchdecl('blah', true, true)->assert_equal(1) 2943 searchdecl('blah', true, true)->assert_equal(1)
2944 CheckDefAndScriptFailure2(['searchdecl(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2944 CheckDefAndScriptFailure(['searchdecl(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2945 CheckDefAndScriptFailure2(['searchdecl("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 2945 CheckDefAndScriptFailure(['searchdecl("a", 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
2946 CheckDefAndScriptFailure2(['searchdecl("a", true, 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 2946 CheckDefAndScriptFailure(['searchdecl("a", true, 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
2947 enddef 2947 enddef
2948 2948
2949 def Test_searchpair() 2949 def Test_searchpair()
2950 new 2950 new
2951 setline(1, "here { and } there") 2951 setline(1, "here { and } there")
2988 bwipe! 2988 bwipe!
2989 2989
2990 lines =<< trim END 2990 lines =<< trim END
2991 echo searchpair("a", "b", "c", "d", "f", 33) 2991 echo searchpair("a", "b", "c", "d", "f", 33)
2992 END 2992 END
2993 CheckDefAndScriptFailure2(lines, 'E1001: Variable not found: f', 'E475: Invalid argument: d') 2993 CheckDefAndScriptFailure(lines, ['E1001: Variable not found: f', 'E475: Invalid argument: d'])
2994 2994
2995 CheckDefAndScriptFailure2(['searchpair(1, "b", "c")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 2995 CheckDefAndScriptFailure(['searchpair(1, "b", "c")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
2996 CheckDefAndScriptFailure2(['searchpair("a", 2, "c")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 2996 CheckDefAndScriptFailure(['searchpair("a", 2, "c")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
2997 CheckDefAndScriptFailure2(['searchpair("a", "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 2997 CheckDefAndScriptFailure(['searchpair("a", "b", 3)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
2998 CheckDefAndScriptFailure2(['searchpair("a", "b", "c", 4)'], 'E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4') 2998 CheckDefAndScriptFailure(['searchpair("a", "b", "c", 4)'], ['E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4'])
2999 CheckDefAndScriptFailure2(['searchpair("a", "b", "c", "r", "1", "f")'], 'E1013: Argument 6: type mismatch, expected number but got string', 'E1210: Number required for argument 6') 2999 CheckDefAndScriptFailure(['searchpair("a", "b", "c", "r", "1", "f")'], ['E1013: Argument 6: type mismatch, expected number but got string', 'E1210: Number required for argument 6'])
3000 CheckDefAndScriptFailure2(['searchpair("a", "b", "c", "r", "1", 3, "g")'], 'E1013: Argument 7: type mismatch, expected number but got string', 'E1210: Number required for argument 7') 3000 CheckDefAndScriptFailure(['searchpair("a", "b", "c", "r", "1", 3, "g")'], ['E1013: Argument 7: type mismatch, expected number but got string', 'E1210: Number required for argument 7'])
3001 enddef 3001 enddef
3002 3002
3003 def Test_searchpos() 3003 def Test_searchpos()
3004 CheckDefAndScriptFailure2(['searchpos(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3004 CheckDefAndScriptFailure(['searchpos(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3005 CheckDefAndScriptFailure2(['searchpos("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3005 CheckDefAndScriptFailure(['searchpos("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3006 CheckDefAndScriptFailure2(['searchpos("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3006 CheckDefAndScriptFailure(['searchpos("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3007 CheckDefAndScriptFailure2(['searchpos("a", "b", 3, "d")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 3007 CheckDefAndScriptFailure(['searchpos("a", "b", 3, "d")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
3008 enddef 3008 enddef
3009 3009
3010 def Test_server2client() 3010 def Test_server2client()
3011 CheckFeature clientserver 3011 CheckFeature clientserver
3012 CheckEnv DISPLAY 3012 CheckEnv DISPLAY
3013 CheckDefAndScriptFailure2(['server2client(10, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3013 CheckDefAndScriptFailure(['server2client(10, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3014 CheckDefAndScriptFailure2(['server2client("a", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3014 CheckDefAndScriptFailure(['server2client("a", 10)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3015 CheckDefExecAndScriptFailure(['server2client("", "a")'], 'E573: Invalid server id used') 3015 CheckDefExecAndScriptFailure(['server2client("", "a")'], 'E573: Invalid server id used')
3016 CheckDefExecAndScriptFailure(['server2client("", "")'], 'E573: Invalid server id used') 3016 CheckDefExecAndScriptFailure(['server2client("", "")'], 'E573: Invalid server id used')
3017 enddef 3017 enddef
3018 3018
3019 def Test_shellescape() 3019 def Test_shellescape()
3020 CheckDefAndScriptFailure2(['shellescape(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3020 CheckDefAndScriptFailure(['shellescape(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3021 CheckDefAndScriptFailure2(['shellescape("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 3021 CheckDefAndScriptFailure(['shellescape("a", 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
3022 if has('unix') 3022 if has('unix')
3023 assert_equal("''", shellescape('')) 3023 assert_equal("''", shellescape(''))
3024 endif 3024 endif
3025 enddef 3025 enddef
3026 3026
3096 setlocal list& 3096 setlocal list&
3097 3097
3098 setbufvar('%', 'myvar', 123) 3098 setbufvar('%', 'myvar', 123)
3099 getbufvar('%', 'myvar')->assert_equal(123) 3099 getbufvar('%', 'myvar')->assert_equal(123)
3100 3100
3101 CheckDefAndScriptFailure2(['setbufvar(true, "v", 3)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 3101 CheckDefAndScriptFailure(['setbufvar(true, "v", 3)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
3102 CheckDefAndScriptFailure2(['setbufvar(1, 2, 3)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3102 CheckDefAndScriptFailure(['setbufvar(1, 2, 3)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3103 assert_fails('setbufvar("%", "", 10)', 'E461: Illegal variable name') 3103 assert_fails('setbufvar("%", "", 10)', 'E461: Illegal variable name')
3104 enddef 3104 enddef
3105 3105
3106 def Test_setbufline() 3106 def Test_setbufline()
3107 new 3107 new
3110 setbufline(bnum, 1, range(1, 3)) 3110 setbufline(bnum, 1, range(1, 3))
3111 setbufline(bnum, 4, 'one') 3111 setbufline(bnum, 4, 'one')
3112 setbufline(bnum, 5, 10) 3112 setbufline(bnum, 5, 10)
3113 setbufline(bnum, 6, ['two', 11]) 3113 setbufline(bnum, 6, ['two', 11])
3114 assert_equal(['1', '2', '3', 'one', '10', 'two', '11'], getbufline(bnum, 1, '$')) 3114 assert_equal(['1', '2', '3', 'one', '10', 'two', '11'], getbufline(bnum, 1, '$'))
3115 CheckDefAndScriptFailure2(['setbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 3115 CheckDefAndScriptFailure(['setbufline([1], 1, "x")'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
3116 CheckDefAndScriptFailure2(['setbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 2') 3116 CheckDefAndScriptFailure(['setbufline(1, [1], "x")'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 2'])
3117 CheckDefAndScriptFailure2(['setbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 3') 3117 CheckDefAndScriptFailure(['setbufline(1, 1, {"a": 10})'], ['E1013: Argument 3: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 3'])
3118 bnum->bufwinid()->win_gotoid() 3118 bnum->bufwinid()->win_gotoid()
3119 setbufline('', 1, 'nombres') 3119 setbufline('', 1, 'nombres')
3120 getline(1)->assert_equal('nombres') 3120 getline(1)->assert_equal('nombres')
3121 bw! 3121 bw!
3122 enddef 3122 enddef
3123 3123
3124 def Test_setcellwidths() 3124 def Test_setcellwidths()
3125 CheckDefAndScriptFailure2(['setcellwidths(1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1') 3125 CheckDefAndScriptFailure(['setcellwidths(1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1'])
3126 CheckDefAndScriptFailure2(['setcellwidths({"a": 10})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1') 3126 CheckDefAndScriptFailure(['setcellwidths({"a": 10})'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1'])
3127 enddef 3127 enddef
3128 3128
3129 def Test_setcharpos() 3129 def Test_setcharpos()
3130 CheckDefAndScriptFailure2(['setcharpos(1, [])'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3130 CheckDefAndScriptFailure(['setcharpos(1, [])'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3131 CheckDefFailure(['setcharpos(".", ["a"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>') 3131 CheckDefFailure(['setcharpos(".", ["a"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>')
3132 CheckDefAndScriptFailure2(['setcharpos(".", 1)'], 'E1013: Argument 2: type mismatch, expected list<number> but got number', 'E1211: List required for argument 2') 3132 CheckDefAndScriptFailure(['setcharpos(".", 1)'], ['E1013: Argument 2: type mismatch, expected list<number> but got number', 'E1211: List required for argument 2'])
3133 CheckDefExecAndScriptFailure(['setcharpos("", [0, 1, 1, 1])'], 'E474: Invalid argument') 3133 CheckDefExecAndScriptFailure(['setcharpos("", [0, 1, 1, 1])'], 'E474: Invalid argument')
3134 enddef 3134 enddef
3135 3135
3136 def Test_setcharsearch() 3136 def Test_setcharsearch()
3137 CheckDefAndScriptFailure2(['setcharsearch("x")'], 'E1013: Argument 1: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 1') 3137 CheckDefAndScriptFailure(['setcharsearch("x")'], ['E1013: Argument 1: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 1'])
3138 CheckDefAndScriptFailure2(['setcharsearch([])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1') 3138 CheckDefAndScriptFailure(['setcharsearch([])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1'])
3139 var d: dict<any> = {char: 'x', forward: 1, until: 1} 3139 var d: dict<any> = {char: 'x', forward: 1, until: 1}
3140 setcharsearch(d) 3140 setcharsearch(d)
3141 assert_equal(d, getcharsearch()) 3141 assert_equal(d, getcharsearch())
3142 enddef 3142 enddef
3143 3143
3144 def Test_setcmdpos() 3144 def Test_setcmdpos()
3145 CheckDefAndScriptFailure2(['setcmdpos("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3145 CheckDefAndScriptFailure(['setcmdpos("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3146 enddef 3146 enddef
3147 3147
3148 def Test_setcursorcharpos() 3148 def Test_setcursorcharpos()
3149 CheckDefAndScriptFailure2(['setcursorcharpos(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected number but got blob', 'E1224: String, Number or List required for argument 1') 3149 CheckDefAndScriptFailure(['setcursorcharpos(0z10, 1)'], ['E1013: Argument 1: type mismatch, expected number but got blob', 'E1224: String, Number or List required for argument 1'])
3150 CheckDefAndScriptFailure2(['setcursorcharpos(1, "2")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3150 CheckDefAndScriptFailure(['setcursorcharpos(1, "2")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3151 CheckDefAndScriptFailure2(['setcursorcharpos(1, 2, "3")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3151 CheckDefAndScriptFailure(['setcursorcharpos(1, 2, "3")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3152 CheckDefExecAndScriptFailure(['setcursorcharpos("", 10)'], 'E1209: Invalid value for a line number') 3152 CheckDefExecAndScriptFailure(['setcursorcharpos("", 10)'], 'E1209: Invalid value for a line number')
3153 enddef 3153 enddef
3154 3154
3155 def Test_setenv() 3155 def Test_setenv()
3156 CheckDefAndScriptFailure2(['setenv(1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3156 CheckDefAndScriptFailure(['setenv(1, 2)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3157 assert_equal(0, setenv('', '')) 3157 assert_equal(0, setenv('', ''))
3158 assert_equal(0, setenv('', v:null)) 3158 assert_equal(0, setenv('', v:null))
3159 enddef 3159 enddef
3160 3160
3161 def Test_setfperm() 3161 def Test_setfperm()
3162 CheckDefAndScriptFailure2(['setfperm(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3162 CheckDefAndScriptFailure(['setfperm(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3163 CheckDefAndScriptFailure2(['setfperm("a", 0z10)'], 'E1013: Argument 2: type mismatch, expected string but got blob', 'E1174: String required for argument 2') 3163 CheckDefAndScriptFailure(['setfperm("a", 0z10)'], ['E1013: Argument 2: type mismatch, expected string but got blob', 'E1174: String required for argument 2'])
3164 CheckDefExecAndScriptFailure(['setfperm("Xfile", "")'], 'E475: Invalid argument') 3164 CheckDefExecAndScriptFailure(['setfperm("Xfile", "")'], 'E475: Invalid argument')
3165 CheckDefExecAndScriptFailure(['setfperm("", "")'], 'E475: Invalid argument') 3165 CheckDefExecAndScriptFailure(['setfperm("", "")'], 'E475: Invalid argument')
3166 assert_equal(0, setfperm('', 'rw-r--r--')) 3166 assert_equal(0, setfperm('', 'rw-r--r--'))
3167 enddef 3167 enddef
3168 3168
3174 assert_equal(['a', 'b', 'c', 'd'], getline(1, '$')) 3174 assert_equal(['a', 'b', 'c', 'd'], getline(1, '$'))
3175 setline(1, 'one') 3175 setline(1, 'one')
3176 assert_equal(['one', 'b', 'c', 'd'], getline(1, '$')) 3176 assert_equal(['one', 'b', 'c', 'd'], getline(1, '$'))
3177 setline(1, 10) 3177 setline(1, 10)
3178 assert_equal(['10', 'b', 'c', 'd'], getline(1, '$')) 3178 assert_equal(['10', 'b', 'c', 'd'], getline(1, '$'))
3179 CheckDefAndScriptFailure2(['setline([1], "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 3179 CheckDefAndScriptFailure(['setline([1], "x")'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
3180 CheckDefExecAndScriptFailure(['setline("", "x")'], 'E1209: Invalid value for a line number') 3180 CheckDefExecAndScriptFailure(['setline("", "x")'], 'E1209: Invalid value for a line number')
3181 bw! 3181 bw!
3182 enddef 3182 enddef
3183 3183
3184 def Test_setloclist() 3184 def Test_setloclist()
3185 var items = [{filename: '/tmp/file', lnum: 1, valid: true}] 3185 var items = [{filename: '/tmp/file', lnum: 1, valid: true}]
3186 var what = {items: items} 3186 var what = {items: items}
3187 setqflist([], ' ', what) 3187 setqflist([], ' ', what)
3188 setloclist(0, [], ' ', what) 3188 setloclist(0, [], ' ', what)
3189 CheckDefAndScriptFailure2(['setloclist("1", [])'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3189 CheckDefAndScriptFailure(['setloclist("1", [])'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3190 CheckDefAndScriptFailure2(['setloclist(1, 2)'], 'E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2') 3190 CheckDefAndScriptFailure(['setloclist(1, 2)'], ['E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2'])
3191 CheckDefAndScriptFailure2(['setloclist(1, [], 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 3191 CheckDefAndScriptFailure(['setloclist(1, [], 3)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
3192 CheckDefAndScriptFailure2(['setloclist(1, [], "a", [])'], 'E1013: Argument 4: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 4') 3192 CheckDefAndScriptFailure(['setloclist(1, [], "a", [])'], ['E1013: Argument 4: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 4'])
3193 enddef 3193 enddef
3194 3194
3195 def Test_setmatches() 3195 def Test_setmatches()
3196 CheckDefAndScriptFailure2(['setmatches({})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1') 3196 CheckDefAndScriptFailure(['setmatches({})'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1'])
3197 CheckDefAndScriptFailure2(['setmatches([], "1")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3197 CheckDefAndScriptFailure(['setmatches([], "1")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3198 enddef 3198 enddef
3199 3199
3200 def Test_setpos() 3200 def Test_setpos()
3201 CheckDefAndScriptFailure2(['setpos(1, [])'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3201 CheckDefAndScriptFailure(['setpos(1, [])'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3202 CheckDefFailure(['setpos(".", ["a"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>') 3202 CheckDefFailure(['setpos(".", ["a"])'], 'E1013: Argument 2: type mismatch, expected list<number> but got list<string>')
3203 CheckDefAndScriptFailure2(['setpos(".", 1)'], 'E1013: Argument 2: type mismatch, expected list<number> but got number', 'E1211: List required for argument 2') 3203 CheckDefAndScriptFailure(['setpos(".", 1)'], ['E1013: Argument 2: type mismatch, expected list<number> but got number', 'E1211: List required for argument 2'])
3204 CheckDefExecAndScriptFailure(['setpos("", [0, 1, 1, 1])'], 'E474: Invalid argument') 3204 CheckDefExecAndScriptFailure(['setpos("", [0, 1, 1, 1])'], 'E474: Invalid argument')
3205 enddef 3205 enddef
3206 3206
3207 def Test_setqflist() 3207 def Test_setqflist()
3208 CheckDefAndScriptFailure2(['setqflist(1, "")'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1') 3208 CheckDefAndScriptFailure(['setqflist(1, "")'], ['E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1'])
3209 CheckDefAndScriptFailure2(['setqflist([], 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3209 CheckDefAndScriptFailure(['setqflist([], 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3210 CheckDefAndScriptFailure2(['setqflist([], "", [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 3210 CheckDefAndScriptFailure(['setqflist([], "", [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
3211 enddef 3211 enddef
3212 3212
3213 def Test_setreg() 3213 def Test_setreg()
3214 setreg('a', ['aaa', 'bbb', 'ccc']) 3214 setreg('a', ['aaa', 'bbb', 'ccc'])
3215 var reginfo = getreginfo('a') 3215 var reginfo = getreginfo('a')
3216 setreg('a', reginfo) 3216 setreg('a', reginfo)
3217 getreginfo('a')->assert_equal(reginfo) 3217 getreginfo('a')->assert_equal(reginfo)
3218 assert_fails('setreg("ab", 0)', 'E1162:') 3218 assert_fails('setreg("ab", 0)', 'E1162:')
3219 CheckDefAndScriptFailure2(['setreg(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3219 CheckDefAndScriptFailure(['setreg(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3220 CheckDefAndScriptFailure2(['setreg("a", "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 3220 CheckDefAndScriptFailure(['setreg("a", "b", 3)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
3221 setreg('', '1a2b3c') 3221 setreg('', '1a2b3c')
3222 assert_equal('1a2b3c', @") 3222 assert_equal('1a2b3c', @")
3223 enddef 3223 enddef
3224 3224
3225 def Test_settabvar() 3225 def Test_settabvar()
3226 CheckDefAndScriptFailure2(['settabvar("a", "b", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3226 CheckDefAndScriptFailure(['settabvar("a", "b", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3227 CheckDefAndScriptFailure2(['settabvar(1, 2, "c")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3227 CheckDefAndScriptFailure(['settabvar(1, 2, "c")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3228 assert_fails('settabvar(1, "", 10)', 'E461: Illegal variable name') 3228 assert_fails('settabvar(1, "", 10)', 'E461: Illegal variable name')
3229 enddef 3229 enddef
3230 3230
3231 def Test_settabwinvar() 3231 def Test_settabwinvar()
3232 CheckDefAndScriptFailure2(['settabwinvar("a", 2, "c", true)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3232 CheckDefAndScriptFailure(['settabwinvar("a", 2, "c", true)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3233 CheckDefAndScriptFailure2(['settabwinvar(1, "b", "c", [])'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3233 CheckDefAndScriptFailure(['settabwinvar(1, "b", "c", [])'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3234 CheckDefAndScriptFailure2(['settabwinvar(1, 1, 3, {})'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 3234 CheckDefAndScriptFailure(['settabwinvar(1, 1, 3, {})'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
3235 assert_fails('settabwinvar(1, 1, "", 10)', 'E461: Illegal variable name') 3235 assert_fails('settabwinvar(1, 1, "", 10)', 'E461: Illegal variable name')
3236 enddef 3236 enddef
3237 3237
3238 def Test_settagstack() 3238 def Test_settagstack()
3239 CheckDefAndScriptFailure2(['settagstack(true, {})'], 'E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1') 3239 CheckDefAndScriptFailure(['settagstack(true, {})'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
3240 CheckDefAndScriptFailure2(['settagstack(1, [1])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2') 3240 CheckDefAndScriptFailure(['settagstack(1, [1])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 2'])
3241 CheckDefAndScriptFailure2(['settagstack(1, {}, 2)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 3241 CheckDefAndScriptFailure(['settagstack(1, {}, 2)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
3242 assert_fails('settagstack(1, {}, "")', 'E962: Invalid action') 3242 assert_fails('settagstack(1, {}, "")', 'E962: Invalid action')
3243 enddef 3243 enddef
3244 3244
3245 def Test_setwinvar() 3245 def Test_setwinvar()
3246 CheckDefAndScriptFailure2(['setwinvar("a", "b", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3246 CheckDefAndScriptFailure(['setwinvar("a", "b", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3247 CheckDefAndScriptFailure2(['setwinvar(1, 2, "c")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3247 CheckDefAndScriptFailure(['setwinvar(1, 2, "c")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3248 assert_fails('setwinvar(1, "", 10)', 'E461: Illegal variable name') 3248 assert_fails('setwinvar(1, "", 10)', 'E461: Illegal variable name')
3249 enddef 3249 enddef
3250 3250
3251 def Test_sha256() 3251 def Test_sha256()
3252 CheckDefAndScriptFailure2(['sha256(100)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3252 CheckDefAndScriptFailure(['sha256(100)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3253 CheckDefAndScriptFailure2(['sha256(0zABCD)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1') 3253 CheckDefAndScriptFailure(['sha256(0zABCD)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1'])
3254 assert_equal('ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', sha256('abc')) 3254 assert_equal('ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', sha256('abc'))
3255 assert_equal('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', sha256('')) 3255 assert_equal('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', sha256(''))
3256 enddef 3256 enddef
3257 3257
3258 def Test_shiftwidth() 3258 def Test_shiftwidth()
3259 CheckDefAndScriptFailure2(['shiftwidth("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3259 CheckDefAndScriptFailure(['shiftwidth("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3260 enddef 3260 enddef
3261 3261
3262 def Test_sign_define() 3262 def Test_sign_define()
3263 CheckDefAndScriptFailure2(['sign_define({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1') 3263 CheckDefAndScriptFailure(['sign_define({"a": 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1'])
3264 CheckDefAndScriptFailure2(['sign_define({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1') 3264 CheckDefAndScriptFailure(['sign_define({"a": 10}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1222: String or List required for argument 1'])
3265 CheckDefAndScriptFailure2(['sign_define("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2') 3265 CheckDefAndScriptFailure(['sign_define("a", ["b"])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2'])
3266 enddef 3266 enddef
3267 3267
3268 def Test_sign_getdefined() 3268 def Test_sign_getdefined()
3269 CheckDefAndScriptFailure2(['sign_getdefined(["x"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 3269 CheckDefAndScriptFailure(['sign_getdefined(["x"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
3270 CheckDefAndScriptFailure2(['sign_getdefined(2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3270 CheckDefAndScriptFailure(['sign_getdefined(2)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3271 sign_getdefined('')->assert_equal([]) 3271 sign_getdefined('')->assert_equal([])
3272 enddef 3272 enddef
3273 3273
3274 def Test_sign_getplaced() 3274 def Test_sign_getplaced()
3275 CheckDefAndScriptFailure2(['sign_getplaced(["x"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1220: String or Number required for argument 1') 3275 CheckDefAndScriptFailure(['sign_getplaced(["x"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1220: String or Number required for argument 1'])
3276 CheckDefAndScriptFailure2(['sign_getplaced(1, ["a"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2') 3276 CheckDefAndScriptFailure(['sign_getplaced(1, ["a"])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2'])
3277 CheckDefAndScriptFailure2(['sign_getplaced("a", 1.1)'], 'E1013: Argument 2: type mismatch, expected dict<any> but got float', 'E1206: Dictionary required for argument 2') 3277 CheckDefAndScriptFailure(['sign_getplaced("a", 1.1)'], ['E1013: Argument 2: type mismatch, expected dict<any> but got float', 'E1206: Dictionary required for argument 2'])
3278 CheckDefExecAndScriptFailure(['sign_getplaced(bufnr(), {lnum: ""})'], 'E1030: Using a String as a Number:') 3278 CheckDefExecAndScriptFailure(['sign_getplaced(bufnr(), {lnum: ""})'], 'E1030: Using a String as a Number:')
3279 sign_getplaced('')->assert_equal([{signs: [], bufnr: bufnr()}]) 3279 sign_getplaced('')->assert_equal([{signs: [], bufnr: bufnr()}])
3280 enddef 3280 enddef
3281 3281
3282 def Test_sign_jump() 3282 def Test_sign_jump()
3283 CheckDefAndScriptFailure2(['sign_jump("a", "b", "c")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3283 CheckDefAndScriptFailure(['sign_jump("a", "b", "c")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3284 CheckDefAndScriptFailure2(['sign_jump(1, 2, 3)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3284 CheckDefAndScriptFailure(['sign_jump(1, 2, 3)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3285 CheckDefAndScriptFailure2(['sign_jump(1, "b", true)'], 'E1013: Argument 3: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 3') 3285 CheckDefAndScriptFailure(['sign_jump(1, "b", true)'], ['E1013: Argument 3: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 3'])
3286 enddef 3286 enddef
3287 3287
3288 def Test_sign_place() 3288 def Test_sign_place()
3289 CheckDefAndScriptFailure2(['sign_place("a", "b", "c", "d")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3289 CheckDefAndScriptFailure(['sign_place("a", "b", "c", "d")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3290 CheckDefAndScriptFailure2(['sign_place(1, 2, "c", "d")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3290 CheckDefAndScriptFailure(['sign_place(1, 2, "c", "d")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3291 CheckDefAndScriptFailure2(['sign_place(1, "b", 3, "d")'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 3291 CheckDefAndScriptFailure(['sign_place(1, "b", 3, "d")'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
3292 CheckDefAndScriptFailure2(['sign_place(1, "b", "c", 1.1)'], 'E1013: Argument 4: type mismatch, expected string but got float', 'E1220: String or Number required for argument 4') 3292 CheckDefAndScriptFailure(['sign_place(1, "b", "c", 1.1)'], ['E1013: Argument 4: type mismatch, expected string but got float', 'E1220: String or Number required for argument 4'])
3293 CheckDefAndScriptFailure2(['sign_place(1, "b", "c", "d", [1])'], 'E1013: Argument 5: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 5') 3293 CheckDefAndScriptFailure(['sign_place(1, "b", "c", "d", [1])'], ['E1013: Argument 5: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 5'])
3294 CheckDefExecAndScriptFailure(['sign_place(0, "", "MySign", bufnr(), {lnum: ""})'], 'E1209: Invalid value for a line number: ""') 3294 CheckDefExecAndScriptFailure(['sign_place(0, "", "MySign", bufnr(), {lnum: ""})'], 'E1209: Invalid value for a line number: ""')
3295 assert_fails("sign_place(0, '', '', '')", 'E155:') 3295 assert_fails("sign_place(0, '', '', '')", 'E155:')
3296 enddef 3296 enddef
3297 3297
3298 def Test_sign_placelist() 3298 def Test_sign_placelist()
3299 CheckDefAndScriptFailure2(['sign_placelist("x")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1') 3299 CheckDefAndScriptFailure(['sign_placelist("x")'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1'])
3300 CheckDefAndScriptFailure2(['sign_placelist({"a": 10})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1') 3300 CheckDefAndScriptFailure(['sign_placelist({"a": 10})'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1'])
3301 CheckDefExecAndScriptFailure(['sign_placelist([{"name": "MySign", "buffer": bufnr(), "lnum": ""}])'], 'E1209: Invalid value for a line number: ""') 3301 CheckDefExecAndScriptFailure(['sign_placelist([{"name": "MySign", "buffer": bufnr(), "lnum": ""}])'], 'E1209: Invalid value for a line number: ""')
3302 assert_fails('sign_placelist([{name: "MySign", buffer: "", lnum: 1}])', 'E155:') 3302 assert_fails('sign_placelist([{name: "MySign", buffer: "", lnum: 1}])', 'E155:')
3303 enddef 3303 enddef
3304 3304
3305 def Test_sign_undefine() 3305 def Test_sign_undefine()
3306 CheckDefAndScriptFailure2(['sign_undefine({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1222: String or List required for argument 1') 3306 CheckDefAndScriptFailure(['sign_undefine({})'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1222: String or List required for argument 1'])
3307 CheckDefAndScriptFailure2(['sign_undefine([1])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>', 'E155: Unknown sign:') 3307 CheckDefAndScriptFailure(['sign_undefine([1])'], ['E1013: Argument 1: type mismatch, expected list<string> but got list<number>', 'E155: Unknown sign:'])
3308 enddef 3308 enddef
3309 3309
3310 def Test_sign_unplace() 3310 def Test_sign_unplace()
3311 CheckDefAndScriptFailure2(['sign_unplace({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 3311 CheckDefAndScriptFailure(['sign_unplace({"a": 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
3312 CheckDefAndScriptFailure2(['sign_unplace({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 3312 CheckDefAndScriptFailure(['sign_unplace({"a": 10}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
3313 CheckDefAndScriptFailure2(['sign_unplace("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2') 3313 CheckDefAndScriptFailure(['sign_unplace("a", ["b"])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2'])
3314 enddef 3314 enddef
3315 3315
3316 def Test_sign_unplacelist() 3316 def Test_sign_unplacelist()
3317 CheckDefAndScriptFailure2(['sign_unplacelist("x")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1') 3317 CheckDefAndScriptFailure(['sign_unplacelist("x")'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1'])
3318 CheckDefAndScriptFailure2(['sign_unplacelist({"a": 10})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1') 3318 CheckDefAndScriptFailure(['sign_unplacelist({"a": 10})'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1'])
3319 enddef 3319 enddef
3320 3320
3321 def Test_simplify() 3321 def Test_simplify()
3322 CheckDefAndScriptFailure2(['simplify(100)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3322 CheckDefAndScriptFailure(['simplify(100)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3323 call assert_equal('NonExistingFile', simplify('NonExistingFile')) 3323 call assert_equal('NonExistingFile', simplify('NonExistingFile'))
3324 simplify('')->assert_equal('') 3324 simplify('')->assert_equal('')
3325 enddef 3325 enddef
3326 3326
3327 def Test_slice() 3327 def Test_slice()
3343 assert_equal(0z112233, slice(0z001122334455, 1, 4)) 3343 assert_equal(0z112233, slice(0z001122334455, 1, 4))
3344 assert_equal(0z11223344, slice(0z001122334455, 1, -1)) 3344 assert_equal(0z11223344, slice(0z001122334455, 1, -1))
3345 assert_equal(0z11, slice(0z001122334455, 1, -4)) 3345 assert_equal(0z11, slice(0z001122334455, 1, -4))
3346 assert_equal(0z, slice(0z001122334455, 1, -5)) 3346 assert_equal(0z, slice(0z001122334455, 1, -5))
3347 assert_equal(0z, slice(0z001122334455, 1, -6)) 3347 assert_equal(0z, slice(0z001122334455, 1, -6))
3348 CheckDefAndScriptFailure2(['slice({"a": 10}, 1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1') 3348 CheckDefAndScriptFailure(['slice({"a": 10}, 1)'], ['E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1'])
3349 CheckDefAndScriptFailure2(['slice([1, 2, 3], "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3349 CheckDefAndScriptFailure(['slice([1, 2, 3], "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3350 CheckDefAndScriptFailure2(['slice("abc", 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3350 CheckDefAndScriptFailure(['slice("abc", 1, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3351 enddef 3351 enddef
3352 3352
3353 def Test_spellsuggest() 3353 def Test_spellsuggest()
3354 if !has('spell') 3354 if !has('spell')
3355 CheckFeature spell 3355 CheckFeature spell
3356 else 3356 else
3357 spellsuggest('marrch', 1, true)->assert_equal(['March']) 3357 spellsuggest('marrch', 1, true)->assert_equal(['March'])
3358 endif 3358 endif
3359 CheckDefAndScriptFailure2(['spellsuggest(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3359 CheckDefAndScriptFailure(['spellsuggest(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3360 CheckDefAndScriptFailure2(['spellsuggest("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3360 CheckDefAndScriptFailure(['spellsuggest("a", "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3361 CheckDefAndScriptFailure2(['spellsuggest("a", 1, 0z01)'], 'E1013: Argument 3: type mismatch, expected bool but got blob', 'E1212: Bool required for argument 3') 3361 CheckDefAndScriptFailure(['spellsuggest("a", 1, 0z01)'], ['E1013: Argument 3: type mismatch, expected bool but got blob', 'E1212: Bool required for argument 3'])
3362 spellsuggest('')->assert_equal([]) 3362 spellsuggest('')->assert_equal([])
3363 enddef 3363 enddef
3364 3364
3365 def Test_sound_playevent() 3365 def Test_sound_playevent()
3366 CheckFeature sound 3366 CheckFeature sound
3367 CheckDefAndScriptFailure2(['sound_playevent(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3367 CheckDefAndScriptFailure(['sound_playevent(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3368 enddef 3368 enddef
3369 3369
3370 def Test_sound_playfile() 3370 def Test_sound_playfile()
3371 CheckFeature sound 3371 CheckFeature sound
3372 CheckDefAndScriptFailure2(['sound_playfile(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3372 CheckDefAndScriptFailure(['sound_playfile(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3373 enddef 3373 enddef
3374 3374
3375 def Test_sound_stop() 3375 def Test_sound_stop()
3376 CheckFeature sound 3376 CheckFeature sound
3377 CheckDefAndScriptFailure2(['sound_stop("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3377 CheckDefAndScriptFailure(['sound_stop("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3378 enddef 3378 enddef
3379 3379
3380 def Test_soundfold() 3380 def Test_soundfold()
3381 CheckDefAndScriptFailure2(['soundfold(20)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3381 CheckDefAndScriptFailure(['soundfold(20)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3382 assert_equal('abc', soundfold('abc')) 3382 assert_equal('abc', soundfold('abc'))
3383 assert_equal('', soundfold('')) 3383 assert_equal('', soundfold(''))
3384 enddef 3384 enddef
3385 3385
3386 def Test_sort_return_type() 3386 def Test_sort_return_type()
3399 var l = [3, 6, 7, 1, 8, 2, 4, 5] 3399 var l = [3, 6, 7, 1, 8, 2, 4, 5]
3400 sort(l, Compare) 3400 sort(l, Compare)
3401 assert_equal([1, 2, 3, 4, 5, 6, 7, 8], l) 3401 assert_equal([1, 2, 3, 4, 5, 6, 7, 8], l)
3402 END 3402 END
3403 CheckDefAndScriptSuccess(lines) 3403 CheckDefAndScriptSuccess(lines)
3404 CheckDefAndScriptFailure2(['sort("a")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1') 3404 CheckDefAndScriptFailure(['sort("a")'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1'])
3405 CheckDefAndScriptFailure2(['sort([1], "", [1])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 3405 CheckDefAndScriptFailure(['sort([1], "", [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
3406 enddef 3406 enddef
3407 3407
3408 def Test_spellbadword() 3408 def Test_spellbadword()
3409 CheckDefAndScriptFailure2(['spellbadword(100)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3409 CheckDefAndScriptFailure(['spellbadword(100)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3410 spellbadword('good')->assert_equal(['', '']) 3410 spellbadword('good')->assert_equal(['', ''])
3411 spellbadword('')->assert_equal(['', '']) 3411 spellbadword('')->assert_equal(['', ''])
3412 enddef 3412 enddef
3413 3413
3414 def Test_split() 3414 def Test_split()
3415 split(' aa bb ', '\W\+', true)->assert_equal(['', 'aa', 'bb', '']) 3415 split(' aa bb ', '\W\+', true)->assert_equal(['', 'aa', 'bb', ''])
3416 CheckDefAndScriptFailure2(['split(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3416 CheckDefAndScriptFailure(['split(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3417 CheckDefAndScriptFailure2(['split("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3417 CheckDefAndScriptFailure(['split("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3418 CheckDefAndScriptFailure2(['split("a", "b", 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 3418 CheckDefAndScriptFailure(['split("a", "b", 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
3419 split('')->assert_equal([]) 3419 split('')->assert_equal([])
3420 split('', '')->assert_equal([]) 3420 split('', '')->assert_equal([])
3421 enddef 3421 enddef
3422 3422
3423 def Test_srand() 3423 def Test_srand()
3424 CheckDefAndScriptFailure2(['srand("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3424 CheckDefAndScriptFailure(['srand("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3425 type(srand(100))->assert_equal(v:t_list) 3425 type(srand(100))->assert_equal(v:t_list)
3426 enddef 3426 enddef
3427 3427
3428 def Test_state() 3428 def Test_state()
3429 CheckDefAndScriptFailure2(['state({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1') 3429 CheckDefAndScriptFailure(['state({})'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1'])
3430 assert_equal('', state('a')) 3430 assert_equal('', state('a'))
3431 enddef 3431 enddef
3432 3432
3433 def Test_str2float() 3433 def Test_str2float()
3434 if !has('float') 3434 if !has('float')
3436 else 3436 else
3437 str2float("1.00")->assert_equal(1.00) 3437 str2float("1.00")->assert_equal(1.00)
3438 str2float("2e-2")->assert_equal(0.02) 3438 str2float("2e-2")->assert_equal(0.02)
3439 str2float('')->assert_equal(0.0) 3439 str2float('')->assert_equal(0.0)
3440 3440
3441 CheckDefAndScriptFailure2(['str2float(123)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3441 CheckDefAndScriptFailure(['str2float(123)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3442 endif 3442 endif
3443 enddef 3443 enddef
3444 3444
3445 def Test_str2list() 3445 def Test_str2list()
3446 CheckDefAndScriptFailure2(['str2list(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3446 CheckDefAndScriptFailure(['str2list(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3447 CheckDefAndScriptFailure2(['str2list("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 3447 CheckDefAndScriptFailure(['str2list("a", 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
3448 assert_equal([97], str2list('a')) 3448 assert_equal([97], str2list('a'))
3449 assert_equal([97], str2list('a', 1)) 3449 assert_equal([97], str2list('a', 1))
3450 assert_equal([97], str2list('a', true)) 3450 assert_equal([97], str2list('a', true))
3451 str2list('')->assert_equal([]) 3451 str2list('')->assert_equal([])
3452 enddef 3452 enddef
3453 3453
3454 def Test_str2nr() 3454 def Test_str2nr()
3455 str2nr("1'000'000", 10, true)->assert_equal(1000000) 3455 str2nr("1'000'000", 10, true)->assert_equal(1000000)
3456 str2nr('')->assert_equal(0) 3456 str2nr('')->assert_equal(0)
3457 3457
3458 CheckDefAndScriptFailure2(['str2nr(123)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3458 CheckDefAndScriptFailure(['str2nr(123)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3459 CheckDefAndScriptFailure2(['str2nr("123", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3459 CheckDefAndScriptFailure(['str2nr("123", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3460 CheckDefAndScriptFailure2(['str2nr("123", 10, "x")'], 'E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3') 3460 CheckDefAndScriptFailure(['str2nr("123", 10, "x")'], ['E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3'])
3461 enddef 3461 enddef
3462 3462
3463 def Test_strcharlen() 3463 def Test_strcharlen()
3464 CheckDefAndScriptFailure2(['strcharlen([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 3464 CheckDefAndScriptFailure(['strcharlen([1])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
3465 "abc"->strcharlen()->assert_equal(3) 3465 "abc"->strcharlen()->assert_equal(3)
3466 strcharlen(99)->assert_equal(2) 3466 strcharlen(99)->assert_equal(2)
3467 enddef 3467 enddef
3468 3468
3469 def Test_strcharpart() 3469 def Test_strcharpart()
3470 CheckDefAndScriptFailure2(['strcharpart(1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3470 CheckDefAndScriptFailure(['strcharpart(1, 2)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3471 CheckDefAndScriptFailure2(['strcharpart("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3471 CheckDefAndScriptFailure(['strcharpart("a", "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3472 CheckDefAndScriptFailure2(['strcharpart("a", 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3472 CheckDefAndScriptFailure(['strcharpart("a", 1, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3473 CheckDefAndScriptFailure2(['strcharpart("a", 1, 1, 2)'], 'E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4') 3473 CheckDefAndScriptFailure(['strcharpart("a", 1, 1, 2)'], ['E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4'])
3474 strcharpart('', 0)->assert_equal('') 3474 strcharpart('', 0)->assert_equal('')
3475 enddef 3475 enddef
3476 3476
3477 def Test_strchars() 3477 def Test_strchars()
3478 strchars("A\u20dd", true)->assert_equal(1) 3478 strchars("A\u20dd", true)->assert_equal(1)
3479 CheckDefAndScriptFailure2(['strchars(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3479 CheckDefAndScriptFailure(['strchars(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3480 CheckDefAndScriptFailure2(['strchars("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 3480 CheckDefAndScriptFailure(['strchars("a", 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
3481 assert_equal(3, strchars('abc')) 3481 assert_equal(3, strchars('abc'))
3482 assert_equal(3, strchars('abc', 1)) 3482 assert_equal(3, strchars('abc', 1))
3483 assert_equal(3, strchars('abc', true)) 3483 assert_equal(3, strchars('abc', true))
3484 strchars('')->assert_equal(0) 3484 strchars('')->assert_equal(0)
3485 enddef 3485 enddef
3486 3486
3487 def Test_strdisplaywidth() 3487 def Test_strdisplaywidth()
3488 CheckDefAndScriptFailure2(['strdisplaywidth(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3488 CheckDefAndScriptFailure(['strdisplaywidth(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3489 CheckDefAndScriptFailure2(['strdisplaywidth("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3489 CheckDefAndScriptFailure(['strdisplaywidth("a", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3490 strdisplaywidth('')->assert_equal(0) 3490 strdisplaywidth('')->assert_equal(0)
3491 enddef 3491 enddef
3492 3492
3493 def Test_strftime() 3493 def Test_strftime()
3494 if exists('*strftime') 3494 if exists('*strftime')
3495 CheckDefAndScriptFailure2(['strftime(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3495 CheckDefAndScriptFailure(['strftime(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3496 CheckDefAndScriptFailure2(['strftime("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3496 CheckDefAndScriptFailure(['strftime("a", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3497 strftime('')->assert_equal('') 3497 strftime('')->assert_equal('')
3498 endif 3498 endif
3499 enddef 3499 enddef
3500 3500
3501 def Test_strgetchar() 3501 def Test_strgetchar()
3502 CheckDefAndScriptFailure2(['strgetchar(1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3502 CheckDefAndScriptFailure(['strgetchar(1, 1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3503 CheckDefAndScriptFailure2(['strgetchar("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3503 CheckDefAndScriptFailure(['strgetchar("a", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3504 strgetchar('', 0)->assert_equal(-1) 3504 strgetchar('', 0)->assert_equal(-1)
3505 strgetchar('', 1)->assert_equal(-1) 3505 strgetchar('', 1)->assert_equal(-1)
3506 enddef 3506 enddef
3507 3507
3508 def Test_stridx() 3508 def Test_stridx()
3509 CheckDefAndScriptFailure2(['stridx([1], "b")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') 3509 CheckDefAndScriptFailure(['stridx([1], "b")'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
3510 CheckDefAndScriptFailure2(['stridx("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 2') 3510 CheckDefAndScriptFailure(['stridx("a", {})'], ['E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 2'])
3511 CheckDefAndScriptFailure2(['stridx("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3511 CheckDefAndScriptFailure(['stridx("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3512 stridx('', '')->assert_equal(0) 3512 stridx('', '')->assert_equal(0)
3513 stridx('', 'a')->assert_equal(-1) 3513 stridx('', 'a')->assert_equal(-1)
3514 stridx('a', '')->assert_equal(0) 3514 stridx('a', '')->assert_equal(0)
3515 enddef 3515 enddef
3516 3516
3517 def Test_strlen() 3517 def Test_strlen()
3518 CheckDefAndScriptFailure2(['strlen([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 3518 CheckDefAndScriptFailure(['strlen([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
3519 "abc"->strlen()->assert_equal(3) 3519 "abc"->strlen()->assert_equal(3)
3520 strlen(99)->assert_equal(2) 3520 strlen(99)->assert_equal(2)
3521 enddef 3521 enddef
3522 3522
3523 def Test_strpart() 3523 def Test_strpart()
3524 CheckDefAndScriptFailure2(['strpart(1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3524 CheckDefAndScriptFailure(['strpart(1, 2)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3525 CheckDefAndScriptFailure2(['strpart("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3525 CheckDefAndScriptFailure(['strpart("a", "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3526 CheckDefAndScriptFailure2(['strpart("a", 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3526 CheckDefAndScriptFailure(['strpart("a", 1, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3527 CheckDefAndScriptFailure2(['strpart("a", 1, 1, 2)'], 'E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4') 3527 CheckDefAndScriptFailure(['strpart("a", 1, 1, 2)'], ['E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4'])
3528 strpart('', 0)->assert_equal('') 3528 strpart('', 0)->assert_equal('')
3529 enddef 3529 enddef
3530 3530
3531 def Test_strptime() 3531 def Test_strptime()
3532 CheckFunction strptime 3532 CheckFunction strptime
3533 if exists_compiled('*strptime') 3533 if exists_compiled('*strptime')
3534 CheckDefAndScriptFailure2(['strptime(10, "2021")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3534 CheckDefAndScriptFailure(['strptime(10, "2021")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3535 CheckDefAndScriptFailure2(['strptime("%Y", 2021)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3535 CheckDefAndScriptFailure(['strptime("%Y", 2021)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3536 assert_true(strptime('%Y', '2021') != 0) 3536 assert_true(strptime('%Y', '2021') != 0)
3537 assert_true(strptime('%Y', '') == 0) 3537 assert_true(strptime('%Y', '') == 0)
3538 endif 3538 endif
3539 enddef 3539 enddef
3540 3540
3541 def Test_strridx() 3541 def Test_strridx()
3542 CheckDefAndScriptFailure2(['strridx([1], "b")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') 3542 CheckDefAndScriptFailure(['strridx([1], "b")'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
3543 CheckDefAndScriptFailure2(['strridx("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 2') 3543 CheckDefAndScriptFailure(['strridx("a", {})'], ['E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 2'])
3544 CheckDefAndScriptFailure2(['strridx("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3544 CheckDefAndScriptFailure(['strridx("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3545 strridx('', '')->assert_equal(0) 3545 strridx('', '')->assert_equal(0)
3546 strridx('', 'a')->assert_equal(-1) 3546 strridx('', 'a')->assert_equal(-1)
3547 strridx('a', '')->assert_equal(1) 3547 strridx('a', '')->assert_equal(1)
3548 enddef 3548 enddef
3549 3549
3550 def Test_strtrans() 3550 def Test_strtrans()
3551 CheckDefAndScriptFailure2(['strtrans(20)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3551 CheckDefAndScriptFailure(['strtrans(20)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3552 assert_equal('abc', strtrans('abc')) 3552 assert_equal('abc', strtrans('abc'))
3553 strtrans('')->assert_equal('') 3553 strtrans('')->assert_equal('')
3554 enddef 3554 enddef
3555 3555
3556 def Test_strwidth() 3556 def Test_strwidth()
3557 CheckDefAndScriptFailure2(['strwidth(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3557 CheckDefAndScriptFailure(['strwidth(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3558 assert_equal(4, strwidth('abcd')) 3558 assert_equal(4, strwidth('abcd'))
3559 strwidth('')->assert_equal(0) 3559 strwidth('')->assert_equal(0)
3560 enddef 3560 enddef
3561 3561
3562 def Test_submatch() 3562 def Test_submatch()
3563 var pat = 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)' 3563 var pat = 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'
3564 var Rep = () => range(10)->mapnew((_, v) => submatch(v, true))->string() 3564 var Rep = () => range(10)->mapnew((_, v) => submatch(v, true))->string()
3565 var actual = substitute('A123456789', pat, Rep, '') 3565 var actual = substitute('A123456789', pat, Rep, '')
3566 var expected = "[['A123456789'], ['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9']]" 3566 var expected = "[['A123456789'], ['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9']]"
3567 actual->assert_equal(expected) 3567 actual->assert_equal(expected)
3568 CheckDefAndScriptFailure2(['submatch("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3568 CheckDefAndScriptFailure(['submatch("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3569 CheckDefAndScriptFailure2(['submatch(1, "a")'], 'E1013: Argument 2: type mismatch, expected bool but got string', 'E1212: Bool required for argument 2') 3569 CheckDefAndScriptFailure(['submatch(1, "a")'], ['E1013: Argument 2: type mismatch, expected bool but got string', 'E1212: Bool required for argument 2'])
3570 enddef 3570 enddef
3571 3571
3572 def Test_substitute() 3572 def Test_substitute()
3573 var res = substitute('A1234', '\d', 'X', '') 3573 var res = substitute('A1234', '\d', 'X', '')
3574 assert_equal('AX234', res) 3574 assert_equal('AX234', res)
3575 3575
3576 if has('job') 3576 if has('job')
3577 assert_fails('"text"->substitute(".*", () => test_null_job(), "")', 'E908: using an invalid value as a String: job') 3577 assert_fails('"text"->substitute(".*", () => test_null_job(), "")', 'E908: using an invalid value as a String: job')
3578 assert_fails('"text"->substitute(".*", () => test_null_channel(), "")', 'E908: using an invalid value as a String: channel') 3578 assert_fails('"text"->substitute(".*", () => test_null_channel(), "")', 'E908: using an invalid value as a String: channel')
3579 endif 3579 endif
3580 CheckDefAndScriptFailure2(['substitute(1, "b", "1", "d")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3580 CheckDefAndScriptFailure(['substitute(1, "b", "1", "d")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3581 CheckDefAndScriptFailure2(['substitute("a", 2, "1", "d")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3581 CheckDefAndScriptFailure(['substitute("a", 2, "1", "d")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3582 CheckDefAndScriptFailure2(['substitute("a", "b", "1", 4)'], 'E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4') 3582 CheckDefAndScriptFailure(['substitute("a", "b", "1", 4)'], ['E1013: Argument 4: type mismatch, expected string but got number', 'E1174: String required for argument 4'])
3583 substitute('', '', '', '')->assert_equal('') 3583 substitute('', '', '', '')->assert_equal('')
3584 enddef 3584 enddef
3585 3585
3586 def Test_swapinfo() 3586 def Test_swapinfo()
3587 CheckDefAndScriptFailure2(['swapinfo({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1') 3587 CheckDefAndScriptFailure(['swapinfo({})'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 1'])
3588 call swapinfo('x')->assert_equal({error: 'Cannot open file'}) 3588 call swapinfo('x')->assert_equal({error: 'Cannot open file'})
3589 call swapinfo('')->assert_equal({error: 'Cannot open file'}) 3589 call swapinfo('')->assert_equal({error: 'Cannot open file'})
3590 enddef 3590 enddef
3591 3591
3592 def Test_swapname() 3592 def Test_swapname()
3593 CheckDefAndScriptFailure2(['swapname([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 3593 CheckDefAndScriptFailure(['swapname([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
3594 assert_fails('swapname("NonExistingBuf")', 'E94:') 3594 assert_fails('swapname("NonExistingBuf")', 'E94:')
3595 enddef 3595 enddef
3596 3596
3597 def Test_synID() 3597 def Test_synID()
3598 new 3598 new
3599 setline(1, "text") 3599 setline(1, "text")
3600 synID(1, 1, true)->assert_equal(0) 3600 synID(1, 1, true)->assert_equal(0)
3601 bwipe! 3601 bwipe!
3602 CheckDefAndScriptFailure2(['synID(0z10, 1, true)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1') 3602 CheckDefAndScriptFailure(['synID(0z10, 1, true)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1'])
3603 CheckDefAndScriptFailure2(['synID("a", true, false)'], 'E1013: Argument 2: type mismatch, expected number but got bool', 'E1210: Number required for argument 2') 3603 CheckDefAndScriptFailure(['synID("a", true, false)'], ['E1013: Argument 2: type mismatch, expected number but got bool', 'E1210: Number required for argument 2'])
3604 CheckDefAndScriptFailure2(['synID(1, 1, 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') 3604 CheckDefAndScriptFailure(['synID(1, 1, 2)'], ['E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3'])
3605 CheckDefExecAndScriptFailure(['synID("", 10, true)'], 'E1209: Invalid value for a line number') 3605 CheckDefExecAndScriptFailure(['synID("", 10, true)'], 'E1209: Invalid value for a line number')
3606 enddef 3606 enddef
3607 3607
3608 def Test_synIDattr() 3608 def Test_synIDattr()
3609 CheckDefAndScriptFailure2(['synIDattr("a", "b")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3609 CheckDefAndScriptFailure(['synIDattr("a", "b")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3610 CheckDefAndScriptFailure2(['synIDattr(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3610 CheckDefAndScriptFailure(['synIDattr(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3611 CheckDefAndScriptFailure2(['synIDattr(1, "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 3611 CheckDefAndScriptFailure(['synIDattr(1, "b", 3)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
3612 synIDattr(1, '', '')->assert_equal('') 3612 synIDattr(1, '', '')->assert_equal('')
3613 enddef 3613 enddef
3614 3614
3615 def Test_synIDtrans() 3615 def Test_synIDtrans()
3616 CheckDefAndScriptFailure2(['synIDtrans("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3616 CheckDefAndScriptFailure(['synIDtrans("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3617 enddef 3617 enddef
3618 3618
3619 def Test_synconcealed() 3619 def Test_synconcealed()
3620 CheckDefAndScriptFailure2(['synconcealed(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1') 3620 CheckDefAndScriptFailure(['synconcealed(0z10, 1)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1'])
3621 CheckDefAndScriptFailure2(['synconcealed(1, "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3621 CheckDefAndScriptFailure(['synconcealed(1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3622 if has('conceal') 3622 if has('conceal')
3623 CheckDefExecAndScriptFailure(['synconcealed("", 4)'], 'E1209: Invalid value for a line number') 3623 CheckDefExecAndScriptFailure(['synconcealed("", 4)'], 'E1209: Invalid value for a line number')
3624 endif 3624 endif
3625 enddef 3625 enddef
3626 3626
3627 def Test_synstack() 3627 def Test_synstack()
3628 CheckDefAndScriptFailure2(['synstack(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1') 3628 CheckDefAndScriptFailure(['synstack(0z10, 1)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1'])
3629 CheckDefAndScriptFailure2(['synstack(1, "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3629 CheckDefAndScriptFailure(['synstack(1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3630 CheckDefExecAndScriptFailure(['synstack("", 4)'], 'E1209: Invalid value for a line number') 3630 CheckDefExecAndScriptFailure(['synstack("", 4)'], 'E1209: Invalid value for a line number')
3631 enddef 3631 enddef
3632 3632
3633 def Test_system() 3633 def Test_system()
3634 CheckDefAndScriptFailure2(['system(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3634 CheckDefAndScriptFailure(['system(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3635 CheckDefAndScriptFailure2(['system("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1224: String, Number or List required for argument 2') 3635 CheckDefAndScriptFailure(['system("a", {})'], ['E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1224: String, Number or List required for argument 2'])
3636 assert_equal("123\n", system('echo 123')) 3636 assert_equal("123\n", system('echo 123'))
3637 enddef 3637 enddef
3638 3638
3639 def Test_systemlist() 3639 def Test_systemlist()
3640 CheckDefAndScriptFailure2(['systemlist(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3640 CheckDefAndScriptFailure(['systemlist(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3641 CheckDefAndScriptFailure2(['systemlist("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1224: String, Number or List required for argument 2') 3641 CheckDefAndScriptFailure(['systemlist("a", {})'], ['E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1224: String, Number or List required for argument 2'])
3642 if has('win32') 3642 if has('win32')
3643 call assert_equal(["123\r"], systemlist('echo 123')) 3643 call assert_equal(["123\r"], systemlist('echo 123'))
3644 else 3644 else
3645 call assert_equal(['123'], systemlist('echo 123')) 3645 call assert_equal(['123'], systemlist('echo 123'))
3646 endif 3646 endif
3647 enddef 3647 enddef
3648 3648
3649 def Test_tabpagebuflist() 3649 def Test_tabpagebuflist()
3650 CheckDefAndScriptFailure2(['tabpagebuflist("t")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3650 CheckDefAndScriptFailure(['tabpagebuflist("t")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3651 assert_equal([bufnr('')], tabpagebuflist()) 3651 assert_equal([bufnr('')], tabpagebuflist())
3652 assert_equal([bufnr('')], tabpagebuflist(1)) 3652 assert_equal([bufnr('')], tabpagebuflist(1))
3653 enddef 3653 enddef
3654 3654
3655 def Test_tabpagenr() 3655 def Test_tabpagenr()
3656 CheckDefAndScriptFailure2(['tabpagenr(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3656 CheckDefAndScriptFailure(['tabpagenr(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3657 CheckDefExecAndScriptFailure(['tabpagenr("")'], 'E15: Invalid expression') 3657 CheckDefExecAndScriptFailure(['tabpagenr("")'], 'E15: Invalid expression')
3658 assert_equal(1, tabpagenr('$')) 3658 assert_equal(1, tabpagenr('$'))
3659 assert_equal(1, tabpagenr()) 3659 assert_equal(1, tabpagenr())
3660 enddef 3660 enddef
3661 3661
3662 def Test_tabpagewinnr() 3662 def Test_tabpagewinnr()
3663 CheckDefAndScriptFailure2(['tabpagewinnr("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3663 CheckDefAndScriptFailure(['tabpagewinnr("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3664 CheckDefAndScriptFailure2(['tabpagewinnr(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3664 CheckDefAndScriptFailure(['tabpagewinnr(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3665 CheckDefExecAndScriptFailure(['tabpagewinnr(1, "")'], 'E15: Invalid expression') 3665 CheckDefExecAndScriptFailure(['tabpagewinnr(1, "")'], 'E15: Invalid expression')
3666 enddef 3666 enddef
3667 3667
3668 def Test_taglist() 3668 def Test_taglist()
3669 CheckDefAndScriptFailure2(['taglist([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1') 3669 CheckDefAndScriptFailure(['taglist([1])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1'])
3670 CheckDefAndScriptFailure2(['taglist("a", [2])'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2') 3670 CheckDefAndScriptFailure(['taglist("a", [2])'], ['E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1174: String required for argument 2'])
3671 taglist('')->assert_equal(0) 3671 taglist('')->assert_equal(0)
3672 taglist('', '')->assert_equal(0) 3672 taglist('', '')->assert_equal(0)
3673 enddef 3673 enddef
3674 3674
3675 def Test_term_dumpload() 3675 def Test_term_dumpload()
3676 CheckRunVimInTerminal 3676 CheckRunVimInTerminal
3677 CheckDefAndScriptFailure2(['term_dumpload({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 3677 CheckDefAndScriptFailure(['term_dumpload({"a": 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
3678 CheckDefAndScriptFailure2(['term_dumpload({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1') 3678 CheckDefAndScriptFailure(['term_dumpload({"a": 10}, "b")'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1'])
3679 CheckDefAndScriptFailure2(['term_dumpload("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2') 3679 CheckDefAndScriptFailure(['term_dumpload("a", ["b"])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2'])
3680 CheckDefExecAndScriptFailure(['term_dumpload("")'], 'E485: Can''t read file') 3680 CheckDefExecAndScriptFailure(['term_dumpload("")'], 'E485: Can''t read file')
3681 enddef 3681 enddef
3682 3682
3683 def Test_term_dumpdiff() 3683 def Test_term_dumpdiff()
3684 CheckRunVimInTerminal 3684 CheckRunVimInTerminal
3685 CheckDefAndScriptFailure2(['term_dumpdiff(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3685 CheckDefAndScriptFailure(['term_dumpdiff(1, "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3686 CheckDefAndScriptFailure2(['term_dumpdiff("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3686 CheckDefAndScriptFailure(['term_dumpdiff("a", 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3687 CheckDefAndScriptFailure2(['term_dumpdiff("a", "b", [1])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 3687 CheckDefAndScriptFailure(['term_dumpdiff("a", "b", [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
3688 CheckDefExecAndScriptFailure(['term_dumpdiff("", "")'], 'E485: Can''t read file') 3688 CheckDefExecAndScriptFailure(['term_dumpdiff("", "")'], 'E485: Can''t read file')
3689 enddef 3689 enddef
3690 3690
3691 def Test_term_dumpwrite() 3691 def Test_term_dumpwrite()
3692 CheckRunVimInTerminal 3692 CheckRunVimInTerminal
3693 CheckDefAndScriptFailure2(['term_dumpwrite(true, "b")'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 3693 CheckDefAndScriptFailure(['term_dumpwrite(true, "b")'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
3694 CheckDefAndScriptFailure2(['term_dumpwrite(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3694 CheckDefAndScriptFailure(['term_dumpwrite(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3695 CheckDefAndScriptFailure2(['term_dumpwrite("a", "b", [1])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 3695 CheckDefAndScriptFailure(['term_dumpwrite("a", "b", [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
3696 enddef 3696 enddef
3697 3697
3698 def Test_term_getaltscreen() 3698 def Test_term_getaltscreen()
3699 CheckRunVimInTerminal 3699 CheckRunVimInTerminal
3700 CheckDefAndScriptFailure2(['term_getaltscreen(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') 3700 CheckDefAndScriptFailure(['term_getaltscreen(true)'], ['E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1'])
3701 enddef 3701 enddef
3702 3702
3703 def Test_term_getansicolors() 3703 def Test_term_getansicolors()
3704 CheckRunVimInTerminal 3704 CheckRunVimInTerminal
3705 CheckFeature termguicolors 3705 CheckFeature termguicolors
3706 CheckDefAndScriptFailure2(['term_getansicolors(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1220: String or Number required for argument 1') 3706 CheckDefAndScriptFailure(['term_getansicolors(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1220: String or Number required for argument 1'])
3707 enddef 3707 enddef
3708 3708
3709 def Test_term_getattr() 3709 def Test_term_getattr()
3710 CheckRunVimInTerminal 3710 CheckRunVimInTerminal
3711 CheckDefAndScriptFailure2(['term_getattr("x", "a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3711 CheckDefAndScriptFailure(['term_getattr("x", "a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3712 CheckDefAndScriptFailure2(['term_getattr(1, 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3712 CheckDefAndScriptFailure(['term_getattr(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3713 enddef 3713 enddef
3714 3714
3715 def Test_term_getcursor() 3715 def Test_term_getcursor()
3716 CheckRunVimInTerminal 3716 CheckRunVimInTerminal
3717 CheckDefAndScriptFailure2(['term_getcursor({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1220: String or Number required for argument 1') 3717 CheckDefAndScriptFailure(['term_getcursor({"a": 10})'], ['E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1220: String or Number required for argument 1'])
3718 enddef 3718 enddef
3719 3719
3720 def Test_term_getjob() 3720 def Test_term_getjob()
3721 CheckRunVimInTerminal 3721 CheckRunVimInTerminal
3722 CheckDefAndScriptFailure2(['term_getjob(0z10)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1') 3722 CheckDefAndScriptFailure(['term_getjob(0z10)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1'])
3723 enddef 3723 enddef
3724 3724
3725 def Test_term_getline() 3725 def Test_term_getline()
3726 CheckRunVimInTerminal 3726 CheckRunVimInTerminal
3727 CheckDefAndScriptFailure2(['term_getline(1.1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1') 3727 CheckDefAndScriptFailure(['term_getline(1.1, 1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1'])
3728 CheckDefAndScriptFailure2(['term_getline(1, 1.1)'], 'E1013: Argument 2: type mismatch, expected string but got float', 'E1220: String or Number required for argument 2') 3728 CheckDefAndScriptFailure(['term_getline(1, 1.1)'], ['E1013: Argument 2: type mismatch, expected string but got float', 'E1220: String or Number required for argument 2'])
3729 enddef 3729 enddef
3730 3730
3731 def Test_term_getscrolled() 3731 def Test_term_getscrolled()
3732 CheckRunVimInTerminal 3732 CheckRunVimInTerminal
3733 CheckDefAndScriptFailure2(['term_getscrolled(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1') 3733 CheckDefAndScriptFailure(['term_getscrolled(1.1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1'])
3734 enddef 3734 enddef
3735 3735
3736 def Test_term_getsize() 3736 def Test_term_getsize()
3737 CheckRunVimInTerminal 3737 CheckRunVimInTerminal
3738 CheckDefAndScriptFailure2(['term_getsize(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1') 3738 CheckDefAndScriptFailure(['term_getsize(1.1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1'])
3739 enddef 3739 enddef
3740 3740
3741 def Test_term_getstatus() 3741 def Test_term_getstatus()
3742 CheckRunVimInTerminal 3742 CheckRunVimInTerminal
3743 CheckDefAndScriptFailure2(['term_getstatus(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1') 3743 CheckDefAndScriptFailure(['term_getstatus(1.1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1'])
3744 enddef 3744 enddef
3745 3745
3746 def Test_term_gettitle() 3746 def Test_term_gettitle()
3747 CheckRunVimInTerminal 3747 CheckRunVimInTerminal
3748 CheckDefAndScriptFailure2(['term_gettitle(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1') 3748 CheckDefAndScriptFailure(['term_gettitle(1.1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1'])
3749 enddef 3749 enddef
3750 3750
3751 def Test_term_gettty() 3751 def Test_term_gettty()
3752 if !has('terminal') 3752 if !has('terminal')
3753 CheckFeature terminal 3753 CheckFeature terminal
3754 else 3754 else
3755 var buf = Run_shell_in_terminal({}) 3755 var buf = Run_shell_in_terminal({})
3756 term_gettty(buf, true)->assert_notequal('') 3756 term_gettty(buf, true)->assert_notequal('')
3757 StopShellInTerminal(buf) 3757 StopShellInTerminal(buf)
3758 endif 3758 endif
3759 CheckDefAndScriptFailure2(['term_gettty([1])'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') 3759 CheckDefAndScriptFailure(['term_gettty([1])'], ['E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1'])
3760 CheckDefAndScriptFailure2(['term_gettty(1, 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') 3760 CheckDefAndScriptFailure(['term_gettty(1, 2)'], ['E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2'])
3761 enddef 3761 enddef
3762 3762
3763 def Test_term_scrape() 3763 def Test_term_scrape()
3764 CheckRunVimInTerminal 3764 CheckRunVimInTerminal
3765 CheckDefAndScriptFailure2(['term_scrape(1.1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1') 3765 CheckDefAndScriptFailure(['term_scrape(1.1, 1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1'])
3766 CheckDefAndScriptFailure2(['term_scrape(1, 1.1)'], 'E1013: Argument 2: type mismatch, expected string but got float', 'E1220: String or Number required for argument 2') 3766 CheckDefAndScriptFailure(['term_scrape(1, 1.1)'], ['E1013: Argument 2: type mismatch, expected string but got float', 'E1220: String or Number required for argument 2'])
3767 enddef 3767 enddef
3768 3768
3769 def Test_term_sendkeys() 3769 def Test_term_sendkeys()
3770 CheckRunVimInTerminal 3770 CheckRunVimInTerminal
3771 CheckDefAndScriptFailure2(['term_sendkeys([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 3771 CheckDefAndScriptFailure(['term_sendkeys([], "p")'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
3772 CheckDefAndScriptFailure2(['term_sendkeys(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') 3772 CheckDefAndScriptFailure(['term_sendkeys(1, [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2'])
3773 enddef 3773 enddef
3774 3774
3775 def Test_term_setansicolors() 3775 def Test_term_setansicolors()
3776 CheckRunVimInTerminal 3776 CheckRunVimInTerminal
3777 3777
3778 if has('termguicolors') || has('gui') 3778 if has('termguicolors') || has('gui')
3779 CheckDefAndScriptFailure2(['term_setansicolors([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 3779 CheckDefAndScriptFailure(['term_setansicolors([], "p")'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
3780 CheckDefAndScriptFailure2(['term_setansicolors(10, {})'], 'E1013: Argument 2: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 2') 3780 CheckDefAndScriptFailure(['term_setansicolors(10, {})'], ['E1013: Argument 2: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 2'])
3781 else 3781 else
3782 throw 'Skipped: Only works with termguicolors or gui feature' 3782 throw 'Skipped: Only works with termguicolors or gui feature'
3783 endif 3783 endif
3784 enddef 3784 enddef
3785 3785
3786 def Test_term_setapi() 3786 def Test_term_setapi()
3787 CheckRunVimInTerminal 3787 CheckRunVimInTerminal
3788 CheckDefAndScriptFailure2(['term_setapi([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 3788 CheckDefAndScriptFailure(['term_setapi([], "p")'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
3789 CheckDefAndScriptFailure2(['term_setapi(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') 3789 CheckDefAndScriptFailure(['term_setapi(1, [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2'])
3790 enddef 3790 enddef
3791 3791
3792 def Test_term_setkill() 3792 def Test_term_setkill()
3793 CheckRunVimInTerminal 3793 CheckRunVimInTerminal
3794 CheckDefAndScriptFailure2(['term_setkill([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 3794 CheckDefAndScriptFailure(['term_setkill([], "p")'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
3795 CheckDefAndScriptFailure2(['term_setkill(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') 3795 CheckDefAndScriptFailure(['term_setkill(1, [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2'])
3796 enddef 3796 enddef
3797 3797
3798 def Test_term_setrestore() 3798 def Test_term_setrestore()
3799 CheckRunVimInTerminal 3799 CheckRunVimInTerminal
3800 CheckDefAndScriptFailure2(['term_setrestore([], "p")'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') 3800 CheckDefAndScriptFailure(['term_setrestore([], "p")'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1'])
3801 CheckDefAndScriptFailure2(['term_setrestore(1, [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2') 3801 CheckDefAndScriptFailure(['term_setrestore(1, [])'], ['E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 2'])
3802 enddef 3802 enddef
3803 3803
3804 def Test_term_setsize() 3804 def Test_term_setsize()
3805 CheckRunVimInTerminal 3805 CheckRunVimInTerminal
3806 CheckDefAndScriptFailure2(['term_setsize(1.1, 2, 3)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1') 3806 CheckDefAndScriptFailure(['term_setsize(1.1, 2, 3)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1220: String or Number required for argument 1'])
3807 CheckDefAndScriptFailure2(['term_setsize(1, "2", 3)'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3807 CheckDefAndScriptFailure(['term_setsize(1, "2", 3)'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3808 CheckDefAndScriptFailure2(['term_setsize(1, 2, "3")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3808 CheckDefAndScriptFailure(['term_setsize(1, 2, "3")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3809 enddef 3809 enddef
3810 3810
3811 def Test_term_start() 3811 def Test_term_start()
3812 if !has('terminal') 3812 if !has('terminal')
3813 CheckFeature terminal 3813 CheckFeature terminal
3816 var winnr = winnr() 3816 var winnr = winnr()
3817 term_start(&shell, {curwin: true}) 3817 term_start(&shell, {curwin: true})
3818 winnr()->assert_equal(winnr) 3818 winnr()->assert_equal(winnr)
3819 bwipe! 3819 bwipe!
3820 endif 3820 endif
3821 CheckDefAndScriptFailure2(['term_start({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1222: String or List required for argument 1') 3821 CheckDefAndScriptFailure(['term_start({})'], ['E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1222: String or List required for argument 1'])
3822 CheckDefAndScriptFailure2(['term_start([], [])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2') 3822 CheckDefAndScriptFailure(['term_start([], [])'], ['E1013: Argument 2: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 2'])
3823 CheckDefAndScriptFailure2(['term_start("", "")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2') 3823 CheckDefAndScriptFailure(['term_start("", "")'], ['E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2'])
3824 CheckDefExecAndScriptFailure(['term_start("")'], 'E474: Invalid argument') 3824 CheckDefExecAndScriptFailure(['term_start("")'], 'E474: Invalid argument')
3825 enddef 3825 enddef
3826 3826
3827 def Test_term_wait() 3827 def Test_term_wait()
3828 CheckRunVimInTerminal 3828 CheckRunVimInTerminal
3829 CheckDefAndScriptFailure2(['term_wait(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1') 3829 CheckDefAndScriptFailure(['term_wait(0z10, 1)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1'])
3830 CheckDefAndScriptFailure2(['term_wait(1, "a")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3830 CheckDefAndScriptFailure(['term_wait(1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3831 enddef 3831 enddef
3832 3832
3833 def Test_test_alloc_fail() 3833 def Test_test_alloc_fail()
3834 CheckDefAndScriptFailure2(['test_alloc_fail("a", 10, 20)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3834 CheckDefAndScriptFailure(['test_alloc_fail("a", 10, 20)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3835 CheckDefAndScriptFailure2(['test_alloc_fail(10, "b", 20)'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3835 CheckDefAndScriptFailure(['test_alloc_fail(10, "b", 20)'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3836 CheckDefAndScriptFailure2(['test_alloc_fail(10, 20, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3836 CheckDefAndScriptFailure(['test_alloc_fail(10, 20, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3837 enddef 3837 enddef
3838 3838
3839 def Test_test_feedinput() 3839 def Test_test_feedinput()
3840 CheckDefAndScriptFailure2(['test_feedinput(test_void())'], 'E1013: Argument 1: type mismatch, expected string but got void', 'E1174: String required for argument 1') 3840 CheckDefAndScriptFailure(['test_feedinput(test_void())'], ['E1013: Argument 1: type mismatch, expected string but got void', 'E1174: String required for argument 1'])
3841 CheckDefAndScriptFailure2(['test_feedinput(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 3841 CheckDefAndScriptFailure(['test_feedinput(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
3842 enddef 3842 enddef
3843 3843
3844 def Test_test_getvalue() 3844 def Test_test_getvalue()
3845 CheckDefAndScriptFailure2(['test_getvalue(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1') 3845 CheckDefAndScriptFailure(['test_getvalue(1.1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1'])
3846 enddef 3846 enddef
3847 3847
3848 def Test_test_gui_drop_files() 3848 def Test_test_gui_drop_files()
3849 CheckGui 3849 CheckGui
3850 CheckDefAndScriptFailure2(['test_gui_drop_files("a", 1, 1, 0)'], 'E1013: Argument 1: type mismatch, expected list<string> but got string', 'E1211: List required for argument 1') 3850 CheckDefAndScriptFailure(['test_gui_drop_files("a", 1, 1, 0)'], ['E1013: Argument 1: type mismatch, expected list<string> but got string', 'E1211: List required for argument 1'])
3851 CheckDefAndScriptFailure2(['test_gui_drop_files(["x"], "", 1, 0)'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3851 CheckDefAndScriptFailure(['test_gui_drop_files(["x"], "", 1, 0)'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3852 CheckDefAndScriptFailure2(['test_gui_drop_files(["x"], 1, "", 0)'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3852 CheckDefAndScriptFailure(['test_gui_drop_files(["x"], 1, "", 0)'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3853 CheckDefAndScriptFailure2(['test_gui_drop_files(["x"], 1, 1, "")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 3853 CheckDefAndScriptFailure(['test_gui_drop_files(["x"], 1, 1, "")'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
3854 enddef 3854 enddef
3855 3855
3856 def Test_test_gui_mouse_event() 3856 def Test_test_gui_mouse_event()
3857 CheckGui 3857 CheckGui
3858 CheckDefAndScriptFailure2(['test_gui_mouse_event(1.1, 1, 1, 1, 1)'], 'E1013: Argument 1: type mismatch, expected number but got float', 'E1210: Number required for argument 1') 3858 CheckDefAndScriptFailure(['test_gui_mouse_event(1.1, 1, 1, 1, 1)'], ['E1013: Argument 1: type mismatch, expected number but got float', 'E1210: Number required for argument 1'])
3859 CheckDefAndScriptFailure2(['test_gui_mouse_event(1, "1", 1, 1, 1)'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3859 CheckDefAndScriptFailure(['test_gui_mouse_event(1, "1", 1, 1, 1)'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3860 CheckDefAndScriptFailure2(['test_gui_mouse_event(1, 1, "1", 1, 1)'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3860 CheckDefAndScriptFailure(['test_gui_mouse_event(1, 1, "1", 1, 1)'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3861 CheckDefAndScriptFailure2(['test_gui_mouse_event(1, 1, 1, "1", 1)'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') 3861 CheckDefAndScriptFailure(['test_gui_mouse_event(1, 1, 1, "1", 1)'], ['E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4'])
3862 CheckDefAndScriptFailure2(['test_gui_mouse_event(1, 1, 1, 1, "1")'], 'E1013: Argument 5: type mismatch, expected number but got string', 'E1210: Number required for argument 5') 3862 CheckDefAndScriptFailure(['test_gui_mouse_event(1, 1, 1, 1, "1")'], ['E1013: Argument 5: type mismatch, expected number but got string', 'E1210: Number required for argument 5'])
3863 enddef 3863 enddef
3864 3864
3865 def Test_test_ignore_error() 3865 def Test_test_ignore_error()
3866 CheckDefAndScriptFailure2(['test_ignore_error([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') 3866 CheckDefAndScriptFailure(['test_ignore_error([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1'])
3867 test_ignore_error('RESET') 3867 test_ignore_error('RESET')
3868 enddef 3868 enddef
3869 3869
3870 def Test_test_option_not_set() 3870 def Test_test_option_not_set()
3871 CheckDefAndScriptFailure2(['test_option_not_set([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') 3871 CheckDefAndScriptFailure(['test_option_not_set([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1'])
3872 enddef 3872 enddef
3873 3873
3874 def Test_test_override() 3874 def Test_test_override()
3875 CheckDefAndScriptFailure2(['test_override(1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3875 CheckDefAndScriptFailure(['test_override(1, 1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3876 CheckDefAndScriptFailure2(['test_override("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3876 CheckDefAndScriptFailure(['test_override("a", "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3877 enddef 3877 enddef
3878 3878
3879 def Test_test_scrollbar() 3879 def Test_test_scrollbar()
3880 CheckGui 3880 CheckGui
3881 CheckDefAndScriptFailure2(['test_scrollbar(1, 2, 3)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3881 CheckDefAndScriptFailure(['test_scrollbar(1, 2, 3)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3882 CheckDefAndScriptFailure2(['test_scrollbar("a", "b", 3)'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3882 CheckDefAndScriptFailure(['test_scrollbar("a", "b", 3)'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3883 CheckDefAndScriptFailure2(['test_scrollbar("a", 2, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3883 CheckDefAndScriptFailure(['test_scrollbar("a", 2, "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3884 enddef 3884 enddef
3885 3885
3886 def Test_test_setmouse() 3886 def Test_test_setmouse()
3887 CheckDefAndScriptFailure2(['test_setmouse("a", 10)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3887 CheckDefAndScriptFailure(['test_setmouse("a", 10)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3888 CheckDefAndScriptFailure2(['test_setmouse(10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 3888 CheckDefAndScriptFailure(['test_setmouse(10, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
3889 enddef 3889 enddef
3890 3890
3891 def Test_test_settime() 3891 def Test_test_settime()
3892 CheckDefAndScriptFailure2(['test_settime([1])'], 'E1013: Argument 1: type mismatch, expected number but got list<number>', 'E1210: Number required for argument 1') 3892 CheckDefAndScriptFailure(['test_settime([1])'], ['E1013: Argument 1: type mismatch, expected number but got list<number>', 'E1210: Number required for argument 1'])
3893 enddef 3893 enddef
3894 3894
3895 def Test_test_srand_seed() 3895 def Test_test_srand_seed()
3896 CheckDefAndScriptFailure2(['test_srand_seed([1])'], 'E1013: Argument 1: type mismatch, expected number but got list<number>', 'E1210: Number required for argument 1') 3896 CheckDefAndScriptFailure(['test_srand_seed([1])'], ['E1013: Argument 1: type mismatch, expected number but got list<number>', 'E1210: Number required for argument 1'])
3897 CheckDefAndScriptFailure2(['test_srand_seed("10")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3897 CheckDefAndScriptFailure(['test_srand_seed("10")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3898 enddef 3898 enddef
3899 3899
3900 def Test_timer_info() 3900 def Test_timer_info()
3901 CheckDefAndScriptFailure2(['timer_info("id")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3901 CheckDefAndScriptFailure(['timer_info("id")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3902 assert_equal([], timer_info(100)) 3902 assert_equal([], timer_info(100))
3903 assert_equal([], timer_info()) 3903 assert_equal([], timer_info())
3904 enddef 3904 enddef
3905 3905
3906 def Test_timer_pause() 3906 def Test_timer_pause()
3907 CheckDefAndScriptFailure2(['timer_pause("x", 1)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3907 CheckDefAndScriptFailure(['timer_pause("x", 1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3908 CheckDefAndScriptFailure2(['timer_pause(1, "a")'], 'E1013: Argument 2: type mismatch, expected bool but got string', 'E1212: Bool required for argument 2') 3908 CheckDefAndScriptFailure(['timer_pause(1, "a")'], ['E1013: Argument 2: type mismatch, expected bool but got string', 'E1212: Bool required for argument 2'])
3909 enddef 3909 enddef
3910 3910
3911 def Test_timer_paused() 3911 def Test_timer_paused()
3912 var id = timer_start(50, () => 0) 3912 var id = timer_start(50, () => 0)
3913 timer_pause(id, true) 3913 timer_pause(id, true)
3915 info[0]['paused']->assert_equal(1) 3915 info[0]['paused']->assert_equal(1)
3916 timer_stop(id) 3916 timer_stop(id)
3917 enddef 3917 enddef
3918 3918
3919 def Test_timer_start() 3919 def Test_timer_start()
3920 CheckDefAndScriptFailure2(['timer_start("a", "1")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3920 CheckDefAndScriptFailure(['timer_start("a", "1")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3921 CheckDefAndScriptFailure2(['timer_start(1, "1", [1])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 3921 CheckDefAndScriptFailure(['timer_start(1, "1", [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
3922 enddef 3922 enddef
3923 3923
3924 def Test_timer_stop() 3924 def Test_timer_stop()
3925 CheckDefAndScriptFailure2(['timer_stop("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 3925 CheckDefAndScriptFailure(['timer_stop("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
3926 assert_equal(0, timer_stop(100)) 3926 assert_equal(0, timer_stop(100))
3927 enddef 3927 enddef
3928 3928
3929 def Test_tolower() 3929 def Test_tolower()
3930 CheckDefAndScriptFailure2(['tolower(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3930 CheckDefAndScriptFailure(['tolower(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3931 tolower('')->assert_equal('') 3931 tolower('')->assert_equal('')
3932 enddef 3932 enddef
3933 3933
3934 def Test_toupper() 3934 def Test_toupper()
3935 CheckDefAndScriptFailure2(['toupper(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3935 CheckDefAndScriptFailure(['toupper(1)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3936 toupper('')->assert_equal('') 3936 toupper('')->assert_equal('')
3937 enddef 3937 enddef
3938 3938
3939 def Test_tr() 3939 def Test_tr()
3940 CheckDefAndScriptFailure2(['tr(1, "a", "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3940 CheckDefAndScriptFailure(['tr(1, "a", "b")'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3941 CheckDefAndScriptFailure2(['tr("a", 1, "b")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') 3941 CheckDefAndScriptFailure(['tr("a", 1, "b")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2'])
3942 CheckDefAndScriptFailure2(['tr("a", "a", 1)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 3942 CheckDefAndScriptFailure(['tr("a", "a", 1)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
3943 tr('', '', '')->assert_equal('') 3943 tr('', '', '')->assert_equal('')
3944 tr('ab', '', '')->assert_equal('ab') 3944 tr('ab', '', '')->assert_equal('ab')
3945 assert_fails("tr('ab', 'ab', '')", 'E475:') 3945 assert_fails("tr('ab', 'ab', '')", 'E475:')
3946 assert_fails("tr('ab', '', 'AB')", 'E475:') 3946 assert_fails("tr('ab', '', 'AB')", 'E475:')
3947 enddef 3947 enddef
3948 3948
3949 def Test_trim() 3949 def Test_trim()
3950 CheckDefAndScriptFailure2(['trim(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1') 3950 CheckDefAndScriptFailure(['trim(["a"])'], ['E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1'])
3951 CheckDefAndScriptFailure2(['trim("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected string but got list<string>', 'E1174: String required for argument 2') 3951 CheckDefAndScriptFailure(['trim("a", ["b"])'], ['E1013: Argument 2: type mismatch, expected string but got list<string>', 'E1174: String required for argument 2'])
3952 CheckDefAndScriptFailure2(['trim("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') 3952 CheckDefAndScriptFailure(['trim("a", "b", "c")'], ['E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3'])
3953 trim('')->assert_equal('') 3953 trim('')->assert_equal('')
3954 trim('', '')->assert_equal('') 3954 trim('', '')->assert_equal('')
3955 enddef 3955 enddef
3956 3956
3957 def Test_typename() 3957 def Test_typename()
3968 assert_equal('channel', test_null_channel()->typename()) 3968 assert_equal('channel', test_null_channel()->typename())
3969 endif 3969 endif
3970 enddef 3970 enddef
3971 3971
3972 def Test_undofile() 3972 def Test_undofile()
3973 CheckDefAndScriptFailure2(['undofile(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') 3973 CheckDefAndScriptFailure(['undofile(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
3974 assert_equal('.abc.un~', fnamemodify(undofile('abc'), ':t')) 3974 assert_equal('.abc.un~', fnamemodify(undofile('abc'), ':t'))
3975 undofile('')->assert_equal('') 3975 undofile('')->assert_equal('')
3976 enddef 3976 enddef
3977 3977
3978 def Test_uniq() 3978 def Test_uniq()
3979 CheckDefAndScriptFailure2(['uniq("a")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1') 3979 CheckDefAndScriptFailure(['uniq("a")'], ['E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1'])
3980 CheckDefAndScriptFailure2(['uniq([1], "", [1])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3') 3980 CheckDefAndScriptFailure(['uniq([1], "", [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3'])
3981 enddef 3981 enddef
3982 3982
3983 def Test_values() 3983 def Test_values()
3984 CheckDefAndScriptFailure2(['values([])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1') 3984 CheckDefAndScriptFailure(['values([])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1'])
3985 assert_equal([], {}->values()) 3985 assert_equal([], {}->values())
3986 assert_equal(['sun'], {star: 'sun'}->values()) 3986 assert_equal(['sun'], {star: 'sun'}->values())
3987 enddef 3987 enddef
3988 3988
3989 def Test_virtcol() 3989 def Test_virtcol()
3990 CheckDefAndScriptFailure2(['virtcol(1.1)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1222: String or List required for argument 1') 3990 CheckDefAndScriptFailure(['virtcol(1.1)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1222: String or List required for argument 1'])
3991 CheckDefExecAndScriptFailure(['virtcol("")'], 'E1209: Invalid value for a line number') 3991 CheckDefExecAndScriptFailure(['virtcol("")'], 'E1209: Invalid value for a line number')
3992 new 3992 new
3993 setline(1, ['abcdefgh']) 3993 setline(1, ['abcdefgh'])
3994 cursor(1, 4) 3994 cursor(1, 4)
3995 assert_equal(4, virtcol('.')) 3995 assert_equal(4, virtcol('.'))
3998 assert_equal(0, virtcol([10, '$'])) 3998 assert_equal(0, virtcol([10, '$']))
3999 bw! 3999 bw!
4000 enddef 4000 enddef
4001 4001
4002 def Test_visualmode() 4002 def Test_visualmode()
4003 CheckDefAndScriptFailure2(['visualmode("1")'], 'E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1') 4003 CheckDefAndScriptFailure(['visualmode("1")'], ['E1013: Argument 1: type mismatch, expected bool but got string', 'E1212: Bool required for argument 1'])
4004 CheckDefAndScriptFailure2(['visualmode(2)'], 'E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1') 4004 CheckDefAndScriptFailure(['visualmode(2)'], ['E1013: Argument 1: type mismatch, expected bool but got number', 'E1212: Bool required for argument 1'])
4005 enddef 4005 enddef
4006 4006
4007 def Test_win_execute() 4007 def Test_win_execute()
4008 assert_equal("\n" .. winnr(), win_execute(win_getid(), 'echo winnr()')) 4008 assert_equal("\n" .. winnr(), win_execute(win_getid(), 'echo winnr()'))
4009 assert_equal("\n" .. winnr(), 'echo winnr()'->win_execute(win_getid())) 4009 assert_equal("\n" .. winnr(), 'echo winnr()'->win_execute(win_getid()))
4010 assert_equal("\n" .. winnr(), win_execute(win_getid(), 'echo winnr()', 'silent')) 4010 assert_equal("\n" .. winnr(), win_execute(win_getid(), 'echo winnr()', 'silent'))
4011 assert_equal('', win_execute(342343, 'echo winnr()')) 4011 assert_equal('', win_execute(342343, 'echo winnr()'))
4012 CheckDefAndScriptFailure2(['win_execute("a", "b", "c")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4012 CheckDefAndScriptFailure(['win_execute("a", "b", "c")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4013 CheckDefAndScriptFailure2(['win_execute(1, 2, "c")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1222: String or List required for argument 2') 4013 CheckDefAndScriptFailure(['win_execute(1, 2, "c")'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1222: String or List required for argument 2'])
4014 CheckDefAndScriptFailure2(['win_execute(1, "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') 4014 CheckDefAndScriptFailure(['win_execute(1, "b", 3)'], ['E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3'])
4015 enddef 4015 enddef
4016 4016
4017 def Test_win_findbuf() 4017 def Test_win_findbuf()
4018 CheckDefAndScriptFailure2(['win_findbuf("a")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4018 CheckDefAndScriptFailure(['win_findbuf("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4019 assert_equal([], win_findbuf(1000)) 4019 assert_equal([], win_findbuf(1000))
4020 assert_equal([win_getid()], win_findbuf(bufnr(''))) 4020 assert_equal([win_getid()], win_findbuf(bufnr('')))
4021 enddef 4021 enddef
4022 4022
4023 def Test_win_getid() 4023 def Test_win_getid()
4024 CheckDefAndScriptFailure2(['win_getid(".")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4024 CheckDefAndScriptFailure(['win_getid(".")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4025 CheckDefAndScriptFailure2(['win_getid(1, ".")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 4025 CheckDefAndScriptFailure(['win_getid(1, ".")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
4026 assert_equal(win_getid(), win_getid(1, 1)) 4026 assert_equal(win_getid(), win_getid(1, 1))
4027 enddef 4027 enddef
4028 4028
4029 def Test_win_gettype() 4029 def Test_win_gettype()
4030 CheckDefAndScriptFailure2(['win_gettype("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4030 CheckDefAndScriptFailure(['win_gettype("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4031 enddef 4031 enddef
4032 4032
4033 def Test_win_gotoid() 4033 def Test_win_gotoid()
4034 CheckDefAndScriptFailure2(['win_gotoid("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4034 CheckDefAndScriptFailure(['win_gotoid("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4035 enddef 4035 enddef
4036 4036
4037 def Test_win_id2tabwin() 4037 def Test_win_id2tabwin()
4038 CheckDefAndScriptFailure2(['win_id2tabwin("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4038 CheckDefAndScriptFailure(['win_id2tabwin("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4039 enddef 4039 enddef
4040 4040
4041 def Test_win_id2win() 4041 def Test_win_id2win()
4042 CheckDefAndScriptFailure2(['win_id2win("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4042 CheckDefAndScriptFailure(['win_id2win("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4043 enddef 4043 enddef
4044 4044
4045 def Test_win_screenpos() 4045 def Test_win_screenpos()
4046 CheckDefAndScriptFailure2(['win_screenpos("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4046 CheckDefAndScriptFailure(['win_screenpos("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4047 enddef 4047 enddef
4048 4048
4049 def Test_win_splitmove() 4049 def Test_win_splitmove()
4050 split 4050 split
4051 win_splitmove(1, 2, {vertical: true, rightbelow: true}) 4051 win_splitmove(1, 2, {vertical: true, rightbelow: true})
4052 close 4052 close
4053 CheckDefAndScriptFailure2(['win_splitmove("a", 2)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4053 CheckDefAndScriptFailure(['win_splitmove("a", 2)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4054 CheckDefAndScriptFailure2(['win_splitmove(1, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 4054 CheckDefAndScriptFailure(['win_splitmove(1, "b")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
4055 CheckDefAndScriptFailure2(['win_splitmove(1, 2, [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3') 4055 CheckDefAndScriptFailure(['win_splitmove(1, 2, [])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3'])
4056 enddef 4056 enddef
4057 4057
4058 def Test_winbufnr() 4058 def Test_winbufnr()
4059 CheckDefAndScriptFailure2(['winbufnr("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4059 CheckDefAndScriptFailure(['winbufnr("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4060 enddef 4060 enddef
4061 4061
4062 def Test_winheight() 4062 def Test_winheight()
4063 CheckDefAndScriptFailure2(['winheight("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4063 CheckDefAndScriptFailure(['winheight("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4064 enddef 4064 enddef
4065 4065
4066 def Test_winlayout() 4066 def Test_winlayout()
4067 CheckDefAndScriptFailure2(['winlayout("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4067 CheckDefAndScriptFailure(['winlayout("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4068 enddef 4068 enddef
4069 4069
4070 def Test_winnr() 4070 def Test_winnr()
4071 CheckDefAndScriptFailure2(['winnr([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1') 4071 CheckDefAndScriptFailure(['winnr([])'], ['E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1174: String required for argument 1'])
4072 CheckDefExecAndScriptFailure(['winnr("")'], 'E15: Invalid expression') 4072 CheckDefExecAndScriptFailure(['winnr("")'], 'E15: Invalid expression')
4073 assert_equal(1, winnr()) 4073 assert_equal(1, winnr())
4074 assert_equal(1, winnr('$')) 4074 assert_equal(1, winnr('$'))
4075 enddef 4075 enddef
4076 4076
4082 assert_equal(cmd, winrestcmd()) 4082 assert_equal(cmd, winrestcmd())
4083 close 4083 close
4084 enddef 4084 enddef
4085 4085
4086 def Test_winrestview() 4086 def Test_winrestview()
4087 CheckDefAndScriptFailure2(['winrestview([])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1') 4087 CheckDefAndScriptFailure(['winrestview([])'], ['E1013: Argument 1: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 1'])
4088 :%d _ 4088 :%d _
4089 setline(1, 'Hello World') 4089 setline(1, 'Hello World')
4090 winrestview({lnum: 1, col: 6}) 4090 winrestview({lnum: 1, col: 6})
4091 assert_equal([1, 7], [line('.'), col('.')]) 4091 assert_equal([1, 7], [line('.'), col('.')])
4092 enddef 4092 enddef
4099 END 4099 END
4100 CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected list<number> but got dict<number>', 1) 4100 CheckDefAndScriptFailure(lines, 'E1012: Type mismatch; expected list<number> but got dict<number>', 1)
4101 enddef 4101 enddef
4102 4102
4103 def Test_winwidth() 4103 def Test_winwidth()
4104 CheckDefAndScriptFailure2(['winwidth("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4104 CheckDefAndScriptFailure(['winwidth("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4105 enddef 4105 enddef
4106 4106
4107 def Test_xor() 4107 def Test_xor()
4108 CheckDefAndScriptFailure2(['xor("x", 0x2)'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') 4108 CheckDefAndScriptFailure(['xor("x", 0x2)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
4109 CheckDefAndScriptFailure2(['xor(0x1, "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') 4109 CheckDefAndScriptFailure(['xor(0x1, "x")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2'])
4110 enddef 4110 enddef
4111 4111
4112 def Test_writefile() 4112 def Test_writefile()
4113 CheckDefExecAndScriptFailure(['writefile(["a"], "")'], 'E482: Can''t create file <empty>') 4113 CheckDefExecAndScriptFailure(['writefile(["a"], "")'], 'E482: Can''t create file <empty>')
4114 enddef 4114 enddef