vim-patch:8.2.3135: Vim9: builtin function arguments not checked at compile time

Problem:    Vim9: builtin function arguments not checked at compile time.
Solution:   Add more type checks. (Yegappan Lakshmanan, closes vim/vim#8539)

5b73992d8f

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
zeertzjq
2023-05-05 07:02:43 +08:00
parent d79e726212
commit 75119fcc86
10 changed files with 66 additions and 66 deletions

View File

@@ -222,17 +222,17 @@ describe('input()', function()
eq('DEF2', meths.get_var('var'))
end)
it('errors out on invalid inputs', function()
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call input([])'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call input("", [])'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call input("", "", [])'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call input({"prompt": []})'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call input({"default": []})'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call input({"completion": []})'))
eq('Vim(call):E5050: {opts} must be the only argument',
exc_exec('call input({}, "default")'))
@@ -418,17 +418,17 @@ describe('inputdialog()', function()
eq('DEF2', meths.get_var('var'))
end)
it('errors out on invalid inputs', function()
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call inputdialog([])'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call inputdialog("", [])'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call inputdialog("", "", [])'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call inputdialog({"prompt": []})'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call inputdialog({"default": []})'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
exc_exec('call inputdialog({"completion": []})'))
eq('Vim(call):E5050: {opts} must be the only argument',
exc_exec('call inputdialog({}, "default")'))
@@ -512,13 +512,13 @@ describe('confirm()', function()
eq(1, meths.get_var('a'))
end
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
pcall_err(command, 'call confirm([])'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
pcall_err(command, 'call confirm("Are you sure?", [])'))
eq('Vim(call):E745: Using a List as a Number',
pcall_err(command, 'call confirm("Are you sure?", "&Yes\n&No\n", [])'))
eq('Vim(call):E730: using List as a String',
eq('Vim(call):E730: Using a List as a String',
pcall_err(command, 'call confirm("Are you sure?", "&Yes\n&No\n", 0, [])'))
end)