Mercurial > vim
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 { |