summaryrefslogtreecommitdiff
path: root/src/list.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-01-03 12:28:03 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-03 12:28:03 +0000
commit114dbda7858df956161c0adba5d4d8279645ff67 (patch)
tree3723c994d332ef83873644bee1119e9805dc87d3 /src/list.c
parent5c75eed758fbeb39825834d51f3ee4e08f137af3 (diff)
downloadvim-git-114dbda7858df956161c0adba5d4d8279645ff67.tar.gz
patch 8.2.3991: Vim9: error when extending dict<any>v8.2.3991
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)
Diffstat (limited to 'src/list.c')
-rw-r--r--src/list.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/list.c b/src/list.c
index 743ccf519..6b275789d 100644
--- a/src/list.c
+++ b/src/list.c
@@ -2478,7 +2478,7 @@ filter_map(typval_T *argvars, typval_T *rettv, filtermap_T filtermap)
{
// 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 @@ extend(typval_T *argvars, typval_T *rettv, char_u *arg_errmsg, int is_new)
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)