patch 8.2.3422: Vim9: no failure if return type differs from returned var

Problem:    Vim9: no failure if return type differs from returned variable.
Solution:   Copy type when copying a list. (closes #8847)
diff --git a/src/list.c b/src/list.c
index 76101ba..336bf3b 100644
--- a/src/list.c
+++ b/src/list.c
@@ -1217,6 +1217,7 @@
     copy = list_alloc();
     if (copy != NULL)
     {
+	copy->lv_type = orig->lv_type;
 	if (copyID != 0)
 	{
 	    // Do this before adding the items, because one of the items may
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 09f80e9..4e2f70e 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -438,6 +438,29 @@
   CheckScriptFailure(lines, 'E1010:')
 enddef
 
+def Test_return_list_any()
+  var lines =<< trim END
+      vim9script
+      def Func(): list<string>
+        var l: list<any>
+        l->add('string')
+        return l
+      enddef
+      echo Func()
+  END
+  CheckScriptFailure(lines, 'E1012:')
+  lines =<< trim END
+      vim9script
+      def Func(): list<string>
+        var l: list<any>
+        l += ['string']
+        return l
+      enddef
+      echo Func()
+  END
+  CheckScriptFailure(lines, 'E1012:')
+enddef
+
 func Increment()
   let g:counter += 1
 endfunc
diff --git a/src/version.c b/src/version.c
index d1767f3..8cd295c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3422,
+/**/
     3421,
 /**/
     3420,