Mercurial > vim
diff src/list.c @ 27531:4ca0ee7b4f86 v8.2.4293
patch 8.2.4293: Vim9: when copying a list it gets type list<any>
Commit: https://github.com/vim/vim/commit/7676c158798a7c90f500cab2c12af0d47bad6026
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Feb 3 21:47:34 2022 +0000
patch 8.2.4293: Vim9: when copying a list it gets type list<any>
Problem: Vim9: when copying a list it gets type list<any> even when the
original list did not have a type.
Solution: Only set the type when the original list has a type. (closes #9692)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 03 Feb 2022 23:00:05 +0100 |
parents | f00a7a2bee21 |
children | e2bb28237695 |
line wrap: on
line diff
--- a/src/list.c +++ b/src/list.c @@ -1216,7 +1216,11 @@ list_copy(list_T *orig, int deep, int to copy = list_alloc(); if (copy != NULL) { - copy->lv_type = alloc_type(top || deep ? &t_list_any: orig->lv_type); + if (orig->lv_type == NULL) + copy->lv_type = NULL; + else + copy->lv_type = alloc_type(top || deep + ? &t_list_any: orig->lv_type); if (copyID != 0) { // Do this before adding the items, because one of the items may