patch 8.2.3322: Vim9: checking type of dict does not check member type
Problem: Vim9: checking type of dict does not check member type.
Solution: When getting the type of a typval use dv_type and lv_type.
(closes #8732)
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 6ca6c7b..5e45edb 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -922,6 +922,12 @@
END
CheckDefExecFailure(lines, 'E1012: Type mismatch; expected number but got string', 0)
CheckScriptFailure(['vim9script'] + lines, 'E1012:', 1)
+
+ lines =<< trim END
+ var d: dict<bool>
+ extend(d, {b: 0})
+ END
+ CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected dict<bool> but got dict<number>', 2)
enddef
func g:ExtendList(l)
@@ -947,6 +953,12 @@
END
CheckDefExecFailure(lines, 'E1012: Type mismatch; expected number but got string', 0)
CheckScriptFailure(['vim9script'] + lines, 'E1012:', 1)
+
+ lines =<< trim END
+ var l: list<bool>
+ extend(l, [0])
+ END
+ CheckDefAndScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected list<bool> but got list<number>', 2)
enddef
def Test_extend_return_type()