0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

patch 8.2.2200: Vim9: lambda without white space around -> is confusing

Problem:    Vim9: lambda without white space around -> is confusing.
Solution:   Require white space in a :def funtion. (issue #7503)
This commit is contained in:
Bram Moolenaar
2020-12-23 20:27:31 +01:00
parent b3c8b1d254
commit 27bf7af9d0
4 changed files with 20 additions and 9 deletions

View File

@@ -3915,14 +3915,19 @@ compile_expr7(
* Dictionary: {'key': val, 'key': val}
*/
case '{': {
char_u *start = skipwhite(*arg + 1);
garray_T ga_arg;
char_u *start = skipwhite(*arg + 1);
char_u *after = start;
garray_T ga_arg;
// Find out what comes after the arguments.
ret = get_function_args(&start, '-', NULL,
ret = get_function_args(&after, '-', NULL,
&ga_arg, TRUE, NULL, NULL,
TRUE, NULL, NULL);
if (ret != FAIL && *start == '>')
if (ret != FAIL && after[0] == '>'
&& ((after > start + 2
&& VIM_ISWHITE(after[-2]))
|| after == start + 1)
&& IS_WHITE_OR_NUL(after[1]))
ret = compile_lambda(arg, cctx);
else
ret = compile_dict(arg, cctx, ppconst);