patch 8.2.4666: Vim9: assignment not recognized in skipped block
Problem: Vim9: assignment not recognized in skipped block.
Solution: When skipping assume identifier exists. (closes #10059)
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 38ee7f2..56d3bf2 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -1363,7 +1363,12 @@
var lines =<< trim END
d.key = 'asdf'
END
- v9.CheckDefFailure(lines, 'E1146:', 1)
+ v9.CheckDefFailure(lines, 'E1089: Unknown variable: d', 1)
+
+ lines =<< trim END
+ d['key'] = 'asdf'
+ END
+ v9.CheckDefFailure(lines, 'E1089: Unknown variable: d', 1)
lines =<< trim END
if 0
@@ -1371,11 +1376,6 @@
endif
END
v9.CheckDefSuccess(lines)
-
- lines =<< trim END
- d['key'] = 'asdf'
- END
- v9.CheckDefFailure(lines, 'E1146:', 1)
enddef
def Test_magic_not_used()
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 71cef1e..5486458 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2003,6 +2003,19 @@
assert_equal([3, 4], result)
enddef
DefFalse()
+
+ def BuildDiagrams()
+ var diagrams: list<any>
+ if false
+ var max = 0
+ for v in diagrams
+ var l = 3
+ if max < l | max = l | endif
+ v->add(l)
+ endfor
+ endif
+ enddef
+ BuildDiagrams()
END
v9.CheckDefAndScriptSuccess(lines)
enddef