0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 9.0.2163: Vim9: type can be assigned to list/dict

Problem:  Vim9: type can be assigned to list/dict
Solution: Prevent assigning a `type` to a `list` or `dict`

closes: #13683

Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Ernie Rael
2023-12-14 20:06:39 +01:00
committed by Christian Brabandt
parent 2a71b54d35
commit fa831102c3
8 changed files with 120 additions and 12 deletions

View File

@@ -1333,7 +1333,8 @@ generate_NEWLIST(cctx_T *cctx, int count, int use_null)
// Get the member type and the declared member type from all the items on
// the stack.
member_type = get_member_type_from_stack(count, 1, cctx);
if ((member_type = get_member_type_from_stack(count, 1, cctx)) == NULL)
return FAIL;
type = get_list_type(member_type, cctx->ctx_type_list);
decl_type = get_list_type(&t_any, cctx->ctx_type_list);
@@ -1361,7 +1362,8 @@ generate_NEWDICT(cctx_T *cctx, int count, int use_null)
return FAIL;
isn->isn_arg.number = use_null ? -1 : count;
member_type = get_member_type_from_stack(count, 2, cctx);
if ((member_type = get_member_type_from_stack(count, 2, cctx)) == NULL)
return FAIL;
type = get_dict_type(member_type, cctx->ctx_type_list);
decl_type = get_dict_type(&t_any, cctx->ctx_type_list);