patch 8.2.2200: Vim9: lambda without white space around -> is confusing
Problem: Vim9: lambda without white space around -> is confusing.
Solution: Require white space in a :def funtion. (issue #7503)
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 7f88cfa..c5b546a 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -1541,10 +1541,10 @@
['{a: 1} is aDict', 'COMPAREDICT is'],
['{a: 1} isnot aDict', 'COMPAREDICT isnot'],
- ['{->33} == {->44}', 'COMPAREFUNC =='],
- ['{->33} != {->44}', 'COMPAREFUNC !='],
- ['{->33} is {->44}', 'COMPAREFUNC is'],
- ['{->33} isnot {->44}', 'COMPAREFUNC isnot'],
+ ['{-> 33} == {-> 44}', 'COMPAREFUNC =='],
+ ['{-> 33} != {-> 44}', 'COMPAREFUNC !='],
+ ['{-> 33} is {-> 44}', 'COMPAREFUNC is'],
+ ['{-> 33} isnot {-> 44}', 'COMPAREFUNC isnot'],
['77 == g:xx', 'COMPAREANY =='],
['77 != g:xx', 'COMPAREANY !='],
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index f2c9200..31c8827 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1863,6 +1863,10 @@
END
CheckDefAndScriptSuccess(lines)
+ CheckDefFailure(["var Ref = {a->a + 1}"], 'E720:')
+ CheckDefFailure(["var Ref = {a-> a + 1}"], 'E720:')
+ CheckDefFailure(["var Ref = {a ->a + 1}"], 'E720:')
+
CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:', 1)
# error is in first line of the lambda
CheckDefFailure(["var L = {a -> a + b}"], 'E1001:', 0)
@@ -2538,7 +2542,7 @@
call CheckDefFailure(["'yes'->", "Echo()"], 'E488: Trailing characters: ->', 1)
call CheckDefExecFailure(["[1, 2->len()"], 'E697:', 2)
- call CheckDefExecFailure(["{a: 1->len()"], 'E451:', 1)
+ call CheckDefExecFailure(["{a: 1->len()"], 'E723:', 2)
call CheckDefExecFailure(["{['a']: 1->len()"], 'E723:', 2)
endfunc