@@ -242,7 +242,7 @@ get_list_type(type_T *member_type, garray_T *type_list)
242242
243243 // Not a common type, create a new entry.
244244 if (ga_grow (type_list , 1 ) == FAIL )
245- return FAIL ;
245+ return & t_any ;
246246 type = ((type_T * )type_list -> ga_data ) + type_list -> ga_len ;
247247 ++ type_list -> ga_len ;
248248 type -> tt_type = VAR_LIST ;
@@ -269,7 +269,7 @@ get_dict_type(type_T *member_type, garray_T *type_list)
269269
270270 // Not a common type, create a new entry.
271271 if (ga_grow (type_list , 1 ) == FAIL )
272- return FAIL ;
272+ return & t_any ;
273273 type = ((type_T * )type_list -> ga_data ) + type_list -> ga_len ;
274274 ++ type_list -> ga_len ;
275275 type -> tt_type = VAR_DICT ;
@@ -1368,6 +1368,7 @@ skip_type(char_u *start)
13681368parse_type_member (char_u * * arg , type_T * type , garray_T * type_list )
13691369{
13701370 type_T * member_type ;
1371+ int prev_called_emsg = called_emsg ;
13711372
13721373 if (* * arg != '<' )
13731374 {
@@ -1380,11 +1381,9 @@ parse_type_member(char_u **arg, type_T *type, garray_T *type_list)
13801381 * arg = skipwhite (* arg + 1 );
13811382
13821383 member_type = parse_type (arg , type_list );
1383- if (member_type == NULL )
1384- return type ;
13851384
13861385 * arg = skipwhite (* arg );
1387- if (* * arg != '>' )
1386+ if (* * arg != '>' && called_emsg == prev_called_emsg )
13881387 {
13891388 emsg (_ ("E1009: Missing > after type" ));
13901389 return type ;
@@ -1766,6 +1765,11 @@ compile_load_scriptvar(
17661765 return FAIL ;
17671766 }
17681767 ++ p ;
1768+ if (VIM_ISWHITE (* p ))
1769+ {
1770+ emsg (_ ("E1074: no white space allowed after dot" ));
1771+ return FAIL ;
1772+ }
17691773
17701774 idx = find_exported (import -> imp_sid , & p , & name_len , & ufunc , & type );
17711775 // TODO: what if it is a function?
@@ -1806,6 +1810,7 @@ compile_load(char_u **arg, char_u *end_arg, cctx_T *cctx, int error)
18061810 char_u * name ;
18071811 char_u * end = end_arg ;
18081812 int res = FAIL ;
1813+ int prev_called_emsg = called_emsg ;
18091814
18101815 if (* (* arg + 1 ) == ':' )
18111816 {
@@ -1892,7 +1897,7 @@ compile_load(char_u **arg, char_u *end_arg, cctx_T *cctx, int error)
18921897 * arg = end ;
18931898
18941899theend :
1895- if (res == FAIL && error )
1900+ if (res == FAIL && error && called_emsg == prev_called_emsg )
18961901 semsg (_ (e_var_notfound ), name );
18971902 vim_free (name );
18981903 return res ;
0 commit comments