patch 8.2.3296: Vim9: cannot add a number to a float

Problem:    Vim9: cannot add a number to a float.
Solution:   Accept a number if the destination is a float. (closes #8703)
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 428de1c..8491a4d 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -245,6 +245,23 @@
   END
 enddef
 
+def Test_float_and_number()
+  if !has('float')
+    MissingFeature float
+  else
+    var lines =<< trim END
+         var f: float
+         f += 2
+         f -= 1
+         assert_equal(1.0, f)
+         ++f
+         --f
+         assert_equal(1.0, f)
+    END
+    CheckDefAndScriptSuccess(lines)
+  endif
+enddef
+
 let g:someNumber = 43
 
 def Test_assign_concat()
diff --git a/src/version.c b/src/version.c
index cc8300b..c6852f1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3296,
+/**/
     3295,
 /**/
     3294,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 1c6e328..d2a6f68 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -7021,8 +7021,10 @@
 
 		    // Special case: assigning to @# can use a number or a
 		    // string.
-		    if (lhs_type == &t_number_or_string
-					    && rhs_type->tt_type == VAR_NUMBER)
+		    // Also: can assign a number to a float.
+		    if ((lhs_type == &t_number_or_string
+				|| lhs_type == &t_float)
+			    && rhs_type->tt_type == VAR_NUMBER)
 			lhs_type = &t_number;
 		    if (*p != '=' && need_type(rhs_type, lhs_type,
 					    -1, 0, cctx, FALSE, FALSE) == FAIL)