vim-patch:8.1.1692: using *{} for literal dict is not backwards compatible

Problem:    Using *{} for literal dict is not backwards compatible. (Yasuhiro
            Matsumoto)
Solution:   Use ~{} instead.
b8be54dcc5
This commit is contained in:
Jan Edmund Lazo
2020-10-07 00:45:05 -04:00
parent d109a33144
commit 20fc7ef161
3 changed files with 12 additions and 9 deletions

View File

@@ -3802,7 +3802,7 @@ static int eval6(char_u **arg, typval_T *rettv, int evaluate, int want_string)
*/
for (;; ) {
op = **arg;
if ((op != '*' || (*arg)[1] == '{') && op != '/' && op != '%') {
if (op != '*' && op != '/' && op != '%') {
break;
}
@@ -3906,7 +3906,7 @@ static int eval6(char_u **arg, typval_T *rettv, int evaluate, int want_string)
// (expression) nested expression
// [expr, expr] List
// {key: val, key: val} Dictionary
// *{key: val, key: val} Dictionary with literal keys
// ~{key: val, key: val} Dictionary with literal keys
//
// Also handle:
// ! in front logical NOT
@@ -4014,8 +4014,8 @@ static int eval7(
case '[': ret = get_list_tv(arg, rettv, evaluate);
break;
// Dictionary: *{key: val, key: val}
case '*':
// Dictionary: ~{key: val, key: val}
case '~':
if ((*arg)[1] == '{') {
(*arg)++;
ret = dict_get_tv(arg, rettv, evaluate, true);