patch 9.0.0409: #{g:x} was seen as a curly-braces expression

Problem:    #{g:x} was seen as a curly-braces expression.
Solution:   Do never see #{} as a curly-braces expression. (closes #11075)
This commit is contained in:
ii14
2022-09-07 19:40:17 +01:00
committed by Bram Moolenaar
parent fef38d86a1
commit 7c7e1e9b98
3 changed files with 10 additions and 2 deletions

View File

@ -911,13 +911,15 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
int vim9script = in_vim9script();
int had_comma;
// First check if it's not a curly-braces thing: {expr}.
// First check if it's not a curly-braces expression: {expr}.
// Must do this without evaluating, otherwise a function may be called
// twice. Unfortunately this means we need to call eval1() twice for the
// first item.
// But {} is an empty Dictionary.
// "{}" is an empty Dictionary.
// "#{abc}" is never a curly-braces expression.
if (!vim9script
&& *curly_expr != '}'
&& !literal
&& eval1(&curly_expr, &tv, NULL) == OK
&& *skipwhite(curly_expr) == '}')
return NOTDONE;