patch 8.2.3332: Vim9: cannot assign to range in list
Problem: Vim9: cannot assign to range in list.
Solution: Implement overwriting a list range.
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index 2204f26..ed19c92 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -26,6 +26,7 @@
char_u *get_lval(char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int flags, int fne_flags);
void clear_lval(lval_T *lp);
void set_var_lval(lval_T *lp, char_u *endp, typval_T *rettv, int copy, int flags, char_u *op, int var_idx);
+int tv_op(typval_T *tv1, typval_T *tv2, char_u *op);
void *eval_for_line(char_u *arg, int *errp, exarg_T *eap, evalarg_T *evalarg);
void skip_for_lines(void *fi_void, evalarg_T *evalarg);
int next_for_item(void *fi_void, char_u *arg);
diff --git a/src/proto/list.pro b/src/proto/list.pro
index c3c3227..97e6c47 100644
--- a/src/proto/list.pro
+++ b/src/proto/list.pro
@@ -30,6 +30,9 @@
int list_append_number(list_T *l, varnumber_T n);
int list_insert_tv(list_T *l, typval_T *tv, listitem_T *item);
void list_insert(list_T *l, listitem_T *ni, listitem_T *item);
+listitem_T *check_range_index_one(list_T *l, long *n1, int quiet);
+int check_range_index_two(list_T *l, long *n1, listitem_T *li1, long *n2, int quiet);
+int list_assign_range(list_T *dest, list_T *src, long idx1_arg, long idx2, int empty_idx2, char_u *op, char_u *varname);
void f_flatten(typval_T *argvars, typval_T *rettv);
void f_flattennew(typval_T *argvars, typval_T *rettv);
int list_extend(list_T *l1, list_T *l2, listitem_T *bef);