Mercurial > vim
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')