comparison src/vim9script.c @ 26925:4e77f9961650 v8.2.3991

patch 8.2.3991: Vim9: error when extending dict<any> Commit: https://github.com/vim/vim/commit/114dbda7858df956161c0adba5d4d8279645ff67 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jan 3 12:28:03 2022 +0000 patch 8.2.3991: Vim9: error when extending dict<any> Problem: Vim9: error when extending dict<any> with another type that it was initialized with. Solution: Also set the type for dict<any> if the initializer has a more specific type. (closes #9461)
author Bram Moolenaar <Bram@vim.org>
date Mon, 03 Jan 2022 13:30:04 +0100
parents 06a137af96f8
children 8796f1384750
comparison
equal deleted inserted replaced
26924:9a1e933647aa 26925:4e77f9961650
905 sv = find_typval_in_script(&di->di_tv); 905 sv = find_typval_in_script(&di->di_tv);
906 } 906 }
907 if (sv != NULL) 907 if (sv != NULL)
908 { 908 {
909 if (*type == NULL) 909 if (*type == NULL)
910 *type = typval2type(tv, get_copyID(), &si->sn_type_list, do_member); 910 *type = typval2type(tv, get_copyID(), &si->sn_type_list,
911 do_member ? TVTT_DO_MEMBER : 0);
911 if (sv->sv_type_allocated) 912 if (sv->sv_type_allocated)
912 free_type(sv->sv_type); 913 free_type(sv->sv_type);
913 if (*type != NULL && ((*type)->tt_type == VAR_FUNC 914 if (*type != NULL && ((*type)->tt_type == VAR_FUNC
914 || (*type)->tt_type == VAR_PARTIAL)) 915 || (*type)->tt_type == VAR_PARTIAL))
915 { 916 {