patch 8.2.0483: Vim9: "let x = x + 1" does not give an error

Problem:    Vim9: "let x = x + 1" does not give an error.
Solution:   Hide the variable when compiling the expression.
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 9d66e5e..1e8cd03 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -3685,6 +3685,8 @@
     }
     else if (oplen > 0)
     {
+	int r;
+
 	// for "+=", "*=", "..=" etc. first load the current value
 	if (*op != '=')
 	{
@@ -3717,10 +3719,16 @@
 	    }
 	}
 
-	// compile the expression
+	// Compile the expression.  Temporarily hide the new local variable
+	// here, it is not available to this expression.
+	if (idx >= 0)
+	    --cctx->ctx_locals.ga_len;
 	instr_count = instr->ga_len;
 	p = skipwhite(p + oplen);
-	if (compile_expr1(&p, cctx) == FAIL)
+	r = compile_expr1(&p, cctx);
+	if (idx >= 0)
+	    ++cctx->ctx_locals.ga_len;
+	if (r == FAIL)
 	    goto theend;
 
 	if (idx >= 0 && (is_decl || !has_type))