patch 8.2.2357: Vim9: crash when parsing function return type fails

Problem:    Vim9: crash when parsing function return type fails.
Solution:   Bail out and set return type to "unknown". (closes #7685)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index e87c33e..049532c 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -197,6 +197,17 @@
   s:nothing->assert_equal(1)
 enddef
 
+def Test_return_invalid()
+  var lines =<< trim END
+    vim9script
+    def Func(): invalid
+      return xxx
+    enddef
+    defcompile
+  END
+  CheckScriptFailure(lines, 'E1010:', 2)
+enddef
+
 func Increment()
   let g:counter += 1
 endfunc
diff --git a/src/userfunc.c b/src/userfunc.c
index ded9ef7..7ca8186 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -3886,6 +3886,12 @@
 	{
 	    p = ret_type;
 	    fp->uf_ret_type = parse_type(&p, &fp->uf_type_list, TRUE);
+	    if (fp->uf_ret_type == NULL)
+	    {
+		fp->uf_ret_type = &t_void;
+		SOURCING_LNUM = lnum_save;
+		goto erret;
+	    }
 	}
 	SOURCING_LNUM = lnum_save;
     }
diff --git a/src/version.c b/src/version.c
index 9d217e2..e741740 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2357,
+/**/
     2356,
 /**/
     2355,