patch 8.2.1600: Vim9: cannot use "true" with deepcopy()
Problem: Vim9: cannot use "true" with deepcopy().
Solution: Use tv_get_bool_chk(). (closes #6867)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 110935d..1764f41 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -1975,7 +1975,7 @@
int copyID;
if (argvars[1].v_type != VAR_UNKNOWN)
- noref = (int)tv_get_number_chk(&argvars[1], NULL);
+ noref = (int)tv_get_bool_chk(&argvars[1], NULL);
if (noref < 0 || noref > 1)
emsg(_(e_invarg));
else
diff --git a/src/testdir/test_listdict.vim b/src/testdir/test_listdict.vim
index 8db7b3f..694ba0a 100644
--- a/src/testdir/test_listdict.vim
+++ b/src/testdir/test_listdict.vim
@@ -348,7 +348,7 @@
let l[1] = l2
let l3 = deepcopy(l2)
call assert_true(l3[1] is l3[2])
- call assert_fails("call deepcopy([1, 2], 2)", 'E474:')
+ call assert_fails("call deepcopy([1, 2], 2)", 'E1023:')
endfunc
" Locked variables
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 828dbba..8651ef8 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1272,6 +1272,8 @@
res += n
endfor
assert_equal(6, res)
+
+ dl = deepcopy([1, 2, 3], true)
enddef
def Test_extend_return_type()
diff --git a/src/version.c b/src/version.c
index b7b5d27..8ebf9a7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1600,
+/**/
1599,
/**/
1598,