patch 8.2.3229: Vim9: runtime and compile time type checks are not the same
Problem: Vim9: runtime and compile time type checks are not the same.
Solution: Add more runtime type checks for builtin functions. (Yegappan
Lakshmanan, closes #8646)
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index e0b0314..6f2797c 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -174,8 +174,7 @@
if has('float')
call assert_equal(3, strwidth(1.2))
- call CheckDefFailure(['echo strwidth(1.2)'], 'E1013:')
- call CheckScriptFailure(['vim9script', 'echo strwidth(1.2)'], 'E806:')
+ call CheckDefAndScriptFailure2(['echo strwidth(1.2)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1')
endif
set ambiwidth&
@@ -242,8 +241,7 @@
call assert_fails('call str2nr({->2})', 'E729:')
if has('float')
call assert_equal(1, str2nr(1.2))
- call CheckDefFailure(['echo str2nr(1.2)'], 'E1013:')
- call CheckScriptFailure(['vim9script', 'echo str2nr(1.2)'], 'E806:')
+ call CheckDefAndScriptFailure2(['echo str2nr(1.2)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1')
endif
call assert_fails('call str2nr(10, [])', 'E745:')
endfunc
@@ -505,8 +503,7 @@
call assert_fails('call simplify({})', 'E731:')
if has('float')
call assert_equal('1.2', simplify(1.2))
- call CheckDefFailure(['echo simplify(1.2)'], 'E1013:')
- call CheckScriptFailure(['vim9script', 'echo simplify(1.2)'], 'E806:')
+ call CheckDefAndScriptFailure2(['echo simplify(1.2)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1')
endif
endfunc