1
0
forked from aniani/vim

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)
This commit is contained in:
Bram Moolenaar
2022-01-03 12:28:03 +00:00
parent 5c75eed758
commit 114dbda785
10 changed files with 66 additions and 28 deletions

View File

@@ -2286,11 +2286,6 @@ compile_assignment(char_u *arg, exarg_T *eap, cmdidx_T cmdidx, cctx_T *cctx)
&& (lhs.lhs_type->tt_type == VAR_DICT
|| lhs.lhs_type->tt_type == VAR_LIST)
&& lhs.lhs_type->tt_member != NULL
&& !(lhs.lhs_type->tt_member == &t_any
&& oplen > 0
&& rhs_type != NULL
&& rhs_type->tt_type == lhs.lhs_type->tt_type
&& rhs_type->tt_member != &t_unknown)
&& lhs.lhs_type->tt_member != &t_unknown)
// Set the type in the list or dict, so that it can be checked,
// also in legacy script. Not for "list<any> = val", then the