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)
diff --git a/src/vim9compile.c b/src/vim9compile.c
index c6a2965..cafbd6b 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -7086,18 +7086,23 @@
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 == '.')
{