patch 8.1.1686: "*" of "*{" is recognized as multipy operator
Problem: "*" of "*{" is recognized as multipy operator. (Yasuhiro Matsumoto)
Solution: Check for the "{".
diff --git a/src/eval.c b/src/eval.c
index 20cec16..8c065f2 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -4266,7 +4266,7 @@
for (;;)
{
op = **arg;
- if (op != '*' && op != '/' && op != '%')
+ if ((op != '*' || (*arg)[1] == '{') && op != '/' && op != '%')
break;
if (evaluate)
diff --git a/src/testdir/test_listdict.vim b/src/testdir/test_listdict.vim
index 574beb5..56c84a2 100644
--- a/src/testdir/test_listdict.vim
+++ b/src/testdir/test_listdict.vim
@@ -282,6 +282,7 @@
func Test_dict_literal_keys()
call assert_equal({'one': 1, 'two2': 2, '3three': 3, '44': 4}, *{one: 1, two2: 2, 3three: 3, 44: 4},)
+ call assert_equal('2 3', trim(execute('echo 2 *{blue: 3}.blue')))
endfunc
" Nasty: deepcopy() dict that refers to itself (fails when noref used)
diff --git a/src/version.c b/src/version.c
index 21dc66e..66f3d34 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1686,
+/**/
1685,
/**/
1684,