patch 8.2.3991: Vim9: error when extending dict<any>
Problem: Vim9: error when extending dict<any> with another type that it was
initialized with.
Solution: Also set the type for dict<any> if the initializer has a more
specific type. (closes #9461)
diff --git a/src/list.c b/src/list.c
index 743ccf5..6b27578 100644
--- a/src/list.c
+++ b/src/list.c
@@ -2478,7 +2478,7 @@
{
// Check that map() does not change the type of the dict.
ga_init2(&type_list, sizeof(type_T *), 10);
- type = typval2type(argvars, get_copyID(), &type_list, TRUE);
+ type = typval2type(argvars, get_copyID(), &type_list, TVTT_DO_MEMBER);
}
if (argvars[0].v_type != VAR_BLOB
@@ -2763,9 +2763,9 @@
if (!is_new && in_vim9script())
{
- // Check that map() does not change the type of the dict.
+ // Check that extend() does not change the type of the dict.
ga_init2(&type_list, sizeof(type_T *), 10);
- type = typval2type(argvars, get_copyID(), &type_list, TRUE);
+ type = typval2type(argvars, get_copyID(), &type_list, TVTT_DO_MEMBER);
}
if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST)