patch 8.2.1138: Vim9: return type of copy() and deepcopy() is any

Problem:    Vim9: return type of copy() and deepcopy() is any.
Solution:   Use type of the argument.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 5215bef..57e707f 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -544,7 +544,7 @@
     {"complete_check",	0, 0, 0,	  ret_number,	f_complete_check},
     {"complete_info",	0, 1, FEARG_1,	  ret_dict_any,	f_complete_info},
     {"confirm",		1, 4, FEARG_1,	  ret_number,	f_confirm},
-    {"copy",		1, 1, FEARG_1,	  ret_any,	f_copy},
+    {"copy",		1, 1, FEARG_1,	  ret_first_arg, f_copy},
     {"cos",		1, 1, FEARG_1,	  ret_float,	FLOAT_FUNC(f_cos)},
     {"cosh",		1, 1, FEARG_1,	  ret_float,	FLOAT_FUNC(f_cosh)},
     {"count",		2, 4, FEARG_1,	  ret_number,	f_count},
@@ -557,7 +557,7 @@
 	    NULL
 #endif
 			},
-    {"deepcopy",	1, 2, FEARG_1,	  ret_any,	f_deepcopy},
+    {"deepcopy",	1, 2, FEARG_1,	  ret_first_arg, f_deepcopy},
     {"delete",		1, 2, FEARG_1,	  ret_number,	f_delete},
     {"deletebufline",	2, 3, FEARG_1,	  ret_number,	f_deletebufline},
     {"did_filetype",	0, 0, 0,	  ret_number,	f_did_filetype},
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 761dd57..94c9457 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -893,6 +893,22 @@
   assert_equal(#{items: []}, d)
 enddef
 
+def Test_copy_return_type()
+  let l = copy([1, 2, 3])
+  let res = 0
+  for n in l
+    res += n
+  endfor
+  assert_equal(6, res)
+
+  let dl = deepcopy([1, 2, 3])
+  res = 0
+  for n in dl
+    res += n
+  endfor
+  assert_equal(6, res)
+enddef
+
 def Line_continuation_in_def(dir: string = ''): string
     let path: string = empty(dir)
             \ ? 'empty'
diff --git a/src/version.c b/src/version.c
index b6ed058..950871e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1138,
+/**/
     1137,
 /**/
     1136,