else if (br_nest == 0 && mb_nest == 0 && *p == ':')
{
/* "s:" is start of "s:var", but "n:" is not and can be used in
- * slice "[n:]". Also "xx:" is not a namespace. */
+ * slice "[n:]". Also "xx:" is not a namespace. But {ns}: is. */
len = (int)(p - arg);
if ((len == 1 && vim_strchr(NAMESPACE_CHAR, *arg) == NULL)
- || len > 1)
+ || (len > 1 && p[-1] != '}'))
break;
}
" Test various aspects of the Vim language.
-" This was formerly in test49.
+" Most of this was formerly in test49.
"-------------------------------------------------------------------------------
" Test environment {{{1
call assert_equal('acdfh-acfh', g:test15_result)
endfunc
+"-------------------------------------------------------------------------------
+" Test 90: Recognizing {} in variable name. {{{1
+"-------------------------------------------------------------------------------
+
+func Test_curlies()
+ let s:var = 66
+ let ns = 's'
+ call assert_equal(66, {ns}:var)
+
+ let g:a = {}
+ let g:b = 't'
+ let g:a[g:b] = 77
+ call assert_equal(77, g:a['t'])
+endfunc
"-------------------------------------------------------------------------------
" Modelines {{{1