patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Problem: Vim9: finding global function without g: prefix but not finding
global variable is inconsistent.
Solution: Require using g: for a global function. Change the vim9.vim
script into a Vim9 script with exports. Fix that import in legacy
script does not work.
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index ff07916..6baba97 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -4,7 +4,7 @@
source check.vim
source term_util.vim
source screendump.vim
-source vim9.vim
+import './vim9.vim' as v9
" Must be done first, since the alternate buffer must be unset.
func Test_00_bufexists()
@@ -174,7 +174,7 @@
if has('float')
call assert_equal(3, strwidth(1.2))
- call CheckDefAndScriptFailure(['echo strwidth(1.2)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1'])
+ call v9.CheckDefAndScriptFailure(['echo strwidth(1.2)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1'])
endif
set ambiwidth&
@@ -241,7 +241,7 @@
call assert_fails('call str2nr({->2})', 'E729:')
if has('float')
call assert_equal(1, str2nr(1.2))
- call CheckDefAndScriptFailure(['echo str2nr(1.2)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1'])
+ call v9.CheckDefAndScriptFailure(['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
@@ -503,7 +503,7 @@
call assert_fails('call simplify({})', 'E731:')
if has('float')
call assert_equal('1.2', simplify(1.2))
- call CheckDefAndScriptFailure(['echo simplify(1.2)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1'])
+ call v9.CheckDefAndScriptFailure(['echo simplify(1.2)'], ['E1013: Argument 1: type mismatch, expected string but got float', 'E1174: String required for argument 1'])
endif
endfunc
@@ -2265,7 +2265,7 @@
let Time = 'localtime'
call Time()
END
- call CheckScriptFailure(lines, 'E1085:')
+ call v9.CheckScriptFailure(lines, 'E1085:')
endfunc
func Test_char2nr()
@@ -2800,7 +2800,7 @@
vim9script
var s:trim = (x) => " " .. x
END
- call CheckScriptFailure(lines, 'E704:')
+ call v9.CheckScriptFailure(lines, 'E704:')
call assert_fails('call extend(g:, #{foo: { -> "foo" }})', 'E704:')
let g:bar = 123