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)
diff --git a/src/dict.c b/src/dict.c
index 874b823..fa54c60 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -911,13 +911,15 @@
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;