0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.3263: Vim9: "..=" does not accept same types as the ".." operator

Problem:    Vim9: "..=" does not accept same types as the ".." operator.
Solution:   Convert value to string like ".." does. (issue #8664)
This commit is contained in:
Bram Moolenaar
2021-07-31 22:51:10 +02:00
parent 9e0ee59019
commit f5d52c90e0
4 changed files with 40 additions and 7 deletions

View File

@@ -7086,18 +7086,23 @@ compile_assignment(char_u *arg, exarg_T *eap, cmdidx_T cmdidx, cctx_T *cctx)
type_T *stacktype;
if (*op == '.')
expected = &t_string;
{
if (may_generate_2STRING(-1, FALSE, cctx) == FAIL)
goto theend;
}
else
{
expected = lhs.lhs_member_type;
stacktype = ((type_T **)stack->ga_data)[stack->ga_len - 1];
if (
stacktype = ((type_T **)stack->ga_data)[stack->ga_len - 1];
if (
#ifdef FEAT_FLOAT
// If variable is float operation with number is OK.
!(expected == &t_float && stacktype == &t_number) &&
// If variable is float operation with number is OK.
!(expected == &t_float && stacktype == &t_number) &&
#endif
need_type(stacktype, expected, -1, 0, cctx,
FALSE, FALSE) == FAIL)
goto theend;
goto theend;
}
if (*op == '.')
{