1
0
forked from aniani/vim

patch 8.2.4103: Vim9: variable declared in for loop not initialzed

Problem:    Vim9: variable declared in for loop not initialzed.
Solution:   Always initialze the variable. (closes #9535)
This commit is contained in:
Bram Moolenaar
2022-01-15 21:44:44 +00:00
parent 857c8bb1bb
commit 38ecd97226
5 changed files with 67 additions and 4 deletions

View File

@@ -587,6 +587,41 @@ def Test_assign_index()
CheckDefFailure(lines, 'E1012: Type mismatch; expected list<number> but got dict<unknown>', 2)
enddef
def Test_init_in_for_loop()
var lines =<< trim END
var l: list<number> = []
for i in [3, 4]
var n: number
add(l, n)
n = 123
endfor
assert_equal([0, 0], l)
END
CheckDefAndScriptSuccess(lines)
lines =<< trim END
var l: list<number> = []
for i in [3, 4]
var n: number = 0
add(l, n)
n = 123
endfor
assert_equal([0, 0], l)
END
CheckDefAndScriptSuccess(lines)
lines =<< trim END
var l: list<number> = []
for i in [3, 4]
var n: number = 3
add(l, n)
n = 123
endfor
assert_equal([3, 3], l)
END
CheckDefAndScriptSuccess(lines)
enddef
def Test_extend_list()
var lines =<< trim END
var l1: list<number>