patch 8.2.1256: Vim9: type wrong after getting dict item in lambda
Problem: Vim9: type wrong after getting dict item in lambda.
Solution: Set the type to "any" after enforcing dict type. (closes #6491)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 7feec38..b68eb3e 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1176,6 +1176,10 @@
let dl = [{'key': 0}, {'key': 22}]->filter({ _, v -> v['key'] })
assert_equal([{'key': 22}], dl)
+ dl = [{'key': 12}, {'foo': 34}]
+ assert_equal([{'key': 12}], filter(dl,
+ {_, v -> has_key(v, 'key') ? v['key'] == 12 : 0}))
+
call CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:')
enddef