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)
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 80ee6b7..7f4d87a 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -587,6 +587,41 @@
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>