1
0
forked from aniani/vim

patch 9.0.2155: Vim9: type not kept when assigning vars

Problem:  Vim9: type not kept when assigning vars
Solution: When assigning a List or a Dict value to a variable of type
          'any', keep the type

closes: #13639
closes: #13646

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yegappan Lakshmanan
2023-12-08 21:41:23 +01:00
committed by Christian Brabandt
parent f48558e10a
commit d33518522a
3 changed files with 32 additions and 0 deletions

View File

@@ -201,6 +201,10 @@ set_tv_type_recurse(type_T *type)
void
set_tv_type(typval_T *tv, type_T *type)
{
if (type->tt_type == VAR_ANY)
// If the variable type is "any", then keep the value type.
// e.g. var x: any = [1, 2] or var y: any = {v: 1}
return;
if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
{
dict_T *d = tv->vval.v_dict;