comparison src/testdir/test_vim9_expr.vim @ 23368:a7cbdb9294c4 v8.2.2227

patch 8.2.2227: Vim9: recognizing lambda is too complicated Commit: https://github.com/vim/vim/commit/e462f52db3cab656485a71e4322b6cb18d564a06 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 27 14:43:30 2020 +0100 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.
author Bram Moolenaar <Bram@vim.org>
date Sun, 27 Dec 2020 14:45:03 +0100
parents 37118deff718
children 9bd3873b13e2
comparison
equal deleted inserted replaced
23367:91b6cc84c6b7 23368:a7cbdb9294c4
1861 var res = map([1, 2, 3], {i: number, v: number -> i + v}) 1861 var res = map([1, 2, 3], {i: number, v: number -> i + v})
1862 assert_equal([1, 3, 5], res) 1862 assert_equal([1, 3, 5], res)
1863 END 1863 END
1864 CheckDefAndScriptSuccess(lines) 1864 CheckDefAndScriptSuccess(lines)
1865 1865
1866 CheckDefFailure(["var Ref = {a->a + 1}"], 'E720:') 1866 CheckDefFailure(["var Ref = {a->a + 1}"], 'E1004:')
1867 CheckDefFailure(["var Ref = {a-> a + 1}"], 'E720:') 1867 CheckDefFailure(["var Ref = {a-> a + 1}"], 'E1004:')
1868 CheckDefFailure(["var Ref = {a ->a + 1}"], 'E720:') 1868 CheckDefFailure(["var Ref = {a ->a + 1}"], 'E1004:')
1869 1869
1870 CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:', 1) 1870 CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:', 1)
1871 # error is in first line of the lambda 1871 # error is in first line of the lambda
1872 CheckDefFailure(["var L = {a -> a + b}"], 'E1001:', 0) 1872 CheckDefFailure(["var L = {a -> a + b}"], 'E1001:', 0)
1873 1873
1962 var Fy = (a) => [0, 1962 var Fy = (a) => [0,
1963 1] 1963 1]
1964 END 1964 END
1965 CheckDefAndScriptSuccess(lines) 1965 CheckDefAndScriptSuccess(lines)
1966 1966
1967 CheckDefFailure(["var Ref = (a)=>a + 1"], 'E1001:') 1967 CheckDefAndScriptFailure(["var Ref = (a)=>a + 1"], 'E1004:')
1968 CheckDefFailure(["var Ref = (a)=> a + 1"], 'E1001:') 1968 CheckDefAndScriptFailure(["var Ref = (a)=> a + 1"], 'E1004:')
1969 CheckDefFailure(["var Ref = (a) =>a + 1"], 'E1001:') 1969 CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"], 'E1004:')
1970
1971 CheckScriptFailure(["vim9script", "var Ref = (a)=>a + 1"], 'E1004:')
1972 CheckScriptFailure(["vim9script", "var Ref = (a)=> a + 1"], 'E1004:')
1973 CheckScriptFailure(["vim9script", "var Ref = (a) =>a + 1"], 'E1004:')
1974 1970
1975 CheckDefFailure(["var Ref: func(number): number = (a: number): string => 'x'"], 'E1012:') 1971 CheckDefFailure(["var Ref: func(number): number = (a: number): string => 'x'"], 'E1012:')
1976 CheckDefFailure(["var Ref: func(number): string = (a: number): string => 99"], 'E1012:') 1972 CheckDefFailure(["var Ref: func(number): string = (a: number): string => 99"], 'E1012:')
1977 1973
1978 CheckDefFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1) 1974 CheckDefFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1)
2680 call CheckDefFailure(["var x = ''", "var y = x.memb"], 'E715:', 2) 2676 call CheckDefFailure(["var x = ''", "var y = x.memb"], 'E715:', 2)
2681 2677
2682 call CheckDefFailure(["'yes'->", "Echo()"], 'E488: Trailing characters: ->', 1) 2678 call CheckDefFailure(["'yes'->", "Echo()"], 'E488: Trailing characters: ->', 1)
2683 2679
2684 call CheckDefExecFailure(["[1, 2->len()"], 'E697:', 2) 2680 call CheckDefExecFailure(["[1, 2->len()"], 'E697:', 2)
2685 call CheckDefExecFailure(["{a: 1->len()"], 'E723:', 2) 2681 call CheckDefExecFailure(["{a: 1->len()"], 'E1004:', 1)
2686 call CheckDefExecFailure(["{['a']: 1->len()"], 'E723:', 2) 2682 call CheckDefExecFailure(["{['a']: 1->len()"], 'E723:', 2)
2687 endfunc 2683 endfunc
2688 2684
2689 let g:Funcrefs = [function('add')] 2685 let g:Funcrefs = [function('add')]
2690 2686