patch 8.2.3842: Vim9: can change locked list and list items

Problem:    Vim9: can change locked list and list items.
Solution:   Check that a list and list item isn't locked.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index a376d00..afd0a61 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2898,18 +2898,26 @@
 			{
 			    list_T	*l = tv_dest->vval.v_list;
 			    long	n = (long)tv_idx->vval.v_number;
-			    listitem_T	*li = NULL;
 
-			    li = list_find(l, n);
-			    if (li == NULL)
-			    {
-				SOURCING_LNUM = iptr->isn_lnum;
-				semsg(_(e_listidx), n);
+			    if (l != NULL && value_check_lock(
+						      l->lv_lock, NULL, FALSE))
 				status = FAIL;
-			    }
 			    else
-				// TODO: check for list or item locked
-				listitem_remove(l, li);
+			    {
+				listitem_T	*li = list_find(l, n);
+
+				if (li == NULL)
+				{
+				    SOURCING_LNUM = iptr->isn_lnum;
+				    semsg(_(e_listidx), n);
+				    status = FAIL;
+				}
+				else if (value_check_lock(li->li_tv.v_lock,
+								  NULL, FALSE))
+				    status = FAIL;
+				else
+				    listitem_remove(l, li);
+			    }
 			}
 		    }
 		    else