diff src/vim9script.c @ 23332:cdb706d5c43d v8.2.2209

patch 8.2.2209: Vim9: return type of => lambda not parsed Commit: https://github.com/vim/vim/commit/9e68c32563d8c9ffe1ac04ecd4ccd730af66b97c Author: Bram Moolenaar <Bram@vim.org> Date: Fri Dec 25 12:38:04 2020 +0100 patch 8.2.2209: Vim9: return type of => lambda not parsed Problem: Vim9: return type of => lambda not parsed. Solution: Parse and use the return type.
author Bram Moolenaar <Bram@vim.org>
date Fri, 25 Dec 2020 12:45:05 +0100
parents 8b93aea8d9d7
children b3142fc0a414
line wrap: on
line diff
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -511,7 +511,6 @@ vim9_declare_scriptvar(exarg_T *eap, cha
     char_u	    *name;
     scriptitem_T    *si = SCRIPT_ITEM(current_sctx.sc_sid);
     type_T	    *type;
-    int		    called_emsg_before = called_emsg;
     typval_T	    init_tv;
 
     if (eap->cmdidx == CMD_final || eap->cmdidx == CMD_const)
@@ -548,8 +547,8 @@ vim9_declare_scriptvar(exarg_T *eap, cha
 
     // parse type
     p = skipwhite(p + 1);
-    type = parse_type(&p, &si->sn_type_list);
-    if (called_emsg != called_emsg_before)
+    type = parse_type(&p, &si->sn_type_list, TRUE);
+    if (type == NULL)
     {
 	vim_free(name);
 	return p;