diff --git a/src/list.c b/src/list.c index 76101bac5e..336bf3ba76 100644 --- a/src/list.c +++ b/src/list.c @@ -1217,6 +1217,7 @@ list_copy(list_T *orig, int deep, int copyID) 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 09f80e9d19..4e2f70e05d 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -438,6 +438,29 @@ def Test_return_invalid() CheckScriptFailure(lines, 'E1010:') enddef +def Test_return_list_any() + var lines =<< trim END + vim9script + def Func(): list + var l: list + l->add('string') + return l + enddef + echo Func() + END + CheckScriptFailure(lines, 'E1012:') + lines =<< trim END + vim9script + def Func(): list + var l: list + 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 d1767f3497..8cd295c1bb 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3422, /**/ 3421, /**/