patch 8.2.2227: Vim9: recognizing lambda is too complicated
Problem: Vim9: recognizing lambda is too complicated.
Solution: Call compile_lambda() and check for NOTDONE.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index e4f7f2d..9373db2 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1863,9 +1863,9 @@
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(["var Ref = {a->a + 1}"], 'E1004:')
+ CheckDefFailure(["var Ref = {a-> a + 1}"], 'E1004:')
+ CheckDefFailure(["var Ref = {a ->a + 1}"], 'E1004:')
CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:', 1)
# error is in first line of the lambda
@@ -1964,13 +1964,9 @@
END
CheckDefAndScriptSuccess(lines)
- CheckDefFailure(["var Ref = (a)=>a + 1"], 'E1001:')
- CheckDefFailure(["var Ref = (a)=> a + 1"], 'E1001:')
- CheckDefFailure(["var Ref = (a) =>a + 1"], 'E1001:')
-
- CheckScriptFailure(["vim9script", "var Ref = (a)=>a + 1"], 'E1004:')
- CheckScriptFailure(["vim9script", "var Ref = (a)=> a + 1"], 'E1004:')
- CheckScriptFailure(["vim9script", "var Ref = (a) =>a + 1"], 'E1004:')
+ CheckDefAndScriptFailure(["var Ref = (a)=>a + 1"], 'E1004:')
+ CheckDefAndScriptFailure(["var Ref = (a)=> a + 1"], 'E1004:')
+ CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"], 'E1004:')
CheckDefFailure(["var Ref: func(number): number = (a: number): string => 'x'"], 'E1012:')
CheckDefFailure(["var Ref: func(number): string = (a: number): string => 99"], 'E1012:')
@@ -2682,7 +2678,7 @@
call CheckDefFailure(["'yes'->", "Echo()"], 'E488: Trailing characters: ->', 1)
call CheckDefExecFailure(["[1, 2->len()"], 'E697:', 2)
- call CheckDefExecFailure(["{a: 1->len()"], 'E723:', 2)
+ call CheckDefExecFailure(["{a: 1->len()"], 'E1004:', 1)
call CheckDefExecFailure(["{['a']: 1->len()"], 'E723:', 2)
endfunc