mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -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:
committed by
Christian Brabandt
parent
2a71b54d35
commit
fa831102c3
@@ -1660,17 +1660,16 @@ get_member_type_from_stack(
|
||||
// Use "unknown" for an empty list or dict.
|
||||
if (count == 0)
|
||||
return &t_unknown;
|
||||
|
||||
// Use the first value type for the list member type, then find the common
|
||||
// type from following items.
|
||||
// Find the common type from following items.
|
||||
typep = ((type2_T *)stack->ga_data) + stack->ga_len;
|
||||
result = (typep -(count * skip) + skip - 1)->type_curr;
|
||||
for (i = 1; i < count; ++i)
|
||||
result = &t_unknown;
|
||||
for (i = 0; i < count; ++i)
|
||||
{
|
||||
if (result == &t_any)
|
||||
break; // won't get more common
|
||||
type = (typep -((count - i) * skip) + skip - 1)->type_curr;
|
||||
common_type(type, result, &result, type_gap);
|
||||
if (check_type_is_value(type) == FAIL)
|
||||
return NULL;
|
||||
if (result != &t_any)
|
||||
common_type(type, result, &result, type_gap);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
Reference in New Issue
Block a user