diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-01-03 12:28:03 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-01-03 12:28:03 +0000 |
commit | 114dbda7858df956161c0adba5d4d8279645ff67 (patch) | |
tree | 3723c994d332ef83873644bee1119e9805dc87d3 /src/list.c | |
parent | 5c75eed758fbeb39825834d51f3ee4e08f137af3 (diff) |
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.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/list.c b/src/list.c index 743ccf5193..6b275789d5 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) |