diff src/testdir/test_vim9_func.vim @ 27457:4c16acb2525f v8.2.4257

patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent Commit: https://github.com/vim/vim/commit/62aec93bfdb9e1b40d03a6d2e8e9511f8b1bdb2d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 29 21:45:34 2022 +0000 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Jan 2022 23:00:05 +0100
parents 47dbeda35910
children a14c4d3e3260
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -3,7 +3,7 @@
 source check.vim
 source term_util.vim
 source view_util.vim
-source vim9.vim
+import './vim9.vim' as v9
 source screendump.vim
 
 func Test_def_basic()
@@ -30,13 +30,13 @@ def TestCompilingError()
     defcompile
   END
   writefile(lines, 'XTest_compile_error')
-  var buf = RunVimInTerminal('-S XTest_compile_error',
+  var buf = g:RunVimInTerminal('-S XTest_compile_error',
               {rows: 10, wait_for_ruler: 0})
-  WaitForAssert(() => assert_match('Error detected while compiling command line.*Fails.*Variable not found: nothing',
-                     Term_getlines(buf, range(1, 9))))
+  g:WaitForAssert(() => assert_match('Error detected while compiling command line.*Fails.*Variable not found: nothing',
+                     g:Term_getlines(buf, range(1, 9))))
 
   # clean up
-  StopVimInTerminal(buf)
+  g:StopVimInTerminal(buf)
   delete('XTest_compile_error')
 enddef
 
@@ -64,12 +64,12 @@ def TestCompilingErrorInTry()
   lines[1] = 'set rtp=' .. getcwd() .. '/Xdir'
   writefile(lines, 'XTest_compile_error')
 
-  var buf = RunVimInTerminal('-S XTest_compile_error', {rows: 10, wait_for_ruler: 0})
-  WaitForAssert(() => assert_match('Error detected while compiling command line.*function script#OnlyCompiled.*Invalid command: invalid',
-                     Term_getlines(buf, range(1, 9))))
+  var buf = g:RunVimInTerminal('-S XTest_compile_error', {rows: 10, wait_for_ruler: 0})
+  g:WaitForAssert(() => assert_match('Error detected while compiling command line.*function script#OnlyCompiled.*Invalid command: invalid',
+                     g:Term_getlines(buf, range(1, 9))))
 
   # clean up
-  StopVimInTerminal(buf)
+  g:StopVimInTerminal(buf)
   delete('XTest_compile_error')
   delete('Xdir', 'rf')
 enddef
@@ -87,7 +87,7 @@ def Test_compile_error_in_called_functio
       silent! Foo()
       Bar()
   END
-  CheckScriptFailureList(lines, ['E1012:', 'E1191:'])
+  v9.CheckScriptFailureList(lines, ['E1012:', 'E1191:'])
 enddef
 
 def Test_wrong_function_name()
@@ -97,7 +97,7 @@ def Test_wrong_function_name()
         echo 'foo'
       endfunc
   END
-  CheckScriptFailure(lines, 'E128:')
+  v9.CheckScriptFailure(lines, 'E128:')
 
   lines =<< trim END
       vim9script
@@ -105,7 +105,7 @@ def Test_wrong_function_name()
         echo 'foo'
       enddef
   END
-  CheckScriptFailure(lines, 'E128:')
+  v9.CheckScriptFailure(lines, 'E128:')
 enddef
 
 def Test_autoload_name_mismatch()
@@ -126,7 +126,7 @@ def Test_autoload_name_mismatch()
   lines =<< trim END
       call script#Function()
   END
-  CheckScriptFailure(lines, 'E746:', 2)
+  v9.CheckScriptFailure(lines, 'E746:', 2)
 
   &rtp = save_rtp
   delete(dir, 'rf')
@@ -154,7 +154,7 @@ def Test_autoload_names()
 
       assert_equal('no', foobar#var)
   END
-  CheckDefAndScriptSuccess(lines)
+  v9.CheckDefAndScriptSuccess(lines)
 
   &rtp = save_rtp
   delete(dir, 'rf')
@@ -179,7 +179,7 @@ def Test_autoload_error_in_script()
   # The error in the autoload script cannot be checked with assert_fails(), use
   # CheckDefSuccess() instead of CheckDefFailure()
   try
-    CheckDefSuccess(['scripterror#function()'])
+    v9.CheckDefSuccess(['scripterror#function()'])
   catch
     assert_match('E121: Undefined variable: 0', v:exception)
   endtry
@@ -198,7 +198,7 @@ def Test_autoload_error_in_script()
   writefile(lines, dir .. '/scriptcaught.vim')
 
   g:called_function = 'no'
-  CheckDefSuccess(['scriptcaught#function()'])
+  v9.CheckDefSuccess(['scriptcaught#function()'])
   assert_match('E121: Undefined variable: 0', g:caught)
   assert_equal('yes', g:called_function)
 
@@ -206,11 +206,11 @@ def Test_autoload_error_in_script()
   delete(dir, 'rf')
 enddef
 
-def CallRecursive(n: number): number
+def s:CallRecursive(n: number): number
   return CallRecursive(n + 1)
 enddef
 
-def CallMapRecursive(l: list<number>): number
+def s:CallMapRecursive(l: list<number>): number
   return map(l, (_, v) => CallMapRecursive([v]))[0]
 enddef
 
@@ -243,7 +243,7 @@ def Test_endfunc_enddef()
       endfunc
     enddef
   END
-  CheckScriptFailure(lines, 'E1151:', 3)
+  v9.CheckScriptFailure(lines, 'E1151:', 3)
 
   lines =<< trim END
     def Test()
@@ -252,7 +252,7 @@ def Test_endfunc_enddef()
       enddef
     enddef
   END
-  CheckScriptFailure(lines, 'E1152:', 4)
+  v9.CheckScriptFailure(lines, 'E1152:', 4)
 
   lines =<< trim END
     def Ok()
@@ -262,7 +262,7 @@ def Test_endfunc_enddef()
       echo 'hello'
     enddef there
   END
-  CheckScriptFailure(lines, 'E1173: Text found after enddef: there', 6)
+  v9.CheckScriptFailure(lines, 'E1173: Text found after enddef: there', 6)
 enddef
 
 def Test_missing_endfunc_enddef()
@@ -272,7 +272,7 @@ def Test_missing_endfunc_enddef()
       echo 'test'
     endef
   END
-  CheckScriptFailure(lines, 'E1057:', 2)
+  v9.CheckScriptFailure(lines, 'E1057:', 2)
 
   lines =<< trim END
     vim9script
@@ -280,7 +280,7 @@ def Test_missing_endfunc_enddef()
       echo 'test'
     enfffunc
   END
-  CheckScriptFailure(lines, 'E126:', 2)
+  v9.CheckScriptFailure(lines, 'E126:', 2)
 enddef
 
 def Test_white_space_before_paren()
@@ -290,7 +290,7 @@ def Test_white_space_before_paren()
       echo 'test'
     enddef
   END
-  CheckScriptFailure(lines, 'E1068:', 2)
+  v9.CheckScriptFailure(lines, 'E1068:', 2)
 
   lines =<< trim END
     vim9script
@@ -298,21 +298,21 @@ def Test_white_space_before_paren()
       echo 'test'
     endfunc
   END
-  CheckScriptFailure(lines, 'E1068:', 2)
+  v9.CheckScriptFailure(lines, 'E1068:', 2)
 
   lines =<< trim END
     def Test ()
       echo 'test'
     enddef
   END
-  CheckScriptFailure(lines, 'E1068:', 1)
+  v9.CheckScriptFailure(lines, 'E1068:', 1)
 
   lines =<< trim END
     func Test ()
       echo 'test'
     endfunc
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_enddef_dict_key()
@@ -338,8 +338,8 @@ def ReturnGlobal(): number
 enddef
 
 def Test_return_something()
-  ReturnString()->assert_equal('string')
-  ReturnNumber()->assert_equal(123)
+  g:ReturnString()->assert_equal('string')
+  g:ReturnNumber()->assert_equal(123)
   assert_fails('ReturnGlobal()', 'E1012: Type mismatch; expected number but got string', '', 1, 'ReturnGlobal')
 
   var lines =<< trim END
@@ -354,7 +354,7 @@ def Test_return_something()
       enddef
       defcompile
   END
-  CheckScriptFailure(lines, 'E1096:')
+  v9.CheckScriptFailure(lines, 'E1096:')
 enddef
 
 def Test_check_argument_type()
@@ -370,25 +370,25 @@ def Test_check_argument_type()
       disass Func
       Func()
   END
-  CheckScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected number but got bool', 2)
+  v9.CheckScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected number but got bool', 2)
 enddef
 
 def Test_missing_return()
-  CheckDefFailure(['def Missing(): number',
+  v9.CheckDefFailure(['def Missing(): number',
                    '  if g:cond',
                    '    echo "no return"',
                    '  else',
                    '    return 0',
                    '  endif'
                    'enddef'], 'E1027:')
-  CheckDefFailure(['def Missing(): number',
+  v9.CheckDefFailure(['def Missing(): number',
                    '  if g:cond',
                    '    return 1',
                    '  else',
                    '    echo "no return"',
                    '  endif'
                    'enddef'], 'E1027:')
-  CheckDefFailure(['def Missing(): number',
+  v9.CheckDefFailure(['def Missing(): number',
                    '  if g:cond',
                    '    return 1',
                    '  else',
@@ -409,7 +409,7 @@ def Test_return_bool()
       enddef
       defcompile
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 let s:nothing = 0
@@ -422,7 +422,7 @@ def ReturnNothing()
 enddef
 
 def Test_return_nothing()
-  ReturnNothing()
+  g:ReturnNothing()
   s:nothing->assert_equal(1)
 enddef
 
@@ -434,7 +434,7 @@ def Test_return_invalid()
     enddef
     defcompile
   END
-  CheckScriptFailure(lines, 'E1010:', 2)
+  v9.CheckScriptFailure(lines, 'E1010:', 2)
 
   lines =<< trim END
       vim9script
@@ -448,8 +448,8 @@ def Test_return_invalid()
       echo Test(Inc)
   END
   # doing this twice was leaking memory
-  CheckScriptFailure(lines, 'E1010:')
-  CheckScriptFailure(lines, 'E1010:')
+  v9.CheckScriptFailure(lines, 'E1010:')
+  v9.CheckScriptFailure(lines, 'E1010:')
 enddef
 
 def Test_return_list_any()
@@ -464,7 +464,7 @@ def Test_return_list_any()
       enddef
       echo Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -475,10 +475,10 @@ def Test_return_list_any()
       enddef
       echo Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
-func Increment()
+func s:Increment()
   let g:counter += 1
 endfunc
 
@@ -493,7 +493,7 @@ def Test_call_ufunc_count()
   unlet g:counter
 enddef
 
-def MyVarargs(arg: string, ...rest: list<string>): string
+def s:MyVarargs(arg: string, ...rest: list<string>): string
   var res = arg
   for s in rest
     res ..= ',' .. s
@@ -508,23 +508,23 @@ def Test_call_varargs()
 enddef
 
 def Test_call_white_space()
-  CheckDefAndScriptFailure(["call Test ('text')"], ['E476:', 'E1068:'])
+  v9.CheckDefAndScriptFailure(["call Test ('text')"], ['E476:', 'E1068:'])
 enddef
 
 def MyDefaultArgs(name = 'string'): string
   return name
 enddef
 
-def MyDefaultSecond(name: string, second: bool  = true): string
+def s:MyDefaultSecond(name: string, second: bool  = true): string
   return second ? name : 'none'
 enddef
 
 
 def Test_call_default_args()
-  MyDefaultArgs()->assert_equal('string')
-  MyDefaultArgs(v:none)->assert_equal('string')
-  MyDefaultArgs('one')->assert_equal('one')
-  assert_fails('MyDefaultArgs("one", "two")', 'E118:', '', 4, 'Test_call_default_args')
+  g:MyDefaultArgs()->assert_equal('string')
+  g:MyDefaultArgs(v:none)->assert_equal('string')
+  g:MyDefaultArgs('one')->assert_equal('one')
+  assert_fails('g:MyDefaultArgs("one", "two")', 'E118:', '', 4, 'Test_call_default_args')
 
   MyDefaultSecond('test')->assert_equal('test')
   MyDefaultSecond('test', true)->assert_equal('test')
@@ -549,13 +549,13 @@ def Test_call_default_args()
       DefArg(1234)->assert_equal('12341234')
       DefArg("ok")->assert_equal('okok')
   END
-  CheckDefAndScriptSuccess(lines)
-
-  CheckScriptFailure(['def Func(arg: number = asdf)', 'enddef', 'defcompile'], 'E1001:')
+  v9.CheckDefAndScriptSuccess(lines)
+
+  v9.CheckScriptFailure(['def Func(arg: number = asdf)', 'enddef', 'defcompile'], 'E1001:')
   delfunc g:Func
-  CheckScriptFailure(['def Func(arg: number = "text")', 'enddef', 'defcompile'], 'E1013: Argument 1: type mismatch, expected number but got string')
+  v9.CheckScriptFailure(['def Func(arg: number = "text")', 'enddef', 'defcompile'], 'E1013: Argument 1: type mismatch, expected number but got string')
   delfunc g:Func
-  CheckDefFailure(['def Func(x: number = )', 'enddef'], 'E15:')
+  v9.CheckDefFailure(['def Func(x: number = )', 'enddef'], 'E15:')
 
   lines =<< trim END
       vim9script
@@ -563,7 +563,7 @@ def Test_call_default_args()
       enddef
       defcompile
   END
-  CheckScriptFailure(lines, 'E1001: Variable not found: b')
+  v9.CheckScriptFailure(lines, 'E1001: Variable not found: b')
 
   # using script variable requires matching type or type cast when executed
   lines =<< trim END
@@ -574,8 +574,8 @@ def Test_call_default_args()
       enddef
       defcompile
   END
-  CheckScriptSuccess(lines + ['a = "text"', 'Func()'])
-  CheckScriptFailure(lines + ['a = 123', 'Func()'], 'E1013: Argument 1: type mismatch, expected string but got number')
+  v9.CheckScriptSuccess(lines + ['a = "text"', 'Func()'])
+  v9.CheckScriptFailure(lines + ['a = 123', 'Func()'], 'E1013: Argument 1: type mismatch, expected string but got number')
 
   # using global variable does not require type cast
   lines =<< trim END
@@ -586,10 +586,10 @@ def Test_call_default_args()
       g:str = 'works'
       Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
-def FuncWithComment(  # comment
+def s:FuncWithComment(  # comment
   a: number, #comment
   b: bool, # comment
   c: string) #comment
@@ -606,7 +606,7 @@ def Test_func_with_comments()
         arg: string)
       enddef
   END
-  CheckScriptFailure(lines, 'E125:', 1)
+  v9.CheckScriptFailure(lines, 'E125:', 1)
 
   lines =<< trim END
       def Func(
@@ -614,7 +614,7 @@ def Test_func_with_comments()
         )
       enddef
   END
-  CheckScriptFailure(lines, 'E475:', 2)
+  v9.CheckScriptFailure(lines, 'E475:', 2)
 
   lines =<< trim END
       def Func(
@@ -622,7 +622,7 @@ def Test_func_with_comments()
         )# comment
       enddef
   END
-  CheckScriptFailure(lines, 'E488:', 3)
+  v9.CheckScriptFailure(lines, 'E488:', 3)
 enddef
 
 def Test_nested_function()
@@ -636,11 +636,11 @@ def Test_nested_function()
   endfunc
   NestedFunc(':func')->assert_equal('nested :func')
 
-  CheckDefFailure(['def Nested()', 'enddef', 'Nested(66)'], 'E118:')
-  CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:')
-
-  CheckDefFailure(['def s:Nested()', 'enddef'], 'E1075:')
-  CheckDefFailure(['def b:Nested()', 'enddef'], 'E1075:')
+  v9.CheckDefFailure(['def Nested()', 'enddef', 'Nested(66)'], 'E118:')
+  v9.CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:')
+
+  v9.CheckDefFailure(['def s:Nested()', 'enddef'], 'E1075:')
+  v9.CheckDefFailure(['def b:Nested()', 'enddef'], 'E1075:')
 
   var lines =<< trim END
       def Outer()
@@ -651,7 +651,7 @@ def Test_nested_function()
         enddef
       enddef
   END
-  CheckDefFailure(lines, 'E1073:')
+  v9.CheckDefFailure(lines, 'E1073:')
 
   lines =<< trim END
       def Outer()
@@ -662,7 +662,7 @@ def Test_nested_function()
         enddef
       enddef
   END
-  CheckDefFailure(lines, 'E1117:')
+  v9.CheckDefFailure(lines, 'E1117:')
 
   lines =<< trim END
       vim9script
@@ -675,7 +675,7 @@ def Test_nested_function()
       Outer()
       Inner()
   END
-  CheckScriptFailure(lines, 'E117: Unknown function: Inner')
+  v9.CheckScriptFailure(lines, 'E117: Unknown function: Inner')
   assert_equal('ok', g:result)
   unlet g:result
 
@@ -696,7 +696,7 @@ def Test_nested_function()
       assert_equal(1, Test())
       assert_equal(2, Test())
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   # also works when "thecount" is inside the "if" block
   lines =<< trim END
@@ -715,7 +715,7 @@ def Test_nested_function()
       assert_equal(1, Test())
       assert_equal(2, Test())
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -726,7 +726,7 @@ def Test_nested_function()
       enddef
       defcompile
   END
-  CheckScriptFailure(lines, 'E1173: Text found after enddef: burp', 3)
+  v9.CheckScriptFailure(lines, 'E1173: Text found after enddef: burp', 3)
 enddef
 
 def Test_not_nested_function()
@@ -759,7 +759,7 @@ def Test_nested_global_function()
       g:Inner()->assert_equal('inner')
       delfunc g:Inner
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -779,7 +779,7 @@ def Test_nested_global_function()
       g:Inner()->assert_equal('inner')
       delfunc g:Inner
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -792,7 +792,7 @@ def Test_nested_global_function()
       Outer()
       Outer()
   END
-  CheckScriptFailure(lines, "E122:")
+  v9.CheckScriptFailure(lines, "E122:")
   delfunc g:Inner
 
   lines =<< trim END
@@ -805,7 +805,7 @@ def Test_nested_global_function()
       enddef
       Outer()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
   delfunc g:Inner
 
   lines =<< trim END
@@ -820,7 +820,7 @@ def Test_nested_global_function()
       enddef
       defcompile
   END
-  CheckScriptFailure(lines, "E1073:", 1)
+  v9.CheckScriptFailure(lines, "E1073:", 1)
 
   lines =<< trim END
       vim9script
@@ -831,7 +831,7 @@ def Test_nested_global_function()
         echo 'script'
       enddef
   END
-  CheckScriptFailure(lines, "E1073:", 5)
+  v9.CheckScriptFailure(lines, "E1073:", 5)
 enddef
 
 def DefListAll()
@@ -867,7 +867,7 @@ def Test_nested_def_list()
     enddef
     defcompile
   END
-  CheckScriptFailure(lines, 'E476:', 1)
+  v9.CheckScriptFailure(lines, 'E476:', 1)
 enddef
 
 def Test_global_local_function()
@@ -883,7 +883,7 @@ def Test_global_local_function()
       Func()->assert_equal('local')
       delfunc g:Func
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -892,7 +892,7 @@ def Test_global_local_function()
       enddef
       s:Funcy()
   END
-  CheckScriptFailure(lines, 'E117:')
+  v9.CheckScriptFailure(lines, 'E117:')
 enddef
 
 def Test_local_function_shadows_global()
@@ -909,7 +909,7 @@ def Test_local_function_shadows_global()
       AnotherFunc()->assert_equal(7)
       delfunc g:Gfunc
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -921,10 +921,10 @@ def Test_local_function_shadows_global()
       enddef
       AnotherFunc()
   END
-  CheckScriptFailure(lines, 'E705:')
+  v9.CheckScriptFailure(lines, 'E705:')
   delfunc g:Func
 
-  # global function is found without g: prefix
+  # global function is not found with g: prefix
   lines =<< trim END
       vim9script
       def g:Func(): string
@@ -934,9 +934,9 @@ def Test_local_function_shadows_global()
         return Func()
       enddef
       assert_equal('global', AnotherFunc())
-    delfunc g:Func
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptFailure(lines, 'E117:')
+  delfunc g:Func
 
   lines =<< trim END
       vim9script
@@ -946,7 +946,7 @@ def Test_local_function_shadows_global()
       assert_equal('global', Func())
       delfunc g:Func
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   # This does not shadow "i" which is visible only inside the for loop
   lines =<< trim END
@@ -961,7 +961,7 @@ def Test_local_function_shadows_global()
         Foo(i)
       endfor
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 func TakesOneArg(arg)
@@ -969,10 +969,10 @@ func TakesOneArg(arg)
 endfunc
 
 def Test_call_wrong_args()
-  CheckDefFailure(['TakesOneArg()'], 'E119:')
-  CheckDefFailure(['TakesOneArg(11, 22)'], 'E118:')
-  CheckDefFailure(['bufnr(xxx)'], 'E1001:')
-  CheckScriptFailure(['def Func(Ref: func(s: string))'], 'E475:')
+  v9.CheckDefFailure(['g:TakesOneArg()'], 'E119:')
+  v9.CheckDefFailure(['g:TakesOneArg(11, 22)'], 'E118:')
+  v9.CheckDefFailure(['bufnr(xxx)'], 'E1001:')
+  v9.CheckScriptFailure(['def Func(Ref: func(s: string))'], 'E475:')
 
   var lines =<< trim END
     vim9script
@@ -981,7 +981,7 @@ def Test_call_wrong_args()
     enddef
     Func([])
   END
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 5)
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 5)
 
   # argument name declared earlier is found when declaring a function
   lines =<< trim END
@@ -991,7 +991,7 @@ def Test_call_wrong_args()
       echo nr
     enddef
   END
-  CheckScriptFailure(lines, 'E1168:')
+  v9.CheckScriptFailure(lines, 'E1168:')
 
   # argument name declared later is only found when compiling
   lines =<< trim END
@@ -1001,8 +1001,8 @@ def Test_call_wrong_args()
     enddef
     var name = 'piet'
   END
-  CheckScriptSuccess(lines)
-  CheckScriptFailure(lines + ['defcompile'], 'E1168:')
+  v9.CheckScriptSuccess(lines)
+  v9.CheckScriptFailure(lines + ['defcompile'], 'E1168:')
 
   lines =<< trim END
     vim9script
@@ -1062,10 +1062,10 @@ def Test_call_funcref_wrong_args()
       enddef
       Testme()
   END
-  CheckScriptSuccess(head + ["funcMap['func']('str', 123, [1, 2, 3])"] + tail)
-
-  CheckScriptFailure(head + ["funcMap['func']('str', 123)"] + tail, 'E119:')
-  CheckScriptFailure(head + ["funcMap['func']('str', 123, [1], 4)"] + tail, 'E118:')
+  v9.CheckScriptSuccess(head + ["funcMap['func']('str', 123, [1, 2, 3])"] + tail)
+
+  v9.CheckScriptFailure(head + ["funcMap['func']('str', 123)"] + tail, 'E119:')
+  v9.CheckScriptFailure(head + ["funcMap['func']('str', 123, [1], 4)"] + tail, 'E118:')
 
   var lines =<< trim END
       vim9script
@@ -1073,7 +1073,7 @@ def Test_call_funcref_wrong_args()
       Ref = (j) => !j
       echo Ref(false)
   END
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got bool', 4)
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got bool', 4)
 
   lines =<< trim END
       vim9script
@@ -1081,7 +1081,7 @@ def Test_call_funcref_wrong_args()
       Ref = (j) => !j
       call Ref(false)
   END
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got bool', 4)
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got bool', 4)
 enddef
 
 def Test_call_lambda_args()
@@ -1093,42 +1093,42 @@ def Test_call_lambda_args()
 
     assert_equal('xyz', ((a: string): string => a)('xyz'))
   END
-  CheckDefAndScriptSuccess(lines)
-
-  CheckDefFailure(['echo ((i) => 0)()'],
+  v9.CheckDefAndScriptSuccess(lines)
+
+  v9.CheckDefFailure(['echo ((i) => 0)()'],
                   'E119: Not enough arguments for function: ((i) => 0)()')
 
   lines =<< trim END
       var Ref = (x: number, y: number) => x + y
       echo Ref(1, 'x')
   END
-  CheckDefFailure(lines, 'E1013: Argument 2: type mismatch, expected number but got string')
+  v9.CheckDefFailure(lines, 'E1013: Argument 2: type mismatch, expected number but got string')
 
   lines =<< trim END
     var Ref: func(job, string, number)
     Ref = (x, y) => 0
   END
-  CheckDefAndScriptFailure(lines, 'E1012:')
+  v9.CheckDefAndScriptFailure(lines, 'E1012:')
 
   lines =<< trim END
     var Ref: func(job, string)
     Ref = (x, y, z) => 0
   END
-  CheckDefAndScriptFailure(lines, 'E1012:')
+  v9.CheckDefAndScriptFailure(lines, 'E1012:')
 
   lines =<< trim END
       var one = 1
       var l = [1, 2, 3]
       echo map(l, (one) => one)
   END
-  CheckDefFailure(lines, 'E1167:')
-  CheckScriptFailure(['vim9script'] + lines, 'E1168:')
+  v9.CheckDefFailure(lines, 'E1167:')
+  v9.CheckScriptFailure(['vim9script'] + lines, 'E1168:')
 
   lines =<< trim END
     var Ref: func(any, ?any): bool
     Ref = (_, y = 1) => false
   END
-  CheckDefAndScriptFailure(lines, 'E1172:')
+  v9.CheckDefAndScriptFailure(lines, 'E1172:')
 
   lines =<< trim END
       var a = 0
@@ -1138,7 +1138,7 @@ def Test_call_lambda_args()
       b = (txt =~ 'x' ? 1 : 2)
       assert_equal(2, b)
   END
-  CheckDefAndScriptSuccess(lines)
+  v9.CheckDefAndScriptSuccess(lines)
 
   lines =<< trim END
       def ShadowLocal()
@@ -1147,7 +1147,7 @@ def Test_call_lambda_args()
         echo map(l, (one) => one)
       enddef
   END
-  CheckDefFailure(lines, 'E1167:')
+  v9.CheckDefFailure(lines, 'E1167:')
 
   lines =<< trim END
       def Shadowarg(one: number)
@@ -1155,18 +1155,18 @@ def Test_call_lambda_args()
         echo map(l, (one) => one)
       enddef
   END
-  CheckDefFailure(lines, 'E1167:')
+  v9.CheckDefFailure(lines, 'E1167:')
 
   lines =<< trim END
     echo ((a) => a)('aa', 'bb')
   END
-  CheckDefAndScriptFailure(lines, 'E118:', 1)
+  v9.CheckDefAndScriptFailure(lines, 'E118:', 1)
 
   lines =<< trim END
     echo 'aa'->((a) => a)('bb')
   END
-  CheckDefFailure(lines, 'E118: Too many arguments for function: ->((a) => a)(''bb'')', 1)
-  CheckScriptFailure(['vim9script'] + lines, 'E118: Too many arguments for function: <lambda>', 2)
+  v9.CheckDefFailure(lines, 'E118: Too many arguments for function: ->((a) => a)(''bb'')', 1)
+  v9.CheckScriptFailure(['vim9script'] + lines, 'E118: Too many arguments for function: <lambda>', 2)
 enddef
 
 def Test_lambda_line_nr()
@@ -1180,7 +1180,7 @@ def Test_lambda_line_nr()
           ->substitute("('\\|')", ' ', 'g'))
       assert_match('Last set from .* line 4', out)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def FilterWithCond(x: string, Cond: func(string): bool): bool
@@ -1191,24 +1191,24 @@ def Test_lambda_return_type()
   var lines =<< trim END
     var Ref = (): => 123
   END
-  CheckDefAndScriptFailure(lines, 'E1157:', 1)
+  v9.CheckDefAndScriptFailure(lines, 'E1157:', 1)
 
   # no space before the return type
   lines =<< trim END
     var Ref = (x):number => x + 1
   END
-  CheckDefAndScriptFailure(lines, 'E1069:', 1)
+  v9.CheckDefAndScriptFailure(lines, 'E1069:', 1)
 
   # this works
   for x in ['foo', 'boo']
-    echo FilterWithCond(x, (v) => v =~ '^b')
+    echo g:FilterWithCond(x, (v) => v =~ '^b')
   endfor
 
   # this fails
   lines =<< trim END
-      echo FilterWithCond('foo', (v) => v .. '^b')
+      echo g:FilterWithCond('foo', (v) => v .. '^b')
   END
-  CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected func(string): bool but got func(any): string', 1)
+  v9.CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected func(string): bool but got func(any): string', 1)
 
   lines =<< trim END
       var Lambda1 = (x) => {
@@ -1220,7 +1220,7 @@ def Test_lambda_return_type()
               }
       assert_equal('foo', Lambda2('foo'))
   END
-  CheckDefAndScriptSuccess(lines)
+  v9.CheckDefAndScriptSuccess(lines)
 
   lines =<< trim END
       var Lambda = (x): string => {
@@ -1228,11 +1228,11 @@ def Test_lambda_return_type()
               }
       echo Lambda(['foo'])
   END
-  CheckDefExecAndScriptFailure(lines, 'E1012:')
+  v9.CheckDefExecAndScriptFailure(lines, 'E1012:')
 enddef
 
 def Test_lambda_uses_assigned_var()
-  CheckDefSuccess([
+  v9.CheckDefSuccess([
         'var x: any = "aaa"'
         'x = filter(["bbb"], (_, v) => v =~ x)'])
 enddef
@@ -1247,7 +1247,7 @@ def Test_pass_legacy_lambda_to_def_func(
       enddef
       Foo()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -1261,7 +1261,7 @@ def Test_pass_legacy_lambda_to_def_func(
       legacy call g:TestFunc({nr -> 0})
       delfunc g:TestFunc
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_lambda_in_reduce_line_break()
@@ -1281,7 +1281,7 @@ def Test_lambda_in_reduce_line_break()
           }, {})
       assert_equal({Bob: 2, Sam: 1, Cat: 3}, result)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_set_opfunc_to_lambda()
@@ -1303,7 +1303,7 @@ def Test_set_opfunc_to_lambda()
     assert_equal(4, g:result)
     bwipe!
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_set_opfunc_to_global_function()
@@ -1333,7 +1333,7 @@ def Test_set_opfunc_to_global_function()
 
     bwipe!
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
   &operatorfunc = ''
 enddef
 
@@ -1346,7 +1346,7 @@ def Test_use_script_func_name_with_prefi
       var Fn = s:Getit
       assert_equal('it', Fn())
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_lambda_type_allocated()
@@ -1365,7 +1365,7 @@ def Test_lambda_type_allocated()
     &omnifunc = string(Lambda)
     Lambda = (a, b) => strlen(a)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 " Default arg and varargs
@@ -1378,13 +1378,13 @@ def MyDefVarargs(one: string, two = 'foo
 enddef
 
 def Test_call_def_varargs()
-  assert_fails('MyDefVarargs()', 'E119:', '', 1, 'Test_call_def_varargs')
-  MyDefVarargs('one')->assert_equal('one,foo')
-  MyDefVarargs('one', 'two')->assert_equal('one,two')
-  MyDefVarargs('one', 'two', 'three')->assert_equal('one,two,three')
-  CheckDefFailure(['MyDefVarargs("one", 22)'],
+  assert_fails('g:MyDefVarargs()', 'E119:', '', 1, 'Test_call_def_varargs')
+  g:MyDefVarargs('one')->assert_equal('one,foo')
+  g:MyDefVarargs('one', 'two')->assert_equal('one,two')
+  g:MyDefVarargs('one', 'two', 'three')->assert_equal('one,two,three')
+  v9.CheckDefFailure(['g:MyDefVarargs("one", 22)'],
       'E1013: Argument 2: type mismatch, expected string but got number')
-  CheckDefFailure(['MyDefVarargs("one", "two", 123)'],
+  v9.CheckDefFailure(['g:MyDefVarargs("one", "two", 123)'],
       'E1013: Argument 3: type mismatch, expected string but got number')
 
   var lines =<< trim END
@@ -1394,7 +1394,7 @@ def Test_call_def_varargs()
       enddef
       Func('a', 'b', 'c')
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -1403,7 +1403,7 @@ def Test_call_def_varargs()
       enddef
       Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -1412,7 +1412,7 @@ def Test_call_def_varargs()
       enddef
       Func(0)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -1421,7 +1421,7 @@ def Test_call_def_varargs()
       enddef
       Func(0)
   END
-  CheckScriptFailure(lines, 'E1180:', 2)
+  v9.CheckScriptFailure(lines, 'E1180:', 2)
 
   lines =<< trim END
       vim9script
@@ -1430,7 +1430,7 @@ def Test_call_def_varargs()
       enddef
       Func('a', 'b', 'c')
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -1439,7 +1439,7 @@ def Test_call_def_varargs()
       enddef
       Func(1, 2, 3)
   END
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch')
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch')
 
   lines =<< trim END
       vim9script
@@ -1448,7 +1448,7 @@ def Test_call_def_varargs()
       enddef
       Func('a', 9)
   END
-  CheckScriptFailure(lines, 'E1013: Argument 2: type mismatch')
+  v9.CheckScriptFailure(lines, 'E1013: Argument 2: type mismatch')
 
   lines =<< trim END
       vim9script
@@ -1457,7 +1457,7 @@ def Test_call_def_varargs()
       enddef
       Func(1, 'a')
   END
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch')
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch')
 
   lines =<< trim END
       vim9script
@@ -1467,7 +1467,7 @@ def Test_call_def_varargs()
         echo l
       enddef
   END
-  CheckScriptFailure(lines, 'E1160:')
+  v9.CheckScriptFailure(lines, 'E1160:')
 
   lines =<< trim END
       vim9script
@@ -1479,7 +1479,7 @@ def Test_call_def_varargs()
       enddef
       DoIt()
   END
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got string')
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got string')
 enddef
 
 let s:value = ''
@@ -1510,8 +1510,8 @@ def Test_func_type_varargs()
   RefDef2Arg(99)->assert_equal('99text')
   RefDef2Arg(77, 'some')->assert_equal('77some')
 
-  CheckDefFailure(['var RefWrong: func(string?)'], 'E1010:')
-  CheckDefFailure(['var RefWrong: func(?string, string)'], 'E1007:')
+  v9.CheckDefFailure(['var RefWrong: func(string?)'], 'E1010:')
+  v9.CheckDefFailure(['var RefWrong: func(?string, string)'], 'E1007:')
 
   var RefVarargs: func(...list<string>): string
   RefVarargs = FuncVarargs
@@ -1519,8 +1519,8 @@ def Test_func_type_varargs()
   RefVarargs('one')->assert_equal('one')
   RefVarargs('one', 'two')->assert_equal('one,two')
 
-  CheckDefFailure(['var RefWrong: func(...list<string>, string)'], 'E110:')
-  CheckDefFailure(['var RefWrong: func(...list<string>, ?string)'], 'E110:')
+  v9.CheckDefFailure(['var RefWrong: func(...list<string>, string)'], 'E110:')
+  v9.CheckDefFailure(['var RefWrong: func(...list<string>, ?string)'], 'E110:')
 enddef
 
 " Only varargs
@@ -1529,11 +1529,11 @@ def MyVarargsOnly(...args: list<string>)
 enddef
 
 def Test_call_varargs_only()
-  MyVarargsOnly()->assert_equal('')
-  MyVarargsOnly('one')->assert_equal('one')
-  MyVarargsOnly('one', 'two')->assert_equal('one,two')
-  CheckDefFailure(['MyVarargsOnly(1)'], 'E1013: Argument 1: type mismatch, expected string but got number')
-  CheckDefFailure(['MyVarargsOnly("one", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number')
+  g:MyVarargsOnly()->assert_equal('')
+  g:MyVarargsOnly('one')->assert_equal('one')
+  g:MyVarargsOnly('one', 'two')->assert_equal('one,two')
+  v9.CheckDefFailure(['g:MyVarargsOnly(1)'], 'E1013: Argument 1: type mismatch, expected string but got number')
+  v9.CheckDefFailure(['g:MyVarargsOnly("one", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number')
 enddef
 
 def Test_using_var_as_arg()
@@ -1542,7 +1542,7 @@ def Test_using_var_as_arg()
         var x = 234
       enddef
   END
-  CheckDefFailure(lines, 'E1006:')
+  v9.CheckDefFailure(lines, 'E1006:')
 
   lines =<< trim END
       def Func(Ref: number)
@@ -1550,14 +1550,14 @@ def Test_using_var_as_arg()
         enddef
       enddef
   END
-  CheckDefFailure(lines, 'E1073:')
+  v9.CheckDefFailure(lines, 'E1073:')
 enddef
 
-def DictArg(arg: dict<string>)
+def s:DictArg(arg: dict<string>)
   arg['key'] = 'value'
 enddef
 
-def ListArg(arg: list<string>)
+def s:ListArg(arg: list<string>)
   arg[0] = 'value'
 enddef
 
@@ -1570,12 +1570,12 @@ def Test_assign_to_argument()
   ListArg(l)
   l[0]->assert_equal('value')
 
-  CheckScriptFailure(['def Func(arg: number)', 'arg = 3', 'enddef', 'defcompile'], 'E1090:')
+  v9.CheckScriptFailure(['def Func(arg: number)', 'arg = 3', 'enddef', 'defcompile'], 'E1090:')
   delfunc! g:Func
 enddef
 
 " These argument names are reserved in legacy functions.
-def WithReservedNames(firstline: string, lastline: string): string
+def s:WithReservedNames(firstline: string, lastline: string): string
   return firstline .. lastline
 enddef
 
@@ -1605,7 +1605,7 @@ def Test_call_funcref()
     var Funcref: func: number = function('RetNumber')
     Funcref()->assert_equal(123)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
     vim9script
@@ -1618,7 +1618,7 @@ def Test_call_funcref()
     var Funcref = function('RetNumber')
     Bar(Funcref)->assert_equal(123)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
     vim9script
@@ -1628,7 +1628,7 @@ def Test_call_funcref()
     var Funcref: func(number) = function('UseNumber')
     Funcref(123)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
     vim9script
@@ -1637,7 +1637,7 @@ def Test_call_funcref()
     enddef
     var Funcref: func(string) = function('UseNumber')
   END
-  CheckScriptFailure(lines, 'E1012: Type mismatch; expected func(string) but got func(number)')
+  v9.CheckScriptFailure(lines, 'E1012: Type mismatch; expected func(string) but got func(number)')
 
   lines =<< trim END
     vim9script
@@ -1650,7 +1650,7 @@ def Test_call_funcref()
     Funcref(123)
     g:echo->assert_equal(123)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
     vim9script
@@ -1663,7 +1663,7 @@ def Test_call_funcref()
     Funcref(1, 2, 3)
     g:echo->assert_equal([1, 2, 3])
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
     vim9script
@@ -1685,7 +1685,7 @@ def Test_call_funcref()
     g:optarg->assert_equal(18)
     g:listarg->assert_equal([1, 2, 3])
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 let SomeFunc = function('len')
@@ -1741,7 +1741,7 @@ def Test_nested_function_with_nextcmd()
       # Compile all functions
       defcompile
   END
-  CheckScriptFailure(lines, 'E1173: Text found after enddef: BBBB')
+  v9.CheckScriptFailure(lines, 'E1173: Text found after enddef: BBBB')
 enddef
 
 def Test_nested_function_with_args_split()
@@ -1758,7 +1758,7 @@ def Test_nested_function_with_args_split
       # Compile all functions
       defcompile
   END
-  CheckScriptFailure(lines, 'E1173: Text found after enddef: BBBB')
+  v9.CheckScriptFailure(lines, 'E1173: Text found after enddef: BBBB')
 
   lines =<< trim END
       vim9script
@@ -1768,7 +1768,7 @@ def Test_nested_function_with_args_split
       enddef
       defcompile
   END
-  CheckScriptFailure(lines, 'E1173: Text found after endfunction: BBBB')
+  v9.CheckScriptFailure(lines, 'E1173: Text found after endfunction: BBBB')
 enddef
 
 def Test_error_in_function_args()
@@ -1783,30 +1783,30 @@ def Test_error_in_function_args()
       # Compile all functions
       defcompile
   END
-  CheckScriptFailure(lines, 'E488:')
+  v9.CheckScriptFailure(lines, 'E488:')
 enddef
 
 def Test_return_type_wrong()
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'def Func(): number',
         'return "a"',
         'enddef',
         'defcompile'], 'expected number but got string')
   delfunc! g:Func
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'def Func(): string',
         'return 1',
         'enddef',
         'defcompile'], 'expected string but got number')
   delfunc! g:Func
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'def Func(): void',
         'return "a"',
         'enddef',
         'defcompile'],
         'E1096: Returning a value in a function without a return type')
   delfunc! g:Func
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'def Func()',
         'return "a"',
         'enddef',
@@ -1814,42 +1814,42 @@ def Test_return_type_wrong()
         'E1096: Returning a value in a function without a return type')
   delfunc! g:Func
 
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'def Func(): number',
         'return',
         'enddef',
         'defcompile'], 'E1003:')
   delfunc! g:Func
 
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'def Func():number',
         'return 123',
         'enddef',
         'defcompile'], 'E1069:')
   delfunc! g:Func
 
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'def Func() :number',
         'return 123',
         'enddef',
         'defcompile'], 'E1059:')
   delfunc! g:Func
 
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'def Func() : number',
         'return 123',
         'enddef',
         'defcompile'], 'E1059:')
   delfunc! g:Func
 
-  CheckScriptFailure(['def Func(): list', 'return []', 'enddef'], 'E1008:')
+  v9.CheckScriptFailure(['def Func(): list', 'return []', 'enddef'], 'E1008:')
   delfunc! g:Func
-  CheckScriptFailure(['def Func(): dict', 'return {}', 'enddef'], 'E1008:')
+  v9.CheckScriptFailure(['def Func(): dict', 'return {}', 'enddef'], 'E1008:')
   delfunc! g:Func
-  CheckScriptFailure(['def Func()', 'return 1'], 'E1057:')
+  v9.CheckScriptFailure(['def Func()', 'return 1'], 'E1057:')
   delfunc! g:Func
 
-  CheckScriptFailure([
+  v9.CheckScriptFailure([
         'vim9script',
         'def FuncB()',
         '  return 123',
@@ -1861,12 +1861,12 @@ def Test_return_type_wrong()
 enddef
 
 def Test_arg_type_wrong()
-  CheckScriptFailure(['def Func3(items: list)', 'echo "a"', 'enddef'], 'E1008: Missing <type>')
-  CheckScriptFailure(['def Func4(...)', 'echo "a"', 'enddef'], 'E1055: Missing name after ...')
-  CheckScriptFailure(['def Func5(items:string)', 'echo "a"'], 'E1069:')
-  CheckScriptFailure(['def Func5(items)', 'echo "a"'], 'E1077:')
-  CheckScriptFailure(['def Func6(...x:list<number>)', 'echo "a"', 'enddef'], 'E1069:')
-  CheckScriptFailure(['def Func7(...x: int)', 'echo "a"', 'enddef'], 'E1010:')
+  v9.CheckScriptFailure(['def Func3(items: list)', 'echo "a"', 'enddef'], 'E1008: Missing <type>')
+  v9.CheckScriptFailure(['def Func4(...)', 'echo "a"', 'enddef'], 'E1055: Missing name after ...')
+  v9.CheckScriptFailure(['def Func5(items:string)', 'echo "a"'], 'E1069:')
+  v9.CheckScriptFailure(['def Func5(items)', 'echo "a"'], 'E1077:')
+  v9.CheckScriptFailure(['def Func6(...x:list<number>)', 'echo "a"', 'enddef'], 'E1069:')
+  v9.CheckScriptFailure(['def Func7(...x: int)', 'echo "a"', 'enddef'], 'E1010:')
 enddef
 
 def Test_white_space_before_comma()
@@ -1875,7 +1875,7 @@ def Test_white_space_before_comma()
     def Func(a: number , b: number)
     enddef
   END
-  CheckScriptFailure(lines, 'E1068:')
+  v9.CheckScriptFailure(lines, 'E1068:')
   call assert_fails('vim9cmd echo stridx("a" .. "b" , "a")', 'E1068:')
 enddef
 
@@ -1885,7 +1885,7 @@ def Test_white_space_after_comma()
     def Func(a: number,b: number)
     enddef
   END
-  CheckScriptFailure(lines, 'E1069:')
+  v9.CheckScriptFailure(lines, 'E1069:')
 
   # OK in legacy function
   lines =<< trim END
@@ -1893,7 +1893,7 @@ def Test_white_space_after_comma()
     func Func(a,b)
     endfunc
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_vim9script_call()
@@ -1998,7 +1998,7 @@ def Test_vim9script_call_fail_decl()
     enddef
     defcompile
   END
-  CheckScriptFailure(lines, 'E1054:')
+  v9.CheckScriptFailure(lines, 'E1054:')
 enddef
 
 def Test_vim9script_call_fail_type()
@@ -2009,7 +2009,7 @@ def Test_vim9script_call_fail_type()
     enddef
     MyFunc(1234)
   END
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected string but got number')
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected string but got number')
 enddef
 
 def Test_vim9script_call_fail_const()
@@ -2034,7 +2034,7 @@ def Test_vim9script_call_fail_const()
       call Change()
       unlet g:Aconst
   END
-  CheckScriptFailure(lines, 'E741: Value is locked: Aconst', 2)
+  v9.CheckScriptFailure(lines, 'E741: Value is locked: Aconst', 2)
 enddef
 
 " Test that inside :function a Python function can be defined, :def is not
@@ -2056,7 +2056,7 @@ def Test_delfunc()
     enddef
 
     def CallGoneSoon()
-      GoneSoon()
+      g:GoneSoon()
     enddef
     defcompile
 
@@ -2099,7 +2099,7 @@ def Run_Test_free_dict_while_in_funcstac
       timer_start(1000, (_) => feedkeys("\<F4>"))
       sleep 1500m
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
   nunmap <F4>
   set updatetime&
 enddef
@@ -2167,34 +2167,34 @@ def FuncTwoArgNoRet(one: bool, two: numb
   s:funcResult = two
 enddef
 
-def FuncOneArgRetString(arg: string): string
+def s:FuncOneArgRetString(arg: string): string
   return arg
 enddef
 
-def FuncOneArgRetAny(arg: any): any
+def s:FuncOneArgRetAny(arg: any): any
   return arg
 enddef
 
 def Test_func_type()
   var Ref1: func()
   s:funcResult = 0
-  Ref1 = FuncNoArgNoRet
+  Ref1 = g:FuncNoArgNoRet
   Ref1()
   s:funcResult->assert_equal(11)
 
   var Ref2: func
   s:funcResult = 0
-  Ref2 = FuncNoArgNoRet
+  Ref2 = g:FuncNoArgNoRet
   Ref2()
   s:funcResult->assert_equal(11)
 
   s:funcResult = 0
-  Ref2 = FuncOneArgNoRet
+  Ref2 = g:FuncOneArgNoRet
   Ref2(12)
   s:funcResult->assert_equal(12)
 
   s:funcResult = 0
-  Ref2 = FuncNoArgRetNumber
+  Ref2 = g:FuncNoArgRetNumber
   Ref2()->assert_equal(1234)
   s:funcResult->assert_equal(22)
 
@@ -2229,51 +2229,51 @@ enddef
 
 def Test_func_type_part()
   var RefVoid: func: void
-  RefVoid = FuncNoArgNoRet
-  RefVoid = FuncOneArgNoRet
-  CheckDefFailure(['var RefVoid: func: void', 'RefVoid = FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func(...) but got func(): number')
-  CheckDefFailure(['var RefVoid: func: void', 'RefVoid = FuncNoArgRetString'], 'E1012: Type mismatch; expected func(...) but got func(): string')
+  RefVoid = g:FuncNoArgNoRet
+  RefVoid = g:FuncOneArgNoRet
+  v9.CheckDefFailure(['var RefVoid: func: void', 'RefVoid = g:FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func(...) but got func(): number')
+  v9.CheckDefFailure(['var RefVoid: func: void', 'RefVoid = FuncNoArgRetString'], 'E1012: Type mismatch; expected func(...) but got func(): string')
 
   var RefAny: func(): any
-  RefAny = FuncNoArgRetNumber
+  RefAny = g:FuncNoArgRetNumber
   RefAny = FuncNoArgRetString
-  CheckDefFailure(['var RefAny: func(): any', 'RefAny = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func()')
-  CheckDefFailure(['var RefAny: func(): any', 'RefAny = FuncOneArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func(number)')
+  v9.CheckDefFailure(['var RefAny: func(): any', 'RefAny = g:FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func()')
+  v9.CheckDefFailure(['var RefAny: func(): any', 'RefAny = g:FuncOneArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func(number)')
 
   var RefAnyNoArgs: func: any = RefAny
 
   var RefNr: func: number
-  RefNr = FuncNoArgRetNumber
+  RefNr = g:FuncNoArgRetNumber
   RefNr = FuncOneArgRetNumber
-  CheckDefFailure(['var RefNr: func: number', 'RefNr = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(...): number but got func()')
-  CheckDefFailure(['var RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1012: Type mismatch; expected func(...): number but got func(): string')
+  v9.CheckDefFailure(['var RefNr: func: number', 'RefNr = g:FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(...): number but got func()')
+  v9.CheckDefFailure(['var RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1012: Type mismatch; expected func(...): number but got func(): string')
 
   var RefStr: func: string
   RefStr = FuncNoArgRetString
   RefStr = FuncOneArgRetString
-  CheckDefFailure(['var RefStr: func: string', 'RefStr = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(...): string but got func()')
-  CheckDefFailure(['var RefStr: func: string', 'RefStr = FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func(...): string but got func(): number')
+  v9.CheckDefFailure(['var RefStr: func: string', 'RefStr = g:FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(...): string but got func()')
+  v9.CheckDefFailure(['var RefStr: func: string', 'RefStr = g:FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func(...): string but got func(): number')
 enddef
 
 def Test_func_type_fails()
-  CheckDefFailure(['var ref1: func()'], 'E704:')
-
-  CheckDefFailure(['var Ref1: func()', 'Ref1 = FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func() but got func(): number')
-  CheckDefFailure(['var Ref1: func()', 'Ref1 = FuncOneArgNoRet'], 'E1012: Type mismatch; expected func() but got func(number)')
-  CheckDefFailure(['var Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1012: Type mismatch; expected func() but got func(number): number')
-  CheckDefFailure(['var Ref1: func(bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(bool) but got func(bool, number)')
-  CheckDefFailure(['var Ref1: func(?bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(?bool) but got func(bool, number)')
-  CheckDefFailure(['var Ref1: func(...bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(...bool) but got func(bool, number)')
-
-  CheckDefFailure(['var RefWrong: func(string ,number)'], 'E1068:')
-  CheckDefFailure(['var RefWrong: func(string,number)'], 'E1069:')
-  CheckDefFailure(['var RefWrong: func(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'], 'E1005:')
-  CheckDefFailure(['var RefWrong: func(bool):string'], 'E1069:')
+  v9.CheckDefFailure(['var ref1: func()'], 'E704:')
+
+  v9.CheckDefFailure(['var Ref1: func()', 'Ref1 = g:FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func() but got func(): number')
+  v9.CheckDefFailure(['var Ref1: func()', 'Ref1 = g:FuncOneArgNoRet'], 'E1012: Type mismatch; expected func() but got func(number)')
+  v9.CheckDefFailure(['var Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1012: Type mismatch; expected func() but got func(number): number')
+  v9.CheckDefFailure(['var Ref1: func(bool)', 'Ref1 = g:FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(bool) but got func(bool, number)')
+  v9.CheckDefFailure(['var Ref1: func(?bool)', 'Ref1 = g:FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(?bool) but got func(bool, number)')
+  v9.CheckDefFailure(['var Ref1: func(...bool)', 'Ref1 = g:FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(...bool) but got func(bool, number)')
+
+  v9.CheckDefFailure(['var RefWrong: func(string ,number)'], 'E1068:')
+  v9.CheckDefFailure(['var RefWrong: func(string,number)'], 'E1069:')
+  v9.CheckDefFailure(['var RefWrong: func(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'], 'E1005:')
+  v9.CheckDefFailure(['var RefWrong: func(bool):string'], 'E1069:')
 enddef
 
 def Test_func_return_type()
   var nr: number
-  nr = FuncNoArgRetNumber()
+  nr = g:FuncNoArgRetNumber()
   nr->assert_equal(1234)
 
   nr = FuncOneArgRetAny(122)
@@ -2283,7 +2283,7 @@ def Test_func_return_type()
   str = FuncOneArgRetAny('yes')
   str->assert_equal('yes')
 
-  CheckDefFailure(['var str: string', 'str = FuncNoArgRetNumber()'], 'E1012: Type mismatch; expected string but got number')
+  v9.CheckDefFailure(['var str: string', 'str = g:FuncNoArgRetNumber()'], 'E1012: Type mismatch; expected string but got number')
 enddef
 
 def Test_func_common_type()
@@ -2302,7 +2302,7 @@ def Test_func_common_type()
   assert_equal(7, list[2](3, 'word'))
 enddef
 
-def MultiLine(
+def s:MultiLine(
     arg1: string,
     arg2 = 1234,
     ...rest: list<string>
@@ -2326,10 +2326,10 @@ def Test_multiline()
 enddef
 
 func Test_multiline_not_vim9()
-  call MultiLine('text')->assert_equal('text1234')
-  call MultiLine('text', 777)->assert_equal('text777')
-  call MultiLine('text', 777, 'one')->assert_equal('text777one')
-  call MultiLine('text', 777, 'one', 'two')->assert_equal('text777one-two')
+  call s:MultiLine('text')->assert_equal('text1234')
+  call s:MultiLine('text', 777)->assert_equal('text777')
+  call s:MultiLine('text', 777, 'one')->assert_equal('text777one')
+  call s:MultiLine('text', 777, 'one', 'two')->assert_equal('text777one-two')
 endfunc
 
 
@@ -2426,19 +2426,19 @@ def Test_error_reporting()
 enddef
 
 def Test_deleted_function()
-  CheckDefExecFailure([
+  v9.CheckDefExecFailure([
       'var RefMe: func = function("g:DelMe")',
       'delfunc g:DelMe',
       'echo RefMe()'], 'E117:')
 enddef
 
 def Test_unknown_function()
-  CheckDefExecFailure([
+  v9.CheckDefExecFailure([
       'var Ref: func = function("NotExist")',
       'delfunc g:NotExist'], 'E700:')
 enddef
 
-def RefFunc(Ref: func(any): any): string
+def s:RefFunc(Ref: func(any): any): string
   return Ref('more')
 enddef
 
@@ -2447,7 +2447,7 @@ def Test_closure_simple()
   RefFunc((s) => local .. s)->assert_equal('some more')
 enddef
 
-def MakeRef()
+def s:MakeRef()
   var local = 'some '
   g:Ref = (s) => local .. s
 enddef
@@ -2458,7 +2458,7 @@ def Test_closure_ref_after_return()
   unlet g:Ref
 enddef
 
-def MakeTwoRefs()
+def s:MakeTwoRefs()
   var local = ['some']
   g:Extend = (s) => local->add(s)
   g:Read = () => local
@@ -2476,11 +2476,11 @@ def Test_closure_two_refs()
   unlet g:Read
 enddef
 
-def ReadRef(Ref: func(): list<string>): string
+def s:ReadRef(Ref: func(): list<string>): string
   return join(Ref(), ' ')
 enddef
 
-def ExtendRef(Ref: func(string): list<string>, add: string)
+def s:ExtendRef(Ref: func(string): list<string>, add: string)
   Ref(add)
 enddef
 
@@ -2496,12 +2496,12 @@ def Test_closure_two_indirect_refs()
   unlet g:Read
 enddef
 
-def MakeArgRefs(theArg: string)
+def s:MakeArgRefs(theArg: string)
   var local = 'loc_val'
   g:UseArg = (s) => theArg .. '/' .. local .. '/' .. s
 enddef
 
-def MakeArgRefsVarargs(theArg: string, ...rest: list<string>)
+def s:MakeArgRefsVarargs(theArg: string, ...rest: list<string>)
   var local = 'the_loc'
   g:UseVararg = (s) => theArg .. '/' .. local .. '/' .. s .. '/' .. join(rest)
 enddef
@@ -2526,10 +2526,10 @@ def Test_closure_using_argument()
       enddef
       assert_equal([3, 4, 5], Test(Inc))
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
-def MakeGetAndAppendRefs()
+def s:MakeGetAndAppendRefs()
   var local = 'a'
 
   def Append(arg: string)
@@ -2563,7 +2563,7 @@ def Test_nested_closure()
   Closure('!!!')->assert_equal('text!!!')
 enddef
 
-func GetResult(Ref)
+func s:GetResult(Ref)
   return a:Ref('some')
 endfunc
 
@@ -2584,7 +2584,7 @@ def Test_double_closure_fails()
     enddef
     Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_nested_closure_used()
@@ -2598,7 +2598,7 @@ def Test_nested_closure_used()
       Func()
       assert_equal('hello', g:Myclosure())
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_nested_closure_fails()
@@ -2612,7 +2612,7 @@ def Test_nested_closure_fails()
     enddef
     FuncA()
   END
-  CheckScriptFailure(lines, 'E1012:')
+  v9.CheckScriptFailure(lines, 'E1012:')
 enddef
 
 def Test_global_closure()
@@ -2632,7 +2632,7 @@ def Test_global_closure()
       repeat(['aaa', 'bbb', 'ccc'], 3)->setline(1)
       ReverseEveryNLines(3, 1, 9)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
   var expected = repeat(['ccc', 'bbb', 'aaa'], 3)
   assert_equal(expected, getline(1, 9))
   bwipe!
@@ -2653,7 +2653,7 @@ def Test_global_closure_called_directly(
       enddef
       Outer()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
   delfunc g:Inner
 enddef
 
@@ -2669,7 +2669,7 @@ def Test_closure_called_from_legacy()
       enddef
       Func()
   END
-  CheckScriptFailure(lines, 'E1248')
+  v9.CheckScriptFailure(lines, 'E1248')
 enddef
 
 def Test_failure_in_called_function()
@@ -2692,7 +2692,7 @@ def Test_failure_in_called_function()
       endtry
       au! TerminalWinOpen
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_nested_lambda()
@@ -2707,7 +2707,7 @@ def Test_nested_lambda()
     enddef
     Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_double_nested_lambda()
@@ -2720,7 +2720,7 @@ def Test_double_nested_lambda()
       enddef
       assert_equal('hello-there', F('hello')('-')('there'))
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_nested_inline_lambda()
@@ -2733,7 +2733,7 @@ def Test_nested_inline_lambda()
       enddef
       assert_equal('--there++', F('++')('there')('--'))
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -2743,7 +2743,7 @@ def Test_nested_inline_lambda()
           })
         })
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -2759,7 +2759,7 @@ def Test_nested_inline_lambda()
 
       defcomp
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Shadowed(): list<number>
@@ -2768,10 +2768,10 @@ def Shadowed(): list<number>
 enddef
 
 def Test_lambda_arg_shadows_func()
-  assert_equal([42], Shadowed())
+  assert_equal([42], g:Shadowed())
 enddef
 
-def Line_continuation_in_def(dir: string = ''): string
+def s:Line_continuation_in_def(dir: string = ''): string
   var path: string = empty(dir)
           \ ? 'empty'
           \ : 'full'
@@ -2788,10 +2788,10 @@ def Test_script_var_in_lambda()
       var script = 'test'
       assert_equal(['test'], map(['one'], (_, _) => script))
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
-def Line_continuation_in_lambda(): list<string>
+def s:Line_continuation_in_lambda(): list<string>
   var x = range(97, 100)
       ->mapnew((_, v) => nr2char(v)
           ->toupper())
@@ -2812,7 +2812,7 @@ def Test_line_continuation_in_lambda()
                     ))
       assert_equal(['1:2:yyy'], res)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_list_lambda()
@@ -2834,7 +2834,7 @@ def Test_lambda_block_variable()
           flist[i] = () => inloop
       endfor
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -2846,7 +2846,7 @@ def Test_lambda_block_variable()
         endfor
       endif
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -2858,7 +2858,7 @@ def Test_lambda_block_variable()
         flist[i] = () => outloop
       endfor
   END
-  CheckScriptFailure(lines, 'E1001: Variable not found: outloop', 1)
+  v9.CheckScriptFailure(lines, 'E1001: Variable not found: outloop', 1)
 
   lines =<< trim END
       vim9script
@@ -2867,7 +2867,7 @@ def Test_lambda_block_variable()
       endfor
       assert_equal(0, ((i) => 0)(0))
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_legacy_lambda()
@@ -2876,7 +2876,7 @@ def Test_legacy_lambda()
   var lines =<< trim END
       echo {x -> 'hello ' .. x}('foo')
   END
-  CheckDefAndScriptFailure(lines, 'E720:')
+  v9.CheckDefAndScriptFailure(lines, 'E720:')
 
   lines =<< trim END
       vim9script
@@ -2885,7 +2885,7 @@ def Test_legacy_lambda()
       enddef
       legacy call s:Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_legacy()
@@ -2902,7 +2902,7 @@ def Test_legacy()
       unlet g:legacyvar
       delfunc g:LegacyFunction
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_legacy_errors()
@@ -2910,7 +2910,7 @@ def Test_legacy_errors()
               'for', 'endfor', 'continue', 'break',
               'while', 'endwhile',
               'try', 'catch', 'finally', 'endtry']
-    CheckDefFailure(['legacy ' .. cmd .. ' expr'], 'E1189:')
+    v9.CheckDefFailure(['legacy ' .. cmd .. ' expr'], 'E1189:')
   endfor
 enddef
 
@@ -2942,10 +2942,10 @@ def Test_call_legacy_with_dict()
       assert_equal('bar', g:result)
       unlet g:result
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
-def DoFilterThis(a: string): list<string>
+def s:DoFilterThis(a: string): list<string>
   # closure nested inside another closure using argument
   var Filter = (l) => filter(l, (_, v) => stridx(v, a) == 0)
   return ['x', 'y', 'a', 'x2', 'c']->Filter()
@@ -2978,12 +2978,12 @@ def Run_Test_silent_echo()
   writefile(lines, 'XTest_silent_echo')
 
   # Check that the balloon shows up after a mouse move
-  var buf = RunVimInTerminal('-S XTest_silent_echo', {'rows': 6})
+  var buf = g:RunVimInTerminal('-S XTest_silent_echo', {'rows': 6})
   term_sendkeys(buf, ":abc")
-  VerifyScreenDump(buf, 'Test_vim9_silent_echo', {})
+  g:VerifyScreenDump(buf, 'Test_vim9_silent_echo', {})
 
   # clean up
-  StopVimInTerminal(buf)
+  g:StopVimInTerminal(buf)
   delete('XTest_silent_echo')
 enddef
 
@@ -2992,7 +2992,7 @@ def SilentlyError()
   g:did_it = 'yes'
 enddef
 
-func UserError()
+func s:UserError()
   silent! invalid
 endfunc
 
@@ -3028,10 +3028,10 @@ def Test_ignore_silent_error_in_filter()
       popup_create('popup', {filter: Filter})
       feedkeys("o\r", 'xnt')
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
-def Fibonacci(n: number): number
+def s:Fibonacci(n: number): number
   if n < 2
     return n
   else
@@ -3043,7 +3043,7 @@ def Test_recursive_call()
   Fibonacci(20)->assert_equal(6765)
 enddef
 
-def TreeWalk(dir: string): list<any>
+def s:TreeWalk(dir: string): list<any>
   return readdir(dir)->mapnew((_, val) =>
             fnamemodify(dir .. '/' .. val, ':p')->isdirectory()
                ? {[val]: TreeWalk(dir .. '/' .. val)}
@@ -3067,25 +3067,25 @@ def Test_invalid_function_name()
       vim9script
       def s: list<string>
   END
-  CheckScriptFailure(lines, 'E129:')
+  v9.CheckScriptFailure(lines, 'E129:')
 
   lines =<< trim END
       vim9script
       def g: list<string>
   END
-  CheckScriptFailure(lines, 'E129:')
+  v9.CheckScriptFailure(lines, 'E129:')
 
   lines =<< trim END
       vim9script
       def <SID>: list<string>
   END
-  CheckScriptFailure(lines, 'E884:')
+  v9.CheckScriptFailure(lines, 'E884:')
 
   lines =<< trim END
       vim9script
       def F list<string>
   END
-  CheckScriptFailure(lines, 'E488:')
+  v9.CheckScriptFailure(lines, 'E488:')
 enddef
 
 def Test_partial_call()
@@ -3113,7 +3113,7 @@ def Test_partial_call()
       var RepeatFunc = function('repeat', ['o'])
       assert_equal('ooooo', RepeatFunc(5))
   END
-  CheckDefAndScriptSuccess(lines)
+  v9.CheckDefAndScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
@@ -3122,12 +3122,12 @@ def Test_partial_call()
       var Expr: func(dict<any>): dict<any>
       const Call = Foo(Expr)
   END
-  CheckScriptFailure(lines, 'E1235:')
+  v9.CheckScriptFailure(lines, 'E1235:')
 enddef
 
 def Test_cmd_modifier()
   tab echo '0'
-  CheckDefFailure(['5tab echo 3'], 'E16:')
+  v9.CheckDefFailure(['5tab echo 3'], 'E16:')
 enddef
 
 def Test_restore_modifiers()
@@ -3146,7 +3146,7 @@ def Test_restore_modifiers()
       endfunc
       Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
   g:ei_after->assert_equal('')
 enddef
 
@@ -3154,7 +3154,7 @@ def StackTop()
   eval 1 + 2
   eval 2 + 3
   # call not on fourth line
-  StackBot()
+  g:StackBot()
 enddef
 
 def StackBot()
@@ -3164,7 +3164,7 @@ enddef
 
 def Test_callstack_def()
   try
-    StackTop()
+    g:StackTop()
   catch
     v:throwpoint->assert_match('Test_callstack_def\[2\]..StackTop\[4\]..StackBot, line 2')
   endtry
@@ -3185,7 +3185,7 @@ def Test_block_scoped_var()
       enddef
       Func()
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_reset_did_emsg()
@@ -3199,7 +3199,7 @@ def Test_reset_did_emsg()
       enddef
       Func()
   END
-  CheckScriptFailure(lines, 'E492:', 8)
+  v9.CheckScriptFailure(lines, 'E492:', 8)
   delfunc! g:Func
 enddef
 
@@ -3236,7 +3236,7 @@ def Test_abort_with_silent_call()
       assert_equal('none', g:result)
       unlet g:result
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_continues_with_silent_error()
@@ -3252,7 +3252,7 @@ def Test_continues_with_silent_error()
       assert_equal('yes', g:result)
       unlet g:result
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_abort_even_with_silent()
@@ -3267,7 +3267,7 @@ def Test_abort_even_with_silent()
       assert_equal('none', g:result)
       unlet g:result
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_cmdmod_silent_restored()
@@ -3315,7 +3315,7 @@ def Test_cmdmod_silent_nested()
       Crash()
       assert_equal('CbEbEaCa', result)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_dict_member_with_silent()
@@ -3333,7 +3333,7 @@ def Test_dict_member_with_silent()
       assert_equal('0', g:result)
       unlet g:result
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_skip_cmds_with_silent()
@@ -3351,7 +3351,7 @@ def Test_skip_cmds_with_silent()
 
       Func(true)
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_opfunc()
@@ -3396,12 +3396,12 @@ def Run_Test_opfunc_error()
   END
   call writefile(lines, 'XTest_opfunc_error')
 
-  var buf = RunVimInTerminal('-S XTest_opfunc_error', {rows: 6, wait_for_ruler: 0})
-  WaitForAssert(() => assert_match('Press ENTER', term_getline(buf, 6)))
-  WaitForAssert(() => assert_match('E684: list index out of range: 0', term_getline(buf, 5)))
+  var buf = g:RunVimInTerminal('-S XTest_opfunc_error', {rows: 6, wait_for_ruler: 0})
+  g:WaitForAssert(() => assert_match('Press ENTER', term_getline(buf, 6)))
+  g:WaitForAssert(() => assert_match('E684: list index out of range: 0', term_getline(buf, 5)))
 
   # clean up
-  StopVimInTerminal(buf)
+  g:StopVimInTerminal(buf)
   delete('XTest_opfunc_error')
 enddef
 
@@ -3419,7 +3419,7 @@ def Test_nested_lambda_in_closure()
       defcompile
       # not reached
   END
-  if !RunVim([], lines, '--clean -c WriteDone -c quit')
+  if !g:RunVim([], lines, '--clean -c WriteDone -c quit')
     return
   endif
   assert_equal(['Done'], readfile('XnestedDone'))
@@ -3446,8 +3446,8 @@ def Test_check_func_arg_types()
       enddef
   END
 
-  CheckScriptSuccess(lines + ['echo H(G(F1))'])
-  CheckScriptFailure(lines + ['echo H(G(F2))'], 'E1013:')
+  v9.CheckScriptSuccess(lines + ['echo H(G(F1))'])
+  v9.CheckScriptFailure(lines + ['echo H(G(F2))'], 'E1013:')
 enddef
 
 def Test_list_any_type_checked()
@@ -3462,13 +3462,13 @@ def Test_list_any_type_checked()
       Foo()
   END
   lines[2] = 'var l: list<any>'
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<any>', 2)
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<any>', 2)
 
   lines[2] = 'var l: list<any> = []'
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<any>', 2)
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<any>', 2)
 
   lines[2] = 'var l: list<any> = [11]'
-  CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<number>', 2)
+  v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<dict<any>> but got list<number>', 2)
 enddef
 
 def Test_compile_error()
@@ -3479,7 +3479,7 @@ def Test_compile_error()
     call g:Broken()
   END
   # First call: compilation error
-  CheckScriptFailure(lines, 'E1051: Wrong argument type for +')
+  v9.CheckScriptFailure(lines, 'E1051: Wrong argument type for +')
 
   # Second call won't try compiling again
   assert_fails('call g:Broken()', 'E1091: Function is not compiled: Broken')
@@ -3492,7 +3492,7 @@ def Test_compile_error()
     enddef
     silent! defcompile
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   # Calling the function won't try compiling again
   assert_fails('call g:Broken()', 'E1091: Function is not compiled: Broken')
@@ -3520,7 +3520,7 @@ def Test_ignored_argument()
 
       assert_equal([[1], [2], [3]], range(3)->mapnew((_, v) => [v]->map((_, w) => w + 1)))
   END
-  CheckScriptSuccess(lines)
+  v9.CheckScriptSuccess(lines)
 
   lines =<< trim END
       def Ignore(_: string): string
@@ -3528,29 +3528,29 @@ def Test_ignored_argument()
       enddef
       defcompile
   END
-  CheckScriptFailure(lines, 'E1181:', 1)
+  v9.CheckScriptFailure(lines, 'E1181:', 1)
 
   lines =<< trim END
       var _ = 1
   END
-  CheckDefAndScriptFailure(lines, 'E1181:', 1)
+  v9.CheckDefAndScriptFailure(lines, 'E1181:', 1)
 
   lines =<< trim END
       var x = _
   END
-  CheckDefAndScriptFailure(lines, 'E1181:', 1)
+  v9.CheckDefAndScriptFailure(lines, 'E1181:', 1)
 enddef
 
 def Test_too_many_arguments()
   var lines =<< trim END
     echo [0, 1, 2]->map(() => 123)
   END
-  CheckDefExecAndScriptFailure(lines, 'E1106: 2 arguments too many', 1)
+  v9.CheckDefExecAndScriptFailure(lines, 'E1106: 2 arguments too many', 1)
 
   lines =<< trim END
     echo [0, 1, 2]->map((_) => 123)
   END
-  CheckDefExecAndScriptFailure(lines, 'E1106: One argument too many', 1)
+  v9.CheckDefExecAndScriptFailure(lines, 'E1106: One argument too many', 1)
 enddef
 
 def Test_closing_brace_at_start_of_line()
@@ -3560,10 +3560,10 @@ def Test_closing_brace_at_start_of_line(
       Func(
       )
   END
-  call CheckDefAndScriptSuccess(lines)
+  v9.CheckDefAndScriptSuccess(lines)
 enddef
 
-func CreateMydict()
+func s:CreateMydict()
   let g:mydict = {}
   func g:mydict.afunc()
     let g:result = self.key
@@ -3588,7 +3588,7 @@ def Test_go_beyond_end_of_cmd()
     enddef
     defcompile
   END
-  CheckScriptFailure(lines, 'E476:')
+  v9.CheckScriptFailure(lines, 'E476:')
 enddef
 
 if has('python3')