0
0
mirror of https://github.com/vim/vim.git synced 2025-10-04 05:25:06 -04:00

patch 8.2.1766: Vim9: Some tests are still using :let

Problem:    Vim9: Some tests are still using :let.
Solution:   Change the last few declarations to use :var.
This commit is contained in:
Bram Moolenaar
2020-09-27 22:47:05 +02:00
parent 9830938e77
commit 7a9cbca00a
11 changed files with 177 additions and 187 deletions

View File

@@ -355,6 +355,9 @@ func FinishTesting()
qall!
endfunc
" TODO: remove later
let v:disallow_let = 1
" Source the test script. First grab the file name, in case the script
" navigates away. g:testname can be used by the tests.
let g:testname = expand('%')

View File

@@ -83,13 +83,13 @@ endfunc
def Test_vim9_maparg()
nmap { w
let one: string = maparg('{')
var one: string = maparg('{')
assert_equal('w', one)
let two: string = maparg('{', 'n')
var two: string = maparg('{', 'n')
assert_equal('w', two)
let three: string = maparg('{', 'n', 0)
var three: string = maparg('{', 'n', 0)
assert_equal('w', three)
let four: dict<any> = maparg('{', 'n', 0, 1)
var four: dict<any> = maparg('{', 'n', 0, 1)
assert_equal(['{', 'w', 'n'], [four.lhs, four.rhs, four.mode])
nunmap {
enddef

View File

@@ -2690,7 +2690,7 @@ def Popupwin_close_prevwin()
split
wincmd b
assert_equal(2, winnr())
let buf = term_start(&shell, #{hidden: 1})
var buf = term_start(&shell, #{hidden: 1})
popup_create(buf, {})
TermWait(buf, 100)
popup_clear(true)

View File

@@ -226,8 +226,8 @@ def Test_prop_find2()
endfor
endfor
cursor(1, 8)
let expected = {'lnum': 1, 'id': 0, 'col': 14, 'end': 1, 'type': 'misspell', 'length': 2, 'start': 1}
let result = prop_find(#{type: 'misspell', skipstart: true}, 'f')
var expected = {'lnum': 1, 'id': 0, 'col': 14, 'end': 1, 'type': 'misspell', 'length': 2, 'start': 1}
var result = prop_find(#{type: 'misspell', skipstart: true}, 'f')
assert_equal(expected, result)
prop_type_delete('misspell')

View File

@@ -3,9 +3,6 @@
source check.vim
source vim9.vim
" TODO: remove later
let v:disallow_let = 1
let s:appendToMe = 'xxx'
let s:addToMe = 111
let g:existing = 'yes'

View File

@@ -4,9 +4,6 @@ source check.vim
source vim9.vim
source view_util.vim
" TODO: remove later
let v:disallow_let = 1
def Test_edit_wildcards()
var filename = 'Xtest'
edit `=filename`

View File

@@ -2,9 +2,6 @@
source check.vim
" TODO: remove later
let v:disallow_let = 1
func NotCompiled()
echo "not"
endfunc

View File

@@ -3,9 +3,6 @@
source check.vim
source vim9.vim
" TODO: remove later
let v:disallow_let = 1
let g:cond = v:false
def FuncOne(arg: number): string
return 'yes'

View File

@@ -88,7 +88,7 @@ def Test_call_ufunc_count()
enddef
def MyVarargs(arg: string, ...rest: list<string>): string
let res = arg
var res = arg
for s in rest
res ..= ',' .. s
endfor
@@ -160,7 +160,7 @@ func Test_call_default_args_from_func()
endfunc
def Test_nested_global_function()
let lines =<< trim END
var lines =<< trim END
vim9script
def Outer()
def g:Inner(): string
@@ -209,7 +209,7 @@ def Test_nested_global_function()
enddef
def Test_global_local_function()
let lines =<< trim END
var lines =<< trim END
vim9script
def g:Func(): string
return 'global'
@@ -233,13 +233,13 @@ def Test_global_local_function()
enddef
def Test_local_function_shadows_global()
let lines =<< trim END
var lines =<< trim END
vim9script
def g:Gfunc(): string
return 'global'
enddef
def AnotherFunc(): number
let Gfunc = function('len')
var Gfunc = function('len')
return Gfunc('testing')
enddef
g:Gfunc()->assert_equal('global')
@@ -272,7 +272,7 @@ def Test_call_wrong_args()
CheckDefFailure(['bufnr(xxx)'], 'E1001:')
CheckScriptFailure(['def Func(Ref: func(s: string))'], 'E475:')
let lines =<< trim END
var lines =<< trim END
vim9script
def Func(s: string)
echo s
@@ -292,7 +292,7 @@ def Test_call_wrong_args()
defcompile
END
writefile(lines, 'Xscript')
let didCatch = false
var didCatch = false
try
source Xscript
catch
@@ -328,7 +328,7 @@ enddef
" Default arg and varargs
def MyDefVarargs(one: string, two = 'foo', ...rest: list<string>): string
let res = one .. ',' .. two
var res = one .. ',' .. two
for s in rest
res ..= ',' .. s
endfor
@@ -345,7 +345,7 @@ def Test_call_def_varargs()
CheckDefFailure(['MyDefVarargs("one", "two", 123)'],
'E1013: Argument 3: type mismatch, expected string but got number')
let lines =<< trim END
var lines =<< trim END
vim9script
def Func(...l: list<string>)
echo l
@@ -410,7 +410,7 @@ def Test_call_def_varargs()
enddef
def Test_call_call()
let l = [3, 2, 1]
var l = [3, 2, 1]
call('reverse', [l])
l->assert_equal([1, 2, 3])
enddef
@@ -430,30 +430,30 @@ def FuncVarargs(...arg: list<string>): string
enddef
def Test_func_type_varargs()
let RefDefArg: func(?string)
var RefDefArg: func(?string)
RefDefArg = FuncOneDefArg
RefDefArg()
s:value->assert_equal('text')
RefDefArg('some')
s:value->assert_equal('some')
let RefDef2Arg: func(?number, ?string): string
var RefDef2Arg: func(?number, ?string): string
RefDef2Arg = FuncTwoDefArg
RefDef2Arg()->assert_equal('123text')
RefDef2Arg(99)->assert_equal('99text')
RefDef2Arg(77, 'some')->assert_equal('77some')
CheckDefFailure(['let RefWrong: func(string?)'], 'E1010:')
CheckDefFailure(['let RefWrong: func(?string, string)'], 'E1007:')
CheckDefFailure(['var RefWrong: func(string?)'], 'E1010:')
CheckDefFailure(['var RefWrong: func(?string, string)'], 'E1007:')
let RefVarargs: func(...list<string>): string
var RefVarargs: func(...list<string>): string
RefVarargs = FuncVarargs
RefVarargs()->assert_equal('')
RefVarargs('one')->assert_equal('one')
RefVarargs('one', 'two')->assert_equal('one,two')
CheckDefFailure(['let RefWrong: func(...list<string>, string)'], 'E110:')
CheckDefFailure(['let RefWrong: func(...list<string>, ?string)'], 'E110:')
CheckDefFailure(['var RefWrong: func(...list<string>, string)'], 'E110:')
CheckDefFailure(['var RefWrong: func(...list<string>, ?string)'], 'E110:')
enddef
" Only varargs
@@ -470,7 +470,7 @@ def Test_call_varargs_only()
enddef
def Test_using_var_as_arg()
writefile(['def Func(x: number)', 'let x = 234', 'enddef', 'defcompile'], 'Xdef')
writefile(['def Func(x: number)', 'var x = 234', 'enddef', 'defcompile'], 'Xdef')
assert_fails('so Xdef', 'E1006:', '', 1, 'Func')
delete('Xdef')
enddef
@@ -485,10 +485,10 @@ enddef
def Test_assign_to_argument()
# works for dict and list
let d: dict<string> = {}
var d: dict<string> = {}
DictArg(d)
d['key']->assert_equal('value')
let l: list<string> = []
var l: list<string> = []
ListArg(l)
l[0]->assert_equal('value')
@@ -518,12 +518,12 @@ def Test_call_funcref()
assert_fails('NotAFunc()', 'E117:', '', 2, 'Test_call_funcref') # comment after call
assert_fails('g:NotAFunc()', 'E117:', '', 3, 'Test_call_funcref')
let lines =<< trim END
var lines =<< trim END
vim9script
def RetNumber(): number
return 123
enddef
let Funcref: func: number = function('RetNumber')
var Funcref: func: number = function('RetNumber')
Funcref()->assert_equal(123)
END
CheckScriptSuccess(lines)
@@ -536,7 +536,7 @@ def Test_call_funcref()
def Bar(F: func: number): number
return F()
enddef
let Funcref = function('RetNumber')
var Funcref = function('RetNumber')
Bar(Funcref)->assert_equal(123)
END
CheckScriptSuccess(lines)
@@ -546,7 +546,7 @@ def Test_call_funcref()
def UseNumber(nr: number)
echo nr
enddef
let Funcref: func(number) = function('UseNumber')
var Funcref: func(number) = function('UseNumber')
Funcref(123)
END
CheckScriptSuccess(lines)
@@ -556,7 +556,7 @@ def Test_call_funcref()
def UseNumber(nr: number)
echo nr
enddef
let Funcref: func(string) = function('UseNumber')
var Funcref: func(string) = function('UseNumber')
END
CheckScriptFailure(lines, 'E1012: Type mismatch; expected func(string) but got func(number)')
@@ -565,7 +565,7 @@ def Test_call_funcref()
def EchoNr(nr = 34)
g:echo = nr
enddef
let Funcref: func(?number) = function('EchoNr')
var Funcref: func(?number) = function('EchoNr')
Funcref()
g:echo->assert_equal(34)
Funcref(123)
@@ -578,7 +578,7 @@ def Test_call_funcref()
def EchoList(...l: list<number>)
g:echo = l
enddef
let Funcref: func(...list<number>) = function('EchoList')
var Funcref: func(...list<number>) = function('EchoList')
Funcref()
g:echo->assert_equal([])
Funcref(1, 2, 3)
@@ -593,7 +593,7 @@ def Test_call_funcref()
g:listarg = l
return nr
enddef
let Funcref: func(number, ?number, ...list<number>): number = function('OptAndVar')
var Funcref: func(number, ?number, ...list<number>): number = function('OptAndVar')
Funcref(10)->assert_equal(10)
g:optarg->assert_equal(12)
g:listarg->assert_equal([])
@@ -614,21 +614,21 @@ let NotAFunc = 'text'
def CombineFuncrefTypes()
# same arguments, different return type
let Ref1: func(bool): string
let Ref2: func(bool): number
let Ref3: func(bool): any
var Ref1: func(bool): string
var Ref2: func(bool): number
var Ref3: func(bool): any
Ref3 = g:cond ? Ref1 : Ref2
# different number of arguments
let Refa1: func(bool): number
let Refa2: func(bool, number): number
let Refa3: func: number
var Refa1: func(bool): number
var Refa2: func(bool, number): number
var Refa3: func: number
Refa3 = g:cond ? Refa1 : Refa2
# different argument types
let Refb1: func(bool, string): number
let Refb2: func(string, number): number
let Refb3: func(any, any): number
var Refb1: func(bool, string): number
var Refb2: func(string, number): number
var Refb3: func(any, any): number
Refb3 = g:cond ? Refb1 : Refb2
enddef
@@ -698,31 +698,31 @@ def Test_arg_type_wrong()
enddef
def Test_vim9script_call()
let lines =<< trim END
var lines =<< trim END
vim9script
let var = ''
var name = ''
def MyFunc(arg: string)
var = arg
name = arg
enddef
MyFunc('foobar')
var->assert_equal('foobar')
name->assert_equal('foobar')
let str = 'barfoo'
var str = 'barfoo'
str->MyFunc()
var->assert_equal('barfoo')
name->assert_equal('barfoo')
g:value = 'value'
g:value->MyFunc()
var->assert_equal('value')
name->assert_equal('value')
let listvar = []
var listvar = []
def ListFunc(arg: list<number>)
listvar = arg
enddef
[1, 2, 3]->ListFunc()
listvar->assert_equal([1, 2, 3])
let dictvar = {}
var dictvar = {}
def DictFunc(arg: dict<number>)
dictvar = arg
enddef
@@ -738,28 +738,28 @@ def Test_vim9script_call()
dictvar->assert_equal(#{a: 3, b: 4})
('text')->MyFunc()
var->assert_equal('text')
name->assert_equal('text')
("some")->MyFunc()
var->assert_equal('some')
name->assert_equal('some')
# line starting with single quote is not a mark
# line starting with double quote can be a method call
'asdfasdf'->MyFunc()
var->assert_equal('asdfasdf')
name->assert_equal('asdfasdf')
"xyz"->MyFunc()
var->assert_equal('xyz')
name->assert_equal('xyz')
def UseString()
'xyork'->MyFunc()
enddef
UseString()
var->assert_equal('xyork')
name->assert_equal('xyork')
def UseString2()
"knife"->MyFunc()
enddef
UseString2()
var->assert_equal('knife')
name->assert_equal('knife')
# prepending a colon makes it a mark
new
@@ -773,7 +773,7 @@ def Test_vim9script_call()
'continued'
)
assert_equal('continued',
var
name
)
call MyFunc(
@@ -783,7 +783,7 @@ def Test_vim9script_call()
)
assert_equal(
'morelines',
var)
name)
END
writefile(lines, 'Xcall.vim')
source Xcall.vim
@@ -791,11 +791,11 @@ def Test_vim9script_call()
enddef
def Test_vim9script_call_fail_decl()
let lines =<< trim END
var lines =<< trim END
vim9script
let var = ''
var name = ''
def MyFunc(arg: string)
let var = 123
var name = 123
enddef
defcompile
END
@@ -803,7 +803,7 @@ def Test_vim9script_call_fail_decl()
enddef
def Test_vim9script_call_fail_type()
let lines =<< trim END
var lines =<< trim END
vim9script
def MyFunc(arg: string)
echo arg
@@ -814,7 +814,7 @@ def Test_vim9script_call_fail_type()
enddef
def Test_vim9script_call_fail_const()
let lines =<< trim END
var lines =<< trim END
vim9script
const var = ''
def MyFunc(arg: string)
@@ -831,7 +831,7 @@ enddef
" recognized.
func Test_function_python()
CheckFeature python3
let py = 'python3'
var py = 'python3'
execute py "<< EOF"
def do_something():
return 1
@@ -839,7 +839,7 @@ EOF
endfunc
def Test_delfunc()
let lines =<< trim END
var lines =<< trim END
vim9script
def g:GoneSoon()
echo 'hello'
@@ -881,7 +881,7 @@ def Test_redef_failure()
enddef
def Test_vim9script_func()
let lines =<< trim END
var lines =<< trim END
vim9script
func Func(arg)
echo a:arg
@@ -992,13 +992,13 @@ def FuncOneArgRetAny(arg: any): any
enddef
def Test_func_type()
let Ref1: func()
var Ref1: func()
s:funcResult = 0
Ref1 = FuncNoArgNoRet
Ref1()
s:funcResult->assert_equal(11)
let Ref2: func
var Ref2: func
s:funcResult = 0
Ref2 = FuncNoArgNoRet
Ref2()
@@ -1021,7 +1021,7 @@ def Test_func_type()
enddef
def Test_repeat_return_type()
let res = 0
var res = 0
for n in repeat([1], 3)
res += n
endfor
@@ -1036,7 +1036,7 @@ enddef
def Test_argv_return_type()
next fileone filetwo
let res = ''
var res = ''
for name in argv()
res ..= name
endfor
@@ -1044,60 +1044,60 @@ def Test_argv_return_type()
enddef
def Test_func_type_part()
let RefVoid: func: void
var RefVoid: func: void
RefVoid = FuncNoArgNoRet
RefVoid = FuncOneArgNoRet
CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func(...) but got func(): number')
CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetString'], 'E1012: Type mismatch; expected func(...) but got func(): string')
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')
let RefAny: func(): any
var RefAny: func(): any
RefAny = FuncNoArgRetNumber
RefAny = FuncNoArgRetString
CheckDefFailure(['let RefAny: func(): any', 'RefAny = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func()')
CheckDefFailure(['let RefAny: func(): any', 'RefAny = FuncOneArgNoRet'], 'E1012: Type mismatch; expected func(): any but got func(number)')
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)')
let RefNr: func: number
var RefNr: func: number
RefNr = FuncNoArgRetNumber
RefNr = FuncOneArgRetNumber
CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(...): number but got func()')
CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1012: Type mismatch; expected func(...): number but got func(): string')
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')
let RefStr: func: string
var RefStr: func: string
RefStr = FuncNoArgRetString
RefStr = FuncOneArgRetString
CheckDefFailure(['let RefStr: func: string', 'RefStr = FuncNoArgNoRet'], 'E1012: Type mismatch; expected func(...): string but got func()')
CheckDefFailure(['let RefStr: func: string', 'RefStr = FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func(...): string but got func(): number')
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')
enddef
def Test_func_type_fails()
CheckDefFailure(['let ref1: func()'], 'E704:')
CheckDefFailure(['var ref1: func()'], 'E704:')
CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncNoArgRetNumber'], 'E1012: Type mismatch; expected func() but got func(): number')
CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgNoRet'], 'E1012: Type mismatch; expected func() but got func(number)')
CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1012: Type mismatch; expected func() but got func(number): number')
CheckDefFailure(['let Ref1: func(bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(bool) but got func(bool, number)')
CheckDefFailure(['let Ref1: func(?bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(?bool) but got func(bool, number)')
CheckDefFailure(['let Ref1: func(...bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: Type mismatch; expected func(...bool) but got func(bool, number)')
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(['let RefWrong: func(string ,number)'], 'E1068:')
CheckDefFailure(['let RefWrong: func(string,number)'], 'E1069:')
CheckDefFailure(['let RefWrong: func(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'], 'E1005:')
CheckDefFailure(['let RefWrong: func(bool):string'], 'E1069:')
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:')
enddef
def Test_func_return_type()
let nr: number
var nr: number
nr = FuncNoArgRetNumber()
nr->assert_equal(1234)
nr = FuncOneArgRetAny(122)
nr->assert_equal(122)
let str: string
var str: string
str = FuncOneArgRetAny('yes')
str->assert_equal('yes')
CheckDefFailure(['let str: string', 'str = FuncNoArgRetNumber()'], 'E1012: Type mismatch; expected string but got number')
CheckDefFailure(['var str: string', 'str = FuncNoArgRetNumber()'], 'E1012: Type mismatch; expected string but got number')
enddef
def MultiLine(
@@ -1161,7 +1161,7 @@ endfunc
def Test_error_reporting()
# comment lines at the start of the function
let lines =<< trim END
var lines =<< trim END
" comment
def Func()
# comment
@@ -1183,7 +1183,7 @@ def Test_error_reporting()
lines =<< trim END
" comment
def Func()
let x = 1234
var x = 1234
# comment
# comment
invalid
@@ -1202,9 +1202,9 @@ def Test_error_reporting()
lines =<< trim END
vim9script
def Func()
let db = #{foo: 1, bar: 2}
var db = #{foo: 1, bar: 2}
# comment
let x = db.asdf
var x = db.asdf
enddef
defcompile
Func()
@@ -1222,14 +1222,14 @@ enddef
def Test_deleted_function()
CheckDefExecFailure([
'let RefMe: func = function("g:DelMe")',
'var RefMe: func = function("g:DelMe")',
'delfunc g:DelMe',
'echo RefMe()'], 'E117:')
enddef
def Test_unknown_function()
CheckDefExecFailure([
'let Ref: func = function("NotExist")',
'var Ref: func = function("NotExist")',
'delfunc g:NotExist'], 'E700:')
enddef
@@ -1238,12 +1238,12 @@ def RefFunc(Ref: func(string): string): string
enddef
def Test_closure_simple()
let local = 'some '
var local = 'some '
RefFunc({s -> local .. s})->assert_equal('some more')
enddef
def MakeRef()
let local = 'some '
var local = 'some '
g:Ref = {s -> local .. s}
enddef
@@ -1254,7 +1254,7 @@ def Test_closure_ref_after_return()
enddef
def MakeTwoRefs()
let local = ['some']
var local = ['some']
g:Extend = {s -> local->add(s)}
g:Read = {-> local}
enddef
@@ -1292,12 +1292,12 @@ def Test_closure_two_indirect_refs()
enddef
def MakeArgRefs(theArg: string)
let local = 'loc_val'
var local = 'loc_val'
g:UseArg = {s -> theArg .. '/' .. local .. '/' .. s}
enddef
def MakeArgRefsVarargs(theArg: string, ...rest: list<string>)
let local = 'the_loc'
var local = 'the_loc'
g:UseVararg = {s -> theArg .. '/' .. local .. '/' .. s .. '/' .. join(rest)}
enddef
@@ -1313,7 +1313,7 @@ def Test_closure_using_argument()
enddef
def MakeGetAndAppendRefs()
let local = 'a'
var local = 'a'
def Append(arg: string)
local ..= arg
@@ -1339,7 +1339,7 @@ def Test_closure_append_get()
enddef
def Test_nested_closure()
let local = 'text'
var local = 'text'
def Closure(arg: string): string
return local .. arg
enddef
@@ -1351,18 +1351,18 @@ func GetResult(Ref)
endfunc
def Test_call_closure_not_compiled()
let text = 'text'
var text = 'text'
g:Ref = {s -> s .. text}
GetResult(g:Ref)->assert_equal('sometext')
enddef
def Test_double_closure_fails()
let lines =<< trim END
var lines =<< trim END
vim9script
def Func()
let var = 0
var name = 0
for i in range(2)
timer_start(0, {-> var})
timer_start(0, {-> name})
endfor
enddef
Func()
@@ -1371,7 +1371,7 @@ def Test_double_closure_fails()
enddef
def Test_nested_closure_fails()
let lines =<< trim END
var lines =<< trim END
vim9script
def FuncA()
FuncB(0)
@@ -1385,40 +1385,40 @@ def Test_nested_closure_fails()
enddef
def Test_sort_return_type()
let res: list<number>
var res: list<number>
res = [1, 2, 3]->sort()
enddef
def Test_sort_argument()
let res = ['b', 'a', 'c']->sort('i')
var res = ['b', 'a', 'c']->sort('i')
res->assert_equal(['a', 'b', 'c'])
enddef
def Test_getqflist_return_type()
let l = getqflist()
var l = getqflist()
l->assert_equal([])
let d = getqflist(#{items: 0})
var d = getqflist(#{items: 0})
d->assert_equal(#{items: []})
enddef
def Test_getloclist_return_type()
let l = getloclist(1)
var l = getloclist(1)
l->assert_equal([])
let d = getloclist(1, #{items: 0})
var d = getloclist(1, #{items: 0})
d->assert_equal(#{items: []})
enddef
def Test_copy_return_type()
let l = copy([1, 2, 3])
let res = 0
var l = copy([1, 2, 3])
var res = 0
for n in l
res += n
endfor
res->assert_equal(6)
let dl = deepcopy([1, 2, 3])
var dl = deepcopy([1, 2, 3])
res = 0
for n in dl
res += n
@@ -1429,8 +1429,8 @@ def Test_copy_return_type()
enddef
def Test_extend_return_type()
let l = extend([1, 2], [3])
let res = 0
var l = extend([1, 2], [3])
var res = 0
for n in l
res += n
endfor
@@ -1442,8 +1442,8 @@ def Test_garbagecollect()
enddef
def Test_insert_return_type()
let l = insert([2, 1], 3)
let res = 0
var l = insert([2, 1], 3)
var res = 0
for n in l
res += n
endfor
@@ -1456,8 +1456,8 @@ def Test_keys_return_type()
enddef
def Test_reverse_return_type()
let l = reverse([1, 2, 3])
let res = 0
var l = reverse([1, 2, 3])
var res = 0
for n in l
res += n
endfor
@@ -1465,8 +1465,8 @@ def Test_reverse_return_type()
enddef
def Test_remove_return_type()
let l = remove(#{one: [1, 2], two: [3, 4]}, 'one')
let res = 0
var l = remove(#{one: [1, 2], two: [3, 4]}, 'one')
var res = 0
for n in l
res += n
endfor
@@ -1474,8 +1474,8 @@ def Test_remove_return_type()
enddef
def Test_filter_return_type()
let l = filter([1, 2, 3], {-> 1})
let res = 0
var l = filter([1, 2, 3], {-> 1})
var res = 0
for n in l
res += n
endfor
@@ -1483,7 +1483,7 @@ def Test_filter_return_type()
enddef
def Test_bufnr()
let buf = bufnr()
var buf = bufnr()
bufnr('%')->assert_equal(buf)
buf = bufnr('Xdummy', true)
@@ -1502,9 +1502,9 @@ def Test_char2nr()
enddef
def Test_getreg_return_type()
let s1: string = getreg('"')
let s2: string = getreg('"', 1)
let s3: list<string> = getreg('"', 1, 1)
var s1: string = getreg('"')
var s2: string = getreg('"', 1)
var s3: list<string> = getreg('"', 1, 1)
enddef
def Wrong_dict_key_type(items: list<number>): list<number>
@@ -1516,7 +1516,7 @@ def Test_wrong_dict_key_type()
enddef
def Line_continuation_in_def(dir: string = ''): string
let path: string = empty(dir)
var path: string = empty(dir)
\ ? 'empty'
\ : 'full'
return path
@@ -1527,7 +1527,7 @@ def Test_line_continuation_in_def()
enddef
def Line_continuation_in_lambda(): list<string>
let x = range(97, 100)
var x = range(97, 100)
->map({_, v -> nr2char(v)
->toupper()})
->reverse()
@@ -1571,9 +1571,9 @@ def Test_bufname()
enddef
def Test_bufwinid()
let origwin = win_getid()
var origwin = win_getid()
below split SomeFile
let SomeFileID = win_getid()
var SomeFileID = win_getid()
below split OtherFile
below split SomeFile
bufwinid('SomeFile')->assert_equal(SomeFileID)
@@ -1596,7 +1596,7 @@ def Test_expand()
enddef
def Test_getbufinfo()
let bufinfo = getbufinfo(bufnr())
var bufinfo = getbufinfo(bufnr())
getbufinfo('%')->assert_equal(bufinfo)
edit Xtestfile1
@@ -1609,9 +1609,9 @@ enddef
def Test_getbufline()
e SomeFile
let buf = bufnr()
var buf = bufnr()
e #
let lines = ['aaa', 'bbb', 'ccc']
var lines = ['aaa', 'bbb', 'ccc']
setbufline(buf, 1, lines)
getbufline('#', 1, '$')->assert_equal(lines)
@@ -1621,7 +1621,7 @@ enddef
def Test_getchangelist()
new
setline(1, 'some text')
let changelist = bufnr()->getchangelist()
var changelist = bufnr()->getchangelist()
getchangelist('%')->assert_equal(changelist)
bwipe!
enddef
@@ -1634,13 +1634,13 @@ enddef
def Test_getcompletion()
set wildignore=*.vim,*~
let l = getcompletion('run', 'file', true)
var l = getcompletion('run', 'file', true)
l->assert_equal([])
set wildignore&
enddef
def Test_getreg()
let lines = ['aaa', 'bbb', 'ccc']
var lines = ['aaa', 'bbb', 'ccc']
setreg('a', lines)
getreg('a', true, true)->assert_equal(lines)
enddef
@@ -1669,8 +1669,8 @@ def Test_index()
enddef
def Test_list2str_str2list_utf8()
let s = "\u3042\u3044"
let l = [0x3042, 0x3044]
var s = "\u3042\u3044"
var l = [0x3042, 0x3044]
str2list(s, true)->assert_equal(l)
list2str(l, true)->assert_equal(s)
enddef
@@ -1682,7 +1682,7 @@ def SID(): number
enddef
def Test_maparg()
let lnum = str2nr(expand('<sflnum>'))
var lnum = str2nr(expand('<sflnum>'))
map foo bar
maparg('foo', '', false, true)->assert_equal(#{
lnum: lnum + 1,
@@ -1718,7 +1718,7 @@ enddef
def Test_search()
new
setline(1, ['foo', 'bar'])
let val = 0
var val = 0
# skip expr returns boolean
search('bar', 'W', 0, 0, {-> val == 1})->assert_equal(2)
:1
@@ -1766,15 +1766,15 @@ def Test_setbufvar()
enddef
def Test_setloclist()
let items = [#{filename: '/tmp/file', lnum: 1, valid: true}]
let what = #{items: items}
var items = [#{filename: '/tmp/file', lnum: 1, valid: true}]
var what = #{items: items}
setqflist([], ' ', what)
setloclist(0, [], ' ', what)
enddef
def Test_setreg()
setreg('a', ['aaa', 'bbb', 'ccc'])
let reginfo = getreginfo('a')
var reginfo = getreginfo('a')
setreg('a', reginfo)
getreginfo('a')->assert_equal(reginfo)
enddef
@@ -1800,10 +1800,10 @@ def Test_strchars()
enddef
def Test_submatch()
let pat = 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'
let Rep = {-> range(10)->map({_, v -> submatch(v, true)})->string()}
let actual = substitute('A123456789', pat, Rep, '')
let expected = "[['A123456789'], ['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9']]"
var pat = 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'
var Rep = {-> range(10)->map({_, v -> submatch(v, true)})->string()}
var actual = substitute('A123456789', pat, Rep, '')
var expected = "[['A123456789'], ['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9']]"
actual->assert_equal(expected)
enddef
@@ -1818,7 +1818,7 @@ def Test_term_gettty()
if !has('terminal')
MissingFeature 'terminal'
else
let buf = Run_shell_in_terminal({})
var buf = Run_shell_in_terminal({})
term_gettty(buf, true)->assert_notequal('')
StopShellInTerminal(buf)
endif
@@ -1829,7 +1829,7 @@ def Test_term_start()
MissingFeature 'terminal'
else
botright new
let winnr = winnr()
var winnr = winnr()
term_start(&shell, #{curwin: true})
winnr()->assert_equal(winnr)
bwipe!
@@ -1837,9 +1837,9 @@ def Test_term_start()
enddef
def Test_timer_paused()
let id = timer_start(50, {-> 0})
var id = timer_start(50, {-> 0})
timer_pause(id, true)
let info = timer_info(id)
var info = timer_info(id)
info[0]['paused']->assert_equal(1)
timer_stop(id)
enddef
@@ -1884,7 +1884,7 @@ def Test_closure_in_map()
enddef
def Test_partial_call()
let Xsetlist = function('setloclist', [0])
var Xsetlist = function('setloclist', [0])
Xsetlist([], ' ', {'title': 'test'})
getloclist(0, {'title': 1})->assert_equal({'title': 'test'})
@@ -1909,7 +1909,7 @@ enddef
def Test_restore_modifiers()
# check that when compiling a :def function command modifiers are not messed
# up.
let lines =<< trim END
var lines =<< trim END
vim9script
set eventignore=
autocmd QuickFixCmdPost * copen

View File

@@ -6,9 +6,6 @@ source view_util.vim
source vim9.vim
source shared.vim
" TODO: remove later
let v:disallow_let = 1
def Test_range_only()
new
setline(1, ['blah', 'Blah'])

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1766,
/**/
1765,
/**/